为何使用 GKE 进行 AI/机器学习推理

本文档是系列文章的第一部分,适用于刚开始使用 Google Kubernetes Engine (GKE) 且希望尽快开始在 GKE 上运行推理工作负载的机器学习 (ML) 工程师。

在本系列中,我们不会尝试介绍所有可用的 GKE 选项。不过,我们会为您提供将工作负载部署到 GKE 上所需的基本信息。本系列包含以下文档:

作为 AI/机器学习平台工程师,您可以使用 GKE 来帮助您管理模型部署。GKE 是一项服务,可让您自动部署、伸缩和监控基于 Kubernetes 的推理工作负载以及运行这些工作负载的计算基础设施。本文档介绍了使用 GKE 进行模型推理的一些主要优势,包括:

准备工作

在阅读本文档之前,您应该先熟悉以下内容:

封装模型以实现一致的性能

对于 AI 应用而言,模型推理的一致性和可靠性至关重要,而 GKE 可以降低大规模管理推理的运营复杂性。通过将训练好的模型、推理服务器和所有依赖项打包到容器中,您可以创建可在 GKE 上运行的标准化可移植制品。容器化有助于减少因依赖项不匹配或环境不一致而导致的错误。GKE 会自动部署和管理这些容器。它会处理重启崩溃的工作负载或重新配置资源等任务,以帮助稳定 AI/机器学习工作负载的性能。

使用 GPU 和 TPU 缩短服务延迟时间

延迟是推理工作负载面临的一个问题,一些复杂的模型依赖于 GPUTPU 等硬件加速器来加快推理服务速度。GKE 通过简化硬件预配和管理,简化了为延迟敏感型推理工作负载使用 GPU 或 TPU 的流程。您可以选择最符合性能和成本要求的特定硬件配置,然后 GKE 会自动预配具有所选硬件的节点来运行工作负载。GKE 还会自动执行通常需要在 Kubernetes 中手动配置的设置步骤,例如安装 NVIDIA 驱动程序。如需更精细地控制节点配置,您可以使用自定义 ComputeClasses 创建特定的可重复使用的硬件配置文件,供 GKE 在预配节点时使用。

GKE 还提供资源管理功能,以便您更高效地使用 TPU 和 GPU 资源进行推理服务。例如,您可以使用 GPU 共享在单个 GPU 服务器上托管多个模型,从而提高 GPU 利用率;或者,您可以在配备加速器的 Spot 虚拟机上运行容错推理作业,从而降低费用。 对于需求要求波动或时长较短的小型到中型工作负载,您可以使用灵活启动,这是一种灵活且经济高效的技术,可让您使用 GPU 或 TPU 等专用计算资源。这些功能可帮助您最大限度地利用加速器资源,同时优化服务延迟时间和费用。

自动处理波动的流量模式

实时推理工作负载的流量和负载可能难以预测且动态变化。需求激增可能会导致延迟时间增加和性能下降。GKE 提供多层自动扩缩方法,以便您可以自动添加或移除资源,从而满足不断变化的推理需求。例如,您可以使用 Pod 横向自动扩缩器 (HPA) 自动调整 Deployment 中的 Pod 数量,也可以使用集群自动扩缩器自动调整现有节点池中的节点数量。借助 GKE 自动扩缩功能,您可以根据应用需求量,高效地调整推理工作负载所需的资源量。

监控推理工作负载的健康状况和性能

GKE 与 Google Cloud 可观测性套件(Cloud LoggingCloud Monitoring) 集成,您可以使用内置的可观测性功能来监控推理工作负载的健康状况和性能。借助这些可观测性功能,您可以深入了解工作负载在部署后的性能。例如,您可能想知道模型是否按预期运行,或者工作负载是否满足延迟时间和准确率方面的要求。

GKE 会自动报告 CPU、内存和加速器利用率等基础架构指标。如需回答有关特定模型性能的问题,您可以使用 Google Cloud Managed Service for Prometheus,也可以将推理应用中的自定义指标发送到 Cloud Monitoring。例如,您可以配置自动应用监控并监控关键推理指标,例如每秒请求数 (RPS);通过分析特定于模型的指标(例如输入数据分布)来监控概念漂移;以及通过进行历史日志分析来调试问题。

使用 GKE 实现可移植性和灵活性

通过使用容器等开放标准和 Kubernetes 等开源技术,GKE 可让您根据需求变化,自由地将推理服务工作负载迁移到不同位置,并使用不同的资源和工具。例如,您可以在 GKE 上开发和测试推理应用,然后将同一容器化应用部署到本地环境以用于生产。

总而言之,您可以使用 GKE 简化 AI/机器学习模型从开发到生产的流程。GKE 可处理��多与基础设施管理相关的复杂问题,这意味着您可以专注于在高性能、可伸缩且可观测的环境中运行推理工作负载。在本系列中,您将学习如何使用 GKE 将 AI/机器学习模型转换为功能强大且可用于生产用途的应用。

后续步骤