GKE 上的 AI/机器学习模型推理简介

本页面介绍了使用 GKE Gen AI 功能在 Google Kubernetes Engine (GKE) 上运行生成式 AI/机器学习模型推理工作负载的关键概念、优势和步骤。

推理服务对于将生成式 AI 模型部署到实际应用中至关重要。GKE 提供了一个强大且可扩缩的平台来管理容器化工作负载,因此是开发或生产环境中模型服务的一个极具吸引力的选择。借助 GKE,您可以利用 Kubernetes 的编排、扩缩和高可用性功能,高效部署和管理推理服务。

为了满足 AI/机器学习推理的特定需求, Google Cloud 推出了 GKE 生成式 AI 功能,这是一套专门用于增强和优化 GKE 推理服务的特性。如需详细了解特定功能,请参阅 GKE 生成式 AI 功能

GKE 上的 AI/机器学习模型推理使用入门

只需几分钟即可开始探索 GKE 上的 AI/机器学习模型推理。您可以使用 GKE 的免费层级,这使您无需支付集群管理费用即可开始使用 Kubernetes。

  1. 前往 Google Cloud 控制台中的 GKE AI/ML 页面

  2. 尝试执行部署模型步骤,以部署容器化模型和模型服务器。
  3. 请参阅 GKE 推理最佳实践概览,其中包含有关在 GKE 上规划和运行推理工作负载的指南和资源。

术语

本页面使用以下与 GKE 推理相关的术语:

  • 推理:在 GKE 集群中运行生成式 AI 模型(例如大语言模型或扩散模型)以根据输入数据生成文本、嵌入或其他输出的过程。GKE 上的模型推理利用加速器高效处理实时或批处理的复杂计算。
  • 模型:一种从数据中学习模式并用于推理的生成式 AI 模型。模型的大小和架构各不相同,从较小的特定领域模型到经过优化可处理各种语言任务的数十亿参数巨型神经网络,应有尽有。
  • 模型服务器:一种容器化服务,负责接收推理请求并返回推理结果。此服务可以是 Python 应用,也可以是更强大的解决方案,例如 vLLMJetStreamTensorFlow ServingTriton Inference Server。模型服务器负责将模型加载到内存中,并在加速器上执行计算,以高效地返回推理结果。
  • 加速器:可附加到 GKE 节点以加快计算速度的专用硬件,例如 NVIDIA 的图形处理单元 (GPU) 和 Google 的张量处理单元 (TPU),尤其适用于训练和推理任务。
  • 量化:一种用于减小 AI/ML 模型大小并通过将模型权重和激活从更高精度的数据类型转换为更低精度的数据类型来提高推理速度的技术。

GKE 在推理方面的优势

在 GKE 上提供推理服务具有以下多项优势:

  • 高效的性价比:满足推理服务需求,同时兼顾价值和速度。GKE 可让您从各种强大的加速器(GPU 和 TPU)中进行选择,因此您只需为所需的性能付费。
  • 加快部署速度:利用 GKE 生成式 AI 功能提供的量身定制的最佳实践、资格认证和最佳实践,缩短产品上市时间。
  • 可扩缩的性能:使用 GKE 推理网关Pod 横向自动扩缩 (HPA) 和自定义指标,通过预构建的监控功能来扩缩性能。您可以运行各种预训练模型或自定义模型,参数数量从 80 亿到 6,710 亿不等。
  • 完全可移植:受益于开放标准带来的完全可移植性。Google 为关键 Kubernetes API(包括 GatewayLeaderWorkerSet)做出了贡献,并且所有 API 都可以随 Kubernetes 发行版移植。
  • 生态系统支持:依托 GKE 的强大生态系统,该生态系统支持 Kueue 等工具,可实现高级资源排队和管理;还支持 Ray,可实现分布式计算,从而有助于实现可扩缩且高效的模型训练和推理。

GKE 中的推理工作原理

