通过 MaxDiffusion 使用 GKE 上的 TPU 应用 Stable Diffusion XL (SDXL)

本教程介绍了如何通过 MaxDiffusion,使用 Google Kubernetes Engine (GKE) 上的张量处理单元 (TPU) 应用 SDXL 图片生成模型。在本教程中,您将从 Hugging Face 下载模型,然后使用运行 MaxDiffusion 的容器将其部署到 AutopilotStandard 集群上。

如果您在部署和应用 AI/机器学习工作负载时需要利用托管式 Kubernetes 的精细控制、自定义、可伸缩性、弹性、可移植性和成本效益,那么本指南是一个很好的起点。如果您需要统一的托管式 AI 平台来经济高效地快速构建和应用机器学习模型,我们建议您试用我们的 Vertex AI 部署解决方案。

背景

通过 MaxDiffusion 使用 GKE 上的 TPU 来应用 SDXL,您可以构建一个可用于生产用途的强大服务解决方案,具备托管式 Kubernetes 的所有优势,包括经济高效、可伸缩性和更高的可用性。本部分介绍本教程中使用的关键技术。

Stable Diffusion XL (SDXL)

Stable Diffusion XL (SDXL) 是 MaxDiffusion 支持用于推理的一种潜在 diffusion 模型 (LDM)。对于生成式 AI,您可以使用 LDM 基于文本描述生成高质量的图片。LDM 对于图片搜索和图片标注等应用非常有用。

SDXL 支持使用分片注解进行单主机或多主机推理。这样一来,SDXL 就可以跨多个机器进行训练和运行,从而提高效率。

如需了解详情,请参阅 Stability AI 仓库提供的生成模型SDXL 论文。

TPU

TPU 是 Google 定制开发的应用专用集成电路 (ASIC),用于加速机器学习和使用 TensorFlowPyTorchJAX 等框架构建的 AI 模型。

使用 GKE 中的 TPU 之前,我们建议您完成以下学习路线:

  1. 了解 Cloud TPU 系统架构中的当前 TPU 版本可用性。
  2. 了解 GKE 中的 TPU

本教程介绍如何提供 SDXL 模型。GKE 在单主机 TPU v5e 节点上部署模型,并根据模型要求配置 TPU 拓扑,以低延迟响应提示。在本指南中,该模型使用具有 1x1 拓扑的 TPU v5e 芯片。

MaxDiffusion

MaxDiffusion 是一系列用 Python 和 Jax 编写的参考实现,其中包含在 XLA 设备(包括 TPU 和 GPU)上运行的各种潜在 diffusion 模型。MaxDiffusion 是 Diffusion 项目的起点,可用于研究和生产。

如需了解详情,请参阅 MaxDiffusion 仓库