本页介绍了使用 GKE Gen AI 功能在 Google Kubernetes Engine (GKE) 上运行生成式 AI/机器学习模型推理工作负载的关键概念、优势和步骤。
在将生成式 AI 模型部署到实际应用中时,推理服务至关重要。GKE 提供了一个强大且可伸缩的平台来管理容器化工作负载,因此非常适合在开发环境或生产环境中部署模型。借助 GKE,您可以使用 Kubernetes 的编排、扩缩和高可用性功能,高效部署和管理推理服务。
认识到 AI/机器学习推理服务的特定需求, Google Cloud 引入了 GKE Gen AI 功能,这是一套专门用于增强和优化 GKE 上的推理服务的功能。如需详细了解特定功能,请参阅 GKE 生成式 AI 功能。
开始在 GKE 上进行 AI/机器学习模型推理
只需几分钟即可开始探索 GKE 上的 AI/机器学习模型推理。您可以使用 GKE 的免费层级,这使您无需支付集群管理费用即可开始使用 Kubernetes。
-
前往 Google Cloud 控制台中的 GKE AI/ML 页面
- 尝试按照部署模型中的步骤部署容器化模型和模型服务器。
- 阅读规划推理,其中提供了在 GKE 上规划和运行推理工作负载的指导和资源。
术语
本页面使用以下与 GKE 上的推理相关的术语:
- 推理:在 GKE 集群中运行生成式 AI 模型(例如大语言模型或扩散模型)的过程,以便根据输入数据生成文本、嵌入或其他输出。GKE 上的模型推理利用加速器高效处理复杂计算,以实现实时或批量处理。
- 模型:一种从数据中学习模式并用于推理的生成式 AI 模型。模型的大小和架构各不相同,从较小的特定领域模型到针对各种语言任务进行了优化的庞大多十亿参数神经网络。
- 模型服务器:一种容器化服务,负责接收推理请求并返回预测结果。此服务可以是 Python 应用,也可以是更稳健的解决方案,例如 vLLM、JetStream、TensorFlow Serving 或 Triton Inference Server。模型服务器负责将模型加载到内存中,并在加速器上执行计算,以高效返回预测结果。
- 加速器:专用硬件,例如 NVIDIA 的图形处理器 (GPU) 和 Google 的张量处理单元 (TPU),可挂接到 GKE 节点以加快计算速度,尤其是训练和推理任务。
使用 GKE 进行推理的优势
在 GKE 上进行推理服务具有以下优势:
- 高性价比:高效满足您的推理服务需求。借助 GKE,您可以从一系列强大的加速器(GPU 和 TPU)中进行选择,从而只需为所需的性能付费。
- 加快部署速度:利用 GKE 生成式 AI 功能提供的量身定制的最佳实践、资格要求和最佳实践,缩短产品上市时间。
- 可伸缩的性能:使用 GKE 推理网关、Pod 横向自动扩缩 (HPA) 和自定义指标,通过预构建的监控功能扩展性能。您可以运行一系列预训练模型或自定义模型,参数数量从 80 亿到 6710 亿不等。
- 完全可移植:借助开源标准,获享完全可移植性。Google 为关键 Kubernetes API(包括 Gateway 和 LeaderWorkerSet)做出了贡献,所有 API 均可与 Kubernetes 发行版一起使用。
- 生态系统支持:基于 GKE 强大的生态系统构建,该生态系统支持 Kueue 等工具(用于高级资源队列和管理)以及 Ray(用于分布式计算),以便实现可伸缩且高效的模型训练和推理。
在 GKE 上进行推理的运作方式
本部分概要介绍了使用 GKE 进行推理服务的步骤:
将模型封装到容器中:通过将模型服务器(例如 vLLM)封装到容器中,并从 Cloud Storage 或 Hugging Face 等仓库加载模型权重来部署模型。当您使用 GKE 推理快速入门时,系统会自动在清单中管理容器化映像。
创建 GKE 集群:创建 GKE 集群来托管您的部署。选择 Autopilot 可获得托管式体验,选择“标准”可进行自定义。配置集群大小、节点类型和加速器。如需获取优化的配置,请使用推理快速入门。
将模型部署为 Kubernetes 部署:创建 Kubernetes 部署来管理推理服务。Deployment 是一个 Kubernetes API 对象,可让您运行在集群节点中分布的多个 Pod 副本。 指定 Docker 映像、副本和设置。Kubernetes 会拉取映像,并在 GKE 集群节点上运行您的容器。使用模型服务器和模型配置 Pod,包括 LoRA 适配器(如果需要)。
公开推理服务:创建 Kubernetes 服务以为部署提供网络端点,从而使推理服务可供访问。使用推理网关实现专为生成式 AI 推理工作负载量量身定制的智能负载均衡和路由。
处理推理请求:将数据以预期格式(JSON、gRPC)从应用客户端发送到服务端点。如果您使用的是负载平衡器,它会将请求分配给模型副本。模型服务器会处理请求、运行模型并返回预测结果。
扩缩和监控推理部署:使用 HPA 扩缩推理,以根据 CPU 或延迟时间自动调整副本。使用推理快速入门获取自动生成的扩缩建议。如需跟踪性能,请将 Cloud Monitoring 和 Cloud Logging 与预构建的可观测性功能搭配使用,包括适用于 vLLM 等热门模型服务器的信息中心。
如需查看使用特定模型、模型服务器和加速器的详细示例,请参阅推理示例。
GKE Gen AI 功能
您可以将这些功能结合使用,也可以单独使用,以解决在 GKE 环境中部署生成式 AI 模型和提高资源利用率方面遇到的关键挑战,而且无需额外付费。
名称 | 说明 | 优势 |
---|---|---|
GKE 推理快速入门(预览版) |
指定您的业务需求,获取量身定制的最佳实践,以便组合使用加速器、扩缩配置和模型服务器,从而最妥善地满足您的需求。您可以使用 gcloud CLI 访问此服务。 如需了解详情,请参阅使用 GKE 推理快速入门食谱运行最佳实践推理。 |
|
GKE 推理网关(预览版) | 根据 KV 缓存利用率等指标获取路由,以缩短延迟时间。 如需了解详情,请参阅 GKE 推理网关简介 |
|
模型权重加载加速器 | 结合使用 Cloud Storage FUSE 与缓存和并行下载功能,快速访问 Cloud Storage 中的数据。 对于需要一致扩缩性能的推理工作负载,Google Cloud Hyperdisk ML 是一种网络附加磁盘,最多可挂接到 2,500 个 Pod。 |
|
规划推理
本部分介绍了在 GKE 上运行推理工作负载时应考虑的一些关键注意事项。
成本效益
由于需要使用加速器,因此提供大型生成式 AI 模型的费用可能很高,因此您应着重于高效利用资源。选择正确的机器类型和加速器至关重要,以确保加速器内存与模型大小和量化级别相匹配。例如,对于较小的模型,配备 NVIDIA L4 GPU 的 G2 实例具有较高的性价比,而 A3 实例更适合较大的模型。
请遵循以下提示和建议,最大限度地提高成本效益:
- 使用推理快速入门,根据您的性能需求获取推荐的加速器。
- 使用量化和请求批处理等技术来提高广告投放效率。如需了解详情,请参阅使用 GPU 优化大语言模型推理的最佳实践。
使用自动扩缩功能,按需动态调整资源。这可以节省成本,对于波动性工作负载尤其如此。如需了解详情,请参阅以下指南:
性能
如需优化 GKE 上的推理性能,请重点关注以下基准测试指标:
基准指标 | 公制(单位) | 说明 |
---|---|---|
延迟时间 | 第一个令牌的时间 (TTFT)(毫秒) | 为请求生成第一个令牌所需的时间。 |
每个输出令牌的标准化时间 (NTPOT)(毫秒) | 按输出令牌数标准化的请求延迟时间,以 request_latency / total_output_tokens 为单位。 |
|
每个输出令牌的时间 (TPOT)(毫秒) | 生成一个输出令牌所需的时间,以 (request_latency - time_to_first_token) / (total_output_tokens - 1) 为单位。 |
|
令牌间延迟时间 (ITL)(毫秒) | 衡量两个输出令牌生成之间的延迟时间。与用于衡量整个请求延迟时间的 TPOT 不同,ITL 用于衡量生成每个输出令牌所需的时间。然后,系统会汇总这些单个测量值,以生成平均值、中位数和百分位数值(例如 p90)。 | |
请求延迟时间(毫秒) | 完成请求的端到端时间。 | |
吞吐量 | 每秒请求次数 | 您每秒处理的请求总数。请注意,此指标可能不是衡量 LLM 吞吐量的可靠方法,因为它可能会因上下文长度而异。 |
每秒输出 token 数 | 一个以 total_output_tokens_generated_by_server / elapsed_time_in_seconds 为衡量标准的常见指标。 |
|
每秒输入的令牌数 | 以 total_input_tokens_generated_by_server / elapsed_time_in_seconds 衡量。 |
|
每秒处理的令牌数量 | 以 total_tokens_generated_by_server / elapsed_time_in_seconds 衡量。此指标会统计输入和输出令牌,有助于您比较预填充时间较长的工作负载与解码时间较长的工作负载。 |
如需尝试对工作负载进行性能基准测试,请按照 AI-Hypercomputer/inference-benchmark 中的说明操作。
请考虑以下有关效果的其他提示和建议:
- 如需根据您的性能需求获取建议的加速器,请使用推理快速入门。
- 如需提升性能,请使用批处理和 PagedAttention 等模型服务器优化技术(详见我们的最佳实践指南)。此外,应优先考虑高效的内存管理和注意力计算,以确保令牌间延迟时间始终保持较低水平。
- 在模型服务器(例如 Hugging Face TGI、vLLM 或 NVIDIA Triton)中使用标准化指标来改进自动扩缩和负载均衡,这有助于您在所选延迟时间内实现更高的吞吐量。GKE 为多个模型服务器提供自动应用监控。
- 使用 Inference Gateway 等 GKE 网络基础架构功能,最大限度地缩短延迟时间。
将 Cloud Storage FUSE 与并行下载和缓存或 Hyperdisk ML 搭配使用,可加速从永久性存储空间加载模型权重。
对于大规模训练或推理,请使用路径。Pathways 通过让单个 JAX 客户端能够跨多个大型 TPU 切片编排工作负载,简化了大型机器学习计算。如需了解详情,请参阅路径。
可获取性
确保资源(CPU、GPU 和 TPU)的可用性对于维护推理工作负载的性能、可用性和性价比至关重要。推理工作负载通常会出现突发且不可预测的流量模式,这可能会对硬件容量造成挑战。GKE 通过以下功能来解决这些挑战:
- 资源消耗选项:从预订以确保容量、经济高效的扩缩、动态工作负载调度器和 Spot 虚拟机等选项中进行选择,以优化成本并按需访问以实现即时可用。
- 资源调整大小:例如, Google Cloud 提供配备 NVIDIA H100 GPU(1g、2g 或 4g)的较小 A3 High 虚拟机,以实现支持 Spot 虚拟机的经济高效的生成式 AI 推理扩缩。
- 适用于加速器的计算类:您可以使用自定义计算类实现更精细的控制,以防止过度预配,并通过自动回退选项最大限度地提高资源可用性。
节点升级
GKE 会自动执行升级流程的大部分步骤,但您需要考虑升级策略,尤其是兼容性和测试方面。对于手动升级,您可以根据推理工作负载对中断的容忍度,选择超额配置升级或蓝绿升级。激增升级速度很快,但可能会短暂影响服务。蓝绿升级可实现接近于零的停机时间,这对实时推理至关重要。如需了解详情,请参阅节点升级策略。
GPU 和 TPU 不支持实时迁移,因此维护需要重启 Pod。使用 GKE 通知做好服务中断的准备。我们建议使用 Pod 中断预算 (PDB) 来确保至少有一定数量的 Pod 保持可用状态。确保您的 Pod 可以正常处理终止。TPU 切片可能会因单主机事件而中断,因此请做好冗余配置。如需了解更多最佳实践,请参阅管理 GPU 和 TPU 的 GKE 节点中断。
试用推理示例
查找生成式 AI 模型、加速器和模型服务器的 GKE 部署示例。如果您刚刚开始接触,建议您先探索通过 vLLM 使用 GKE 中的 GPU 提供 Gemma 开放模型教程。
或者,按关键字搜索教程:
加速器 | 模型服务器 | 教程 |
---|---|---|
GPU | vLLM | 在 GKE 上提供 DeepSeek-R1 671B 或 Llama 3.1 405B 等 LLM |
GPU | vLLM | 通过 vLLM 使用 GKE 中的 GPU 提供 Llama 模型 |
GPU | vLLM | 通过 vLLM 使用 GKE 中的 GPU 提供 Gemma 开放模型 |
GPU | vLLM | 使用 GKE 推理网关提供 LLM |
GPU | NVIDIA Triton | 在 GKE 中使用单个 GPU 提供模型 |
GPU | Ray Serve | 使用 Ray 在 L4 GPU 上提供 LLM |
GPU | TGI | 通过 GKE 中的多个 GPU 提供 LLM |
GPU | NVIDIA Triton | 通过 Triton 和 TensorRT-LLM 使用 GKE 中的 GPU 应用 Gemma 开放模型 |
GPU | Hugging Face TGI | 通过 Hugging Face TGI 使用 GKE 中的 GPU 提供 Gemma 开放模型 |
GPU | TensorFlow Serving | 在 GKE 中使用单个 GPU 提供模型 |
TPU | vLLM | 通过 vLLM,使用 GKE 中的 TPU Trillium 提供 LLM |
TPU | vLLM | 通过 KubeRay 使用 GKE 上的 TPU 提供 LLM |
TPU | JetStream | 通过 JetStream 和 PyTorch 使用 GKE 上的 TPU 应用 LLM |
TPU | JetStream | 通过 JetStream 使用 GKE 中的 TPU 应用 Gemma |
TPU | MaxDiffusion | 使用 MaxDiffusion 通过 GKE 上的 TPU 应用 Stable Diffusion XL (SDXL) |
TPU | Optimum TPU | 通过 Optimum TPU 使用 GKE 中的 TPU 应用开源模型 |
后续步骤
- 访问 GKE 上的 AI/机器学习编排门户,探索有关在 GKE 上运行 AI/机器学习工作负载的官方指南、教程和应用场景。
- 如需详细了解模型服务优化,请参阅使用 GPU 优化大语言模型推理的最佳实践。其中介绍了使用 GKE 上的 GPU 提供 LLM 服务的最佳实践,例如量化、张量并行处理和内存管理。
- 如需探索更多示例、最佳实践和工具,请访问 ai-on-gke GitHub 代码库。