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

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

在本系列中,我们不会尝试介绍所有可用的 GKE 选项。不过,我们会提供您需要了解的基本信息,以便您在 GKE 上运行工作负载。本系列包含以下文档:

作为 AI/机器学习从业者,您可以使用 Google Kubernetes Engine (GKE)(以下简称“GKE”)来帮助您管理模型部署。GKE 是一项服务,可让您自动部署、扩缩和监控基于 Kubernetes 的推理工作负载以及运行这些工作负载的计算基础设施。本文档介绍了使用 GKE 进行模型推理的一些主要优势,包括:

准备工作

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

打包模型以实现一致的性能

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

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

延迟是推理工作负载面临的一个问题,一些复杂的模型依赖于 GPUTPU 等硬件加速器来加快推理服务速度。GKE 可简化为延迟敏感型推理工作负载使用 GPU 或 TPU 的流程。您可以选择最符合性能和费用要求的特定硬件配置,而 GKE 会自动预配和管理您选择的硬件。例如,GKE 可自动执行 NVIDIA 驱动程序安装,而此步骤通常需要在 Kubernetes 中手动配置。

GKE 还提供资源管理功能,以便您更高效地使用 TPU 和 GPU 资源进行推理服务。例如,您可以使用 GKE 在多个模型之间调度或共享 GPU 或 TPU 池,也可以将加速器与 Spot 虚拟机搭配使用,以提高容错推理工作负载的成本效益。这些功能可帮助您最大限度地利用加速器资源,同时优化服务延迟时间和费用。

自动处理不断变化的流量模式

实时推理工作负载的流量和负载可能难以预测且动态变化。需求激增可能会导致延迟时间增加和性能下降。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/机器学习模型转换为功能强大的生产就绪型应用。

后续步骤