使用 TPU v6e 训练模型

本文档将指导您在 Cloud TPU v6e(也称为 Trillium)上训练模型,其中涵盖环境设置、性能优化以及使用 JAX 和 PyTorch/XLA 的实际训练示例。

TPU v6e(也称为 Trillium)是 Google 的第 6 代 TPU。在所有技术界面(例如 API 和日志)以及本文档中,Trillium 都将称为 v6e。TPU v6e 架构的每个 Pod 有 256 个芯片,与 v5e 有很多相似之处。TPU v6e 针对 Transformer、文生图和卷积神经网络 (CNN) 训练、微调和部署进行了优化。如需详细了解 TPU v6e 系统架构和配置,请参阅 TPU v6e

如需了解如何在 Cloud TPU v6e 上运行推理,请参阅以下教程:

准备工作

在开始之前,您需要:

  • 创建启用了结算功能的 Google Cloud 账号和项目
  • 安装 Google Cloud CLI Alpha 版组件
  • 启用 Cloud TPU API
  • 创建 Cloud TPU 服务代理
  • 创建 Cloud TPU 服务账号并授予权限

如需了解详情,请参阅设置 Cloud TPU 环境

验证配额和权限

验证您的项目是否具有以下配额:

如果您将 GKE 与 XPK 搭配使用,则需要在 Google Cloud 控制台中获得其他权限。如需了解详情,请参阅Google Cloud 控制台中所需的权限

预配 TPU

您可以使用以下方法预配和管理 TPU v6e:

  • GKE:您可以使用 GKE 将 TPU 作为加速器池进行预配和管理,以用于容器化机器学习工作负载。如需了解详情,请参阅 GKE 中的 TPU 简介
  • GKE 和 XPK:XPK 是一种命令行工具,可简化 GKE 上的集群创建和工作负载执行。它专为机器学习从业者而设计,可用于预配 TPU 和运行训练作业,而无需具备深厚的 Kubernetes 专业知识。如需了解详情,请参阅 XPK GitHub 代码库
  • Cloud TPU 已排队的资源:借助已排队的资源,您可以在容量可用时请求预配的 TPU 容量。这非常适合可在队列中等待的批量作业和容错工作负载。您可以为请求指定时间窗口。如需了解详情,请参阅管理已排队的资源

使用 GKE 和 XPK 预配 v6e Cloud TPU

如果您将 GKE 命令与 v6e 搭配使用,则可以使用 Kubernetes 命令或 XPK 来预配 Cloud TPU 并训练或部署模型。如需了解如何规划 GKE 集群中的 Cloud TPU 配置,请参阅规划 GKE 中的 Cloud TPU。以下部分提供了用于创建支持单个 NIC 和支持多 NIC 的 XPK 集群的命令。

创建支持单个 NIC 的 XPK 集群

export CLUSTER_NAME=xpk-cluster-name
export ZONE=us-east1-d
export PROJECT_ID=your-project-id
export TPU_TYPE=v6e-256
export NUM_SLICES=2

export NETWORK_NAME=${CLUSTER_NAME}-mtu9k
export NETWORK_FW_NAME=${NETWORK_NAME}-fw
gcloud compute networks create ${NETWORK_NAME}