本部分概括介绍了使用 GKE 进行推理服务所需的步骤:

  1. 将模型容器化容器化应用是指创建容器映像,这是一种可执行的软件包,其中包含运行应用所需的所有内容:代码、运行时环境、系统工具、系统库和设置。简单的应用可以容器化为单个单元,而更复杂的应用可以分解为多个容器化组件。通过将模型服务器(例如 vLLM)容器化并从 Cloud Storage 或 Hugging Face 等代码库加载模型权重来部署模型。使用 GKE 推理快速入门时,系统会自动在清单中为您管理容器化映像。

  2. 创建 GKE 集群:创建 GKE 集群以托管您的部署。选择 Autopilot 可获得托管式体验,选择标准可进行自定义。配置集群大小、节点类型和加速器。如需了解优化配置,请参阅推理快速入门

  3. 将模型部署为 Kubernetes Deployment:创建 Kubernetes Deployment 以管理推理服务。Deployment 是一个 Kubernetes API 对象,可让您运行在集群节点中分布的多个 Pod 副本。指定 Docker 映像、副本和设置。Kubernetes 会拉取映像,并在 GKE 集群节点上运行您的容器。使用模型服务器和模型配置 Pod,包括所需的 LoRA 适配器。

  4. 公开推理服务:通过创建 Kubernetes 服务来为您的 Deployment 提供网络端点,从而使推理服务可供访问。使用推理网关进行智能负载均衡和路由,专门针对生成式 AI 推理工作负载量身定制。使用推理网关实现针对生成式 AI 工作负载量身定制的智能负载均衡,或者参阅负载均衡策略比较,选择最符合您需求的选项。

  5. 处理推理请求:以预期格式(JSON、gRPC)将应用客户端的数据发送到服务的端点。如果您使用的是负载均衡器,它会将请求分配给模型副本。模型服务器处理请求、运行模型并返回推理结果。

  6. 扩缩和监控推理部署:使用 HPA 扩缩推理,以根据 CPU 或延迟时间自动调整副本。Pod 横向自动扩缩器 (HPA) 是一种 Kubernetes 控制器,可根据观察到的指标(例如 CPU 利用率或自定义指标)自动增加或减少工作负载(例如 Deployment)中的 Pod 数量。使用推理快速入门获取自动生成的扩缩建议。 如需跟踪性能,请使用 Cloud Monitoring 和 Cloud Logging 以及预构建的可观测性功能,包括适用于 vLLM 等热门模型服务器的信息中心。

如需查看使用特定模型、模型服务器和加速器的详细示例,请参阅推理示例

GKE 生成式 AI 功能

您可以同时使用这些功能,也可以单独使用它们来解决在 GKE 环境中提供生成式 AI 模型和提高资源利用率方面的主要挑战,而无需额外付费。

名称 说明 优势
GKE 推理快速入门

分析推理工作负载的性能和成本效益。 指定您的业务需求,并获得量身定制的最佳实践,以了解哪种加速器、扩缩和存储配置以及模型服务器组合最能满足您的需求。您可以使用 gcloud CLI 和 Google Cloud 控制台访问此服务。

如需了解详情,请参阅使用 GKE 推理快速入门分析模型服务性能和费用

  • 通过自动执行选择和配置基础架构的初始步骤,节省时间。
  • 让您能够完全掌控 Kubernetes 设置,以便进行进一步的调整。
GKE 推理网关

根据 KV 缓存利用率等指标获取路由,以缩短延迟时间。

如需了解详情,请参阅 GKE 推理网关简介

  • 分享使用 LoRA 文件进行微调的模型,并根据亲和性选择端点以提高成本效益。
  • 通过跨区域动态访问 GPU 和 TPU 容量来实现高可用性。
  • 使用 Model Armor 加购项政策增强模型的安全性。
模型权重加载加速器

使用 缓存和并行下载功能,通过 Cloud Storage FUSE 快速访问 Cloud Storage 中的数据。如需详细了解如何将 Cloud Storage FUSE 用于 AI/ML 工作负载,请参阅参考架构

Google Cloud Managed Lustre 是一种高性能、全托管式并行文件系统,可针对 AI 进行优化,并且可以连接到 10,000 个或更多 Pod。如需详细了解如何将 Managed Lustre 用于 AI/机器学习工作负载,请参阅参考架构

