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

本页面介绍了使用 GKE 生成式 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 应用,也可能是更强大的解决方案,例如 vLLM、JetStream、TensorFlow Serving 或 Triton Inference Server。模型服务器负责将模型加载到内存中,并在加速器上执行计算,以高效返回推理结果。
  • 加速器:专用硬件,例如 NVIDIA 的图形处理器 (GPU) 和 Google 的张量处理单元 (TPU),可挂接到 GKE 节点以加快计算速度,尤其适用于训练和推理任务。
  • 量化:一种用于缩减 AI/机器学习模型大小并提高推理速度的技术,通过将模型权重和激活值从较高精度的数据类型转换为较低精度的数据类型来实现。

GKE 在推理方面的优势

在 GKE 上进行推理服务具有以下几项优势:

  • 极高的性价比:以实惠的价格和极快的速度满足您的推理服务需求。GKE 提供了丰富的高性能加速器(GPU 和 TPU)供您选择,确保您只需为实际需要的算力付费。
  • 更快的部署:利用 GKE 生成式 AI 功能提供的量身定制的最佳实践、资格认证和最佳实践,加快产品上市期。
  • 可扩缩的性能:使用 GKE Inference Gateway、Pod 横向自动扩缩 (HPA) 和自定义指标,通过预构建的监控功能横向扩容性能。您可以运行各种预训练模型或自定义模型,参数数量从 80 亿到 6,710 亿不等。
  • 全面可移植性:受益于开放标准的全面可移植性。Google 为关键 Kubernetes API(包括 Gateway 和 LeaderWorkerSet)做出了贡献,并且所有 API 都可以与 Kubernetes 发行版一起移植。
  • 生态系统支持:依托 GKE 强大的生态系统,该生态系统支持 Kueue 等工具(用于高级资源排队和管理)以及 Ray(用于分布式计算),以促进可伸缩且高效的模型训练和推理。

GKE 中的推理工作原理

本部分简要介绍了使用 GKE 进行推理服务的步骤:

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

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

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

  4. 公开推理服务:通过创建 Kubernetes Service 为 Deployment 提供网络端点,使推理服务可供访问。使用推理网关进行专门针对生成式 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 Inference Gateway

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

如需了解详情,请参阅 GKE Inference Gateway 简介

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

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

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。此指标会同时统计输入和输出 token,有助于您比较预填充时间长和解码时间长的工作负载。

推理规划

成功的推理部署需要在多个关键领域进行周密规划,包括成本效益、性能、灵活性、效率以及加速器容量的可用性。如需详细了解如何构建可伸缩、高性能且经济实惠的推理平台,请参阅 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 Inference Gateway 提供 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

后续步骤