Google Cloud Hyperdisk ML 是一种网络挂接磁盘,最多可挂接到 2,500 个 Pod。

  • 通过最大限度地减少 GKE 上的权重加载模型延迟时间来优化推理启动时间。
  • 对于节点扩缩有限的部署,请考虑使用 Cloud Storage FUSE 来装载模型权重。
  • 对于需要稳定横向扩缩性能的推理工作负载,Google Cloud Managed Lustre 支持从多个 Pod 同时进行高吞吐量和低延迟文件访问。
  • 对于需要以低延迟时间持续访问大型模型权重的超大规模场景,Google Cloud Hyperdisk ML 提供了一种专用块存储解决方案。

推理性能指标

为了优化推理工作负载,请务必了解如何衡量其性能。下表介绍了用于对 GKE 上的推理性能进行基准比较的关键指标。

基准指标 指标(单位) 说明
延迟时间 首 token 延迟 (TTFT)(毫秒) 为请求生成第一个token所需的时间。
每个输出 token 的标准化时间 (NTPOT)(毫秒) 按输出 token 数进行标准化的请求延迟时间,以 request_latency / total_output_tokens 为单位。
每个输出 token 的时间 (TPOT)(毫秒) 生成一个输出 token 所需的时间,以 (request_latency - time_to_first_token) / (total_output_tokens - 1) 为单位进行衡量。
token间延迟时间 (ITL)(毫秒) 衡量两次输出 token 生成之间的延迟时间。与测量整个请求的延迟时间的 TPOT 不同,ITL 测量的是生成每个输出 token 所需的时间。然后,将这些单独的测量结果汇总,以生成平均值、中位数和百分位数(例如 p90)。
请求延迟时间(毫秒) 完成请求的端到端时间。
吞吐量 每秒请求数 每秒处理的请求总数。请注意,此指标可能不是衡量 LLM 吞吐量的可靠方式,因为对于不同的上下文长度,此指标可能会有很大差异。
每秒输出的 token 数 一种常见指标,以 total_output_tokens_generated_by_server / elapsed_time_in_seconds 为单位进行衡量。
每秒输入 token 数 测量值为 total_input_tokens_generated_by_server / elapsed_time_in_seconds
每秒处理的 token 数量 测量结果为 total_tokens_generated_by_server / elapsed_time_in_seconds。此指标会统计输入和输出令牌,有助于您比较预填充时间较长的工作负载与解码时间较长的工作负载。

推理规划

若要成功部署推理,需要在多个关键领域进行周密规划,包括成本效益、性能和资源可获取性。如需有关如何构建可扩缩、高性能且经济实惠的推理平台的详细建议,请参阅 GKE 推理最佳实践概览

试用推理示例

查找生成式 AI 模型、加速器和模型服务器的 GKE 部署示例。如果您刚刚开始使用,建议您先探索通过 vLLM 使用 GKE 中的 GPU 提供 Gemma 开放模型教程。

或者,按关键字搜索教程:

加速器 模型服务器 教程
GPU vLLM 在 GKE 上提供 DeepSeek-R1 671B 或 Llama 3.1 405B 等 LLM
GPU vLLM 通过 vLLM 使用 GKE 中的 GPU 应用 Gemma 开放模型
GPU vLLM 使用 GKE 推理网关提供 LLM
GPU vLLM 通过预配置的架构在 GKE 上部署开放 LLM
GPU Ray Serve 使用 Ray 在 L4 GPU 上部署 LLM
GPU TGI 通过 GKE 中的多个 GPU 提供 LLM
GPU TorchServe 通过 TorchServe 在 GKE 上部署 T5
TPU vLLM 通过 vLLM,使用 GKE 中的 TPU Trillium 提供 LLM
TPU vLLM 通过 KubeRay,使用 GKE 上的 TPU 应用 LLM
TPU MaxDiffusion 通过 MaxDiffusion 使用 GKE 上的 TPU 应用 Stable Diffusion XL (SDXL)
TPU vLLM 使用多主机 TPU 部署 LLM
TPU vLLM 通过预配置的架构在 TPU 上部署开放 LLM

后续步骤