在 Cloud TPU 上训练 Transformer (TF 2.x)

如果您不熟悉 Cloud TPU,强烈建议您浏览快速入门,了解如何创建 TPU 和 Compute Engine 虚拟机。

本教程介绍如何在 Cloud TPU 上训练 Transformer 模型。Transformer 是一种神经网络架构,它使用注意力机制来解决序列到序列问题。与传统的神经 seq2seq 模型不同,Transformer 不涉及循环连接。注意力机制分两个序列获知词法单元之间的依赖关系。由于注意力权重应用于序列中的所有词法单元,因此 Transformer 模型能够轻松捕获长距离依赖关系。

Transformer 的整体结构遵循标准的编码器 - 解码器模式。编码器使用自注意力来计算输入序列的表示形式。解码器将编码器输出和先前解码器输出的词法单元作为输入,按一次一个词法单元的模式生成输出序列。

该模型还会对输入和输出词法单元应用嵌入,并添加常量位置编码。位置编码会添加有关每个词法单元位置的信息。

目标

  • 创建 Cloud Storage 存储分区以保存数据集和模型输出。
  • 下载并预处理用于训练模型的数据集。
  • 运行训练作业。
  • 验证输出结果。

费用

本教程使用 Google Cloud 的以下收费组件:

  • Compute Engine
  • Cloud TPU

您可使用价格计算器根据您的预计使用情况来估算费用。 Google Cloud 新用户可能有资格申请免费试用

准备工作

在开始学习本教程之前,请检查您的 Google Cloud 项目是否已正确设置。

  1. 登录您的 Google Cloud 帐号。如果您是 Google Cloud 新手,请创建一个帐号来评估我们的产品在实际场景中的表现。新客户还可获享 $300 赠金,用于运行、测试和部署工作负载。
  2. 在 Google Cloud Console 中的项目选择器页面上,选择或创建一个 Google Cloud 项目

    转到“项目选择器”

  3. 确保您的 Cloud 项目已启用结算功能。了解如何检查项目是否已启用结算功能

  4. 在 Google Cloud Console 中的项目选择器页面上,选择或创建一个 Google Cloud 项目

    转到“项目选择器”

  5. 确保您的 Cloud 项目已启用结算功能。了解如何检查项目是否已启用结算功能

  6. 本演示使用 Google Cloud 的收费组件。请查看 Cloud TPU 价格页面估算您的费用。请务必在使用完您创建的资源以后清理这些资源,以免产生不必要的费用。

Cloud TPU 单设备训练

本部分介绍如何为单一设备训练设置 Cloud Storage 存储桶、虚拟机和 Cloud TPU 资源。

  1. 打开一个 Cloud Shell 窗口。

    打开 Cloud Shell

  2. 为项目 ID 创建一个变量。

    export PROJECT_ID=project-id
  3. 配置 Google Cloud CLI,以使用要在其中创建 Cloud TPU 的项目。

    gcloud config set project ${PROJECT_ID}

    当您第一次在新的 Cloud Shell 虚拟机中运行此命令时,系统会显示 Authorize Cloud Shell 页面。点击页面底部的 Authorize 以允许 gcloud 使用您的凭据进行 GCP API 调用。

  4. 为 Cloud TPU 项目创建服务帐号。

    通过服务帐号,Cloud TPU 服务可以访问其他 Google Cloud Platform 服务。

    $ gcloud beta services identity create --service tpu.googleapis.com --project $PROJECT_ID
    

    该命令将返回以下格式的 Cloud TPU 服务帐号:

    service-PROJECT_NUMBER@cloud-tpu.iam.gserviceaccount.com
    

  5. 使用以下命令创建 Cloud Storage 存储分区:

    $ gsutil mb -p ${PROJECT_ID} -c standard -l europe-west4 gs://bucket-name
    

    此 Cloud Storage 存储分区存储您用于训练模型的数据和训练结果。本教程中使用的 gcloud 命令会为您设置 TPU,还会为在上一步中设置的 Cloud TPU 服务帐号设置默认权限。如果您需要更精细的权限,请查看访问级层权限

准备数据集

为了降低总体费用,我们建议您使用 Compute Engine 虚拟机执行任何长时间运行的数据下载或预处理操作。

  1. 打开一个 Cloud Shell 窗口。

    打开 Cloud Shell

  2. 创建 Compute Engine 虚拟机以下载并预处理您的数据。

    gcloud compute tpus execution-groups create --name=transformer-tutorial \
      --disk-size=300 \
      --machine-type=n1-standard-8 \
      --zone=europe-west4-a \
      --tf-version=2.8.0 \
      --vm-only
  3. 如果您未自动连接到 Compute Engine 实例,请通过运行以下 ssh 命令进行登录。登录虚拟机后,shell 提示符会从 username@projectname 更改为 username@vm-name

    gcloud compute ssh transformer-tutorial --zone=europe-west4-a

    在您继续按照这些说明操作时,请在 Compute Engine 实例中运行以 (vm)$ 开头的每个命令。

  4. 导出 TPU 设置变量

    导出项目 ID、要用于 TPU 资源的名称以及将用于训练模型和存储所有与训练有关的数据的可用区

    $ export TPU_NAME=transformer-tutorial
    $ export ZONE=europe-west4-a

  5. 导出 Cloud Storage 存储桶变量。将 bucket-name 替换为您的存储分区名称。

    (vm)$ export STORAGE_BUCKET=gs://bucket-name
    (vm)$ export GCS_DATA_DIR=${STORAGE_BUCKET}/data/transformer
    (vm)$ export DATA_DIR=${HOME}/transformer/data
    
  6. 安装 TensorFlow 要求并设置 PYTHONPATH 环境变量。

    (vm)$ pip3 install -r /usr/share/models/official/requirements.txt
    (vm)$ export PYTHONPATH="${PYTHONPATH}:/usr/share/models"
    
  7. 切换至存储模型的目录。

    (vm)$ cd /usr/share/models/official/legacy/transformer
  8. 下载并预处理数据集

    (vm)$ python3 data_download.py --data_dir=${DATA_DIR}
    (vm)$ gsutil cp -r ${DATA_DIR} ${GCS_DATA_DIR}
    

    data_download.py 下载并预处理训练和评估 WMT 数据集。数据下载并提取后,训练数据用于生成一个子词法单元词汇表。评估和训练字符串已进行词法单元处理,生成的数据会进行分片、重排并保存为 TFRecord。

    下载了 1.75GB 的压缩数据。原始文件(压缩文件、提取文件和合并文件)总计占用了 8.4 GB 的磁盘空间。生成的 TFRecord 和词汇表文件大小为 722 MB。脚本会保存 46 万个案例,运行大约需要 40 分钟。

  9. 清理虚拟机资源

    将数据集转换为 TFRecord 并将其复制到 Cloud Storage 存储桶的 DATA_DIR 后,您便可以删除 Compute Engine 实例。

    与 Compute Engine 实例断开连接:

    (vm)$ exit
    

    您的提示符现在应为 username@projectname,表明您回到 Cloud Shell 中。

  10. 删除您的 Compute Engine 实例。

    $ gcloud compute instances delete transformer-tutorial \
        --zone=europe-west4-a

在单个 Cloud TPU 上训练英德翻译模型

  1. 使用 gcloud 命令启动 Compute Engine 虚拟机和 Cloud TPU。 使用的命令取决于您使用的是 TPU 虚拟机还是 TPU 节点。如需详细了解这两种虚拟机架构,请参阅系统架构

    TPU 虚拟机

    $ gcloud alpha compute tpus tpu-vm create transformer-tutorial \
     --zone=europe-west4-a \
     --accelerator-type=v3-8 \
     --version=tpu-vm-tf-2.8.0
    

    命令标志说明

    zone
    您计划在其中创建 Cloud TPU 的可用区
    accelerator-type
    要创建的 Cloud TPU 的类型。
    version
    Cloud TPU 软件版本。

    TPU 节点

    $ gcloud compute tpus execution-groups create \
    --name=transformer-tutorial \
    --disk-size=300 \
    --machine-type=n1-standard-8 \
    --zone=europe-west4-a \
    --tf-version=2.8.0
    

    命令标志说明

    disk-size
    虚拟机的磁盘大小(以 GB 为单位)。
    machine_type
    gcloud 命令创建的虚拟机的机器类型
    tf-version
    虚拟机上安装的 Tensorflow gcloud compute tpus execution-groups 版本。
  2. 如果您未自动登录 Compute Engine 实例,请通过运行以下 ssh 命令进行登录。

    TPU 虚拟机

    gcloud alpha compute tpus tpu-vm ssh transformer-tutorial --zone=europe-west4-a
    

    TPU 节点

    gcloud compute ssh transformer-tutorial --zone=europe-west4-a
    
  3. 导出数据存储变量。

    (vm)$ export STORAGE_BUCKET=gs://bucket-name
    (vm)$ export GCS_DATA_DIR=${STORAGE_BUCKET}/data/transformer
    (vm)$ export DATA_DIR=${HOME}/transformer/data
    (vm)$ export PARAM_SET=big
    (vm)$ export MODEL_DIR=${STORAGE_BUCKET}/transformer/model_${PARAM_SET}
    
  4. 安装 TensorFlow 要求。

    TPU 虚拟机

    (vm)$ pip3 install -r /usr/share/tpu/models/official/requirements.txt
    (vm)$  export PYTHONPATH="/usr/share/tpu/models:$PYTHONPATH"
    

    TPU 节点

    (vm)$ pip3 install --user -r /usr/share/models/official/requirements.txt
    (vm)$ export PYTHONPATH="/usr/share/models:$PYTHONPATH"
    
  5. 导出 Cloud TPU 变量。

    TPU 虚拟机

    (vm)$ export TPU_NAME=local

    TPU 节点

    (vm)$ export TPU_NAME=transformer-tutorial

  6. 切换到训练目录。

    TPU 虚拟机

    (vm)$ cd /usr/share/tpu/models/official/legacy/transformer

    TPU 节点

    (vm)$ cd /usr/share/models/official/legacy/transformer
  7. 运行训练脚本:

    (vm)$ python3 transformer_main.py \
        --tpu=${TPU_NAME} \
        --model_dir=${MODEL_DIR} \
        --data_dir=${GCS_DATA_DIR} \
        --vocab_file=${GCS_DATA_DIR}/vocab.ende.32768 \
        --bleu_source=${GCS_DATA_DIR}/newstest2014.en \
        --bleu_ref=${GCS_DATA_DIR}/newstest2014.de \
        --batch_size=6144 \
        --train_steps=2000 \
        --static_batch=true \
        --use_ctl=true \
        --param_set=big \
        --max_length=64 \
        --decode_batch_size=32 \
        --decode_max_length=97 \
        --padded_decode=true \
        --distribution_strategy=tpu
    

    命令标志说明

    tpu
    Cloud TPU 的名称。这通过指定环境变量 (TPU_NAME) 进行设置。
    model_dir
    在训练期间存储检查点和摘要的 Cloud Storage 存储分区。您可以使用现有文件夹加载根据相同大小和 TensorFlow 版本的先前生成 TPU 创建的检查点。
    data_dir
    训练输入的 Cloud Storage 路径。在此示例中,该路径设置为 fake_imagenet 数据集。
    vocab_file
    包含待翻译词汇表的文件。
    bleu_source
    包含用于翻译的源语句的文件。
    bleu_ref
    包含翻译语句的参考的文件。
    train_steps
    训练模型的步数。一个步骤处理一批数据。包括前向传导和反向传播。
    batch_size
    训练批次大小。
    static_batch
    指定数据集中的批次是否具有静态形状。
    use_ctl
    指定脚本是否使用自定义训练循环运行。
    param_set
    在创建和训练模型时使用的参数集。这些参数定义输入形状、模型配置和其他设置。
    max_length
    数据集中样本的最大长度。
    decode_batch_size
    用于在 Cloud TPU 上实现 Transformer 自动回归解码的全局批次大小。
    decode_max_length
    解码/评估数据的最大序列长度。供转换器在 Cloud TPU 上进行自动回归解码,以最大限度地减少所需的数据填充量。
    padded_decode
    指定是否使用填充到 decode_max_length 的输入数据运行自动回归解码。Tor TPU/XLA-GPU 运行,由于静态形状要求,必须设置此标记。
    distribution_strategy
    要在 Cloud TPU 上训练 ResNet 模型,请将 distribution_strategy 设置为 tpu

    默认情况下,该模型每 2000 步进行一次评估。要训练到收敛,请将 train_steps 更改为 200000。 您可以设置以下参数来增加训练步骤数,或指定评估的运行频率:

    • --train_steps:用于设置要运行的总训练步数。
    • --steps_between_evals:在评估之间运行的训练步数。

    在 v3-8 Cloud TPU 上,训练和评估大约需要 7 分钟。训练和评估完成后,系统将显示类似如下内容的消息:

    INFO:tensorflow:Writing to file /tmp/tmpej76vasn
    I0218 20:07:26.020797 140707963950912 translate.py:184] Writing to file /tmp/tmpej76vasn
    I0218 20:07:35.099256 140707963950912 transformer_main.py:118] Bleu score (uncased): 0.99971704185009
    I0218 20:07:35.099616 140707963950912 transformer_main.py:119] Bleu score (cased): 0.9768599644303322
    

    您现在已完成单设备训练。请按照以下步骤删除单设备 TPU 资源。

  8. 与 Compute Engine 实例断开连接:

    (vm)$ exit
    

    您的提示符现在应为 username@projectname,表明您位于 Cloud Shell 中。

  9. 删除 TPU 资源。

    TPU 虚拟机

    $ gcloud alpha compute tpus tpu-vm delete transformer-tutorial \
    --zone=europe-west4-a
    

    命令标志说明

    zone
    您的 Cloud TPU 所在的可用区

    TPU 节点

    $ gcloud compute tpus execution-groups delete transformer-tutorial \
    --zone=europe-west4-a
    

    命令标志说明

    tpu-only
    仅删除 Cloud TPU。虚拟机仍然可用。
    zone
    包含要删除的 TPU 的可用区

此时,您可以结束本教程并清理,也可以继续并探索在 Cloud TPU Pod 上运行模型。

使用 Cloud TPU Pod 扩缩模型

要在 Cloud TPU Pod 上训练模型,您可能需要对训练脚本进行一些更改。如需了解相关信息,请参阅 TPU Pod 训练

以下说明假设您已经按照本教程开头所述打开了 Cloud Shell、设置了 TPU 项目并创建了一个 Cloud Storage 存储桶。

TPU Pod 训练

  1. 打开一个 Cloud Shell 窗口。

    打开 Cloud Shell

  2. 为项目 ID 创建一个变量。

    export PROJECT_ID=project-id
    
  3. 配置 Google Cloud CLI,以使用要在其中创建 Cloud TPU 的项目。

    gcloud config set project ${PROJECT_ID}
    

    当您第一次在新的 Cloud Shell 虚拟机中运行此命令时,系统会显示 Authorize Cloud Shell 页面。点击页面底部的 Authorize 以允许 gcloud 使用您的凭据进行 GCP API 调用。

  4. 为 Cloud TPU 项目创建服务帐号。

    gcloud beta services identity create --service tpu.googleapis.com --project $PROJECT_ID
    

    该命令将返回以下格式的 Cloud TPU 服务帐号:

    service-PROJECT_NUMBER@cloud-tpu.iam.gserviceaccount.com
    

  5. 使用以下命令创建 Cloud Storage 存储分区,或使用您之前为项目创建的存储分区:

    gsutil mb -p ${PROJECT_ID} -c standard -l us-central1 gs://bucket-name
    

    此 Cloud Storage 存储分区存储您用于训练模型的数据和训练结果。本教程中使用的 gcloud 命令会为您在上一步中设置的 Cloud TPU 服务帐号设置默认权限。如果您需要更精细的权限,请查看访问级层权限

启动 TPU 虚拟机资源

  1. 使用 gcloud 命令启动 TPU 虚拟机 Pod。本教程指定 v3-32 Pod。如需了解其他 Pod 选项,请参阅可用的 TPU 类型页面

    TPU 虚拟机

    $ gcloud alpha compute tpus tpu-vm create transformer-tutorial \
    --zone=europe-west4-a \
    --accelerator-type=v3-32 \
    --version=tpu-vm-tf-2.8.0-pod
    

    命令标志说明

    zone
    您计划在其中创建 Cloud TPU 的可用区
    accelerator-type
    要创建的 Cloud TPU 的类型。
    version
    Cloud TPU 软件版本。

    TPU 节点

    (vm)$ gcloud compute tpus execution-groups create \
    --name=transformer-tutorial \
    --accelerator-type=v3-32 \
    --zone=europe-west4-a \
    --tf-version=2.8.0
    

    命令标志说明

    tpu-only
    仅创建 Cloud TPU。默认情况下,gcloud compute tpus execution-groups 命令会创建虚拟机和 Cloud TPU。
    accelerator-type
    要创建的 Cloud TPU 的类型。
    zone
    拟在其中创建 Cloud TPU 的地区。该可用区应与 Compute Engine 虚拟机所用的可用区相同。例如:europe-west4-a
    tf-version
    虚拟机上安装的 Tensorflow gcloud 版本。
    name
    要创建的 Cloud TPU 的名称。
  2. 如果您未自动登录 Compute Engine 实例,请通过运行以下 ssh 命令进行登录。登录虚拟机后,shell 提示符会从 username@projectname 更改为 username@vm-name

    TPU 虚拟机

    gcloud alpha compute tpus tpu-vm ssh transformer-tutorial --zone=europe-west4-a
    

    TPU 节点

    gcloud compute ssh transformer-tutorial --zone=europe-west4-a
    

安装 Tensorflow 和依赖项

  1. 安装 TensorFlow 要求。

      (vm)$ pip3 install -r /usr/share/tpu/models/official/requirements.txt
      (vm)$  export PYTHONPATH="/usr/share/tpu/models:$PYTHONPATH"
      

  2. 导出 PYTHONPATH 变量。

    TPU 虚拟机

    
    (vm)$ PYTHONPATH="/usr/share/tpu/models:$PYTHONPATH"

    TPU 节点

    (vm)$ export PYTHONPATH="/usr/share/models:$PYTHONPATH"

设置并启动 Pod 训练

  1. 导出 Cloud TPU 设置变量:

    (vm)$ export STORAGE_BUCKET=gs://bucket-name
    (vm)$ export GCS_DATA_DIR=${STORAGE_BUCKET}/data/transformer
    (vm)$ export DATA_DIR=${HOME}/transformer/data
    (vm)$ export PARAM_SET=big
    (vm)$ export TPU_LOAD_LIBRARY=0
    (vm)$ export RESNET_PRETRAIN_DIR=gs://cloud-tpu-checkpoints/retinanet/resnet50-checkpoint-2018-02-07
    (vm)$ export TRAIN_FILE_PATTERN=${DATA_DIR}/train-*
    (vm)$ export EVAL_FILE_PATTERN=${DATA_DIR}/val-*
    (vm)$ export VAL_JSON_FILE=${DATA_DIR}/instances_val2017.json
    (vm)$ export MODEL_DIR=${STORAGE_BUCKET}/transformer/model_${PARAM_SET}_pod
    (vm)$ export TPU_NAME=transformer-tutorial
    
  2. 切换到训练目录:

    TPU 虚拟机

    (vm)$ cd /usr/share/tpu/models/official/legacy/transformer

    TPU 节点

    (vm)$ cd /usr/share/models/official/legacy/transformer
  3. 运行训练脚本:

    (vm)$ python3 transformer_main.py \
        --tpu=${TPU_NAME} \
        --model_dir=${MODEL_DIR} \
        --data_dir=${GCS_DATA_DIR} \
        --vocab_file=${GCS_DATA_DIR}/vocab.ende.32768 \
        --bleu_source=${GCS_DATA_DIR}/newstest2014.en \
        --bleu_ref=${GCS_DATA_DIR}/newstest2014.de \
        --batch_size=6144 \
        --train_steps=2000 \
        --static_batch=true \
        --use_ctl=true \
        --param_set=big \
        --max_length=64 \
        --decode_batch_size=32 \
        --decode_max_length=97 \
        --padded_decode=true \
        --distribution_strategy=tpu

    命令标志说明

    tpu
    Cloud TPU 的名称。这通过指定环境变量 (TPU_NAME) 进行设置。

     <dt><code>model_dir</code></dt>
     <dd>The Cloud Storage bucket where checkpoints and summaries are
       stored during training. You can use an existing folder to load previously
       generated checkpoints created on a TPU of the same size and
       TensorFlow version.</dd>
    
     <dt><code>data_dir</code></dt>
     <dd>The Cloud Storage path of training input. It is set to the
       fake_imagenet dataset in this example.</dd>
    
     <dt><code>vocab_file</code></dt>
     <dd>A file that contains the vocabulary for translation.</dd>
    
     <dt><code>bleu_source</code></dt>
     <dd>A file that contains source sentences for translation.</dd>
    
     <dt><code>bleu_ref</code></dt>
     <dd>A file that contains the reference for the translation sentences.</dd>
    
     <dt><code>train_steps</code></dt>
     <dd>The number of steps to train the model. One step processes one batch
       of data. This includes both a forward pass and back propagation.</dd>
    
     <dt><code>batch_size</code></dt>
     <dd>The training batch size.</dd>
    
     <dt><code>static_batch</code></dt>
     <dd>Specifies whether the batches in the dataset has static shapes.</dd>
    
     <dt><code>use_ctl</code></dt>
     <dd>Specifies whether the script runs with a custom training loop.</dd>
    
     <dt><code>param_set</code></dt>
     <dd>The parameter set to use when creating and training the model. The
      parameters define the input shape, model configuration, and other
      settings.</dd>
    
     <dt><code>max_length</code></dt>
     <dd>The maximum length of an example in the dataset.</dd>
    
     <dt><code>decode_batch_size</code></dt>
     <dd>The global batch size used for Transformer auto-regressive decoding
       on a Cloud TPU.</dd>
    
     <dt><code>decode_max_length</code></dt>
     <dd>The maximum sequence length of the decode/eval data. This is used by
       the Transformer auto-regressive decoding on a Cloud TPU to minimize
       the amount of required data padding.</dd>
    
     <dt><code>padded_decode</code></dt>
     <dd>Specifies whether the auto-regressive decoding runs with input data
       padded to the decode_max_length. Tor TPU/XLA-GPU runs, this flag must
       be set due to the static shape requirement.</dd>
    
     <dt><code>distribution_strategy</code></dt>
     <dd>To train the ResNet model on a Cloud TPU, set <code>distribution_strategy</code>
       to <code>tpu</code>.</dd>
    </dl>
    

默认情况下,该模型每 2000 步进行一次评估。要训练到收敛,请将 train_steps 更改为 200000。 您可以设置以下参数来增加训练步骤数,或指定评估的运行频率:

  • --train_steps:用于设置要运行的总训练步数。
  • --steps_between_evals:在评估之间运行的训练步数。

在 v3-32 Cloud TPU 上,训练和评估大约需要 7 分钟。训练和评估完成后,系统将显示类似如下内容的消息:

I0415 00:28:33.108577 140097002981184 transformer_main.py:311] Train Step: 2000/2000 / loss = 5.139615058898926
I0415 00:28:33.108953 140097002981184 keras_utils.py:148] TimeHistory: 120.39 seconds, 102065.86 examples/second between steps 0 and 2000
.
.
.
I0415 00:32:01.785520 140097002981184 transformer_main.py:116] Bleu score (uncased): 0.8316259831190109
I0415 00:32:01.786150 140097002981184 transformer_main.py:117] Bleu score (cased): 0.7945530116558075

此训练脚本需训练 2000 个步骤,并且每 2000 个步骤运行一次评估。在 v3-32 Cloud TPU Pod 上,这种特定的训练和评估大约需要 8 分钟。训练和评估完成后,系统将显示类似如下内容的消息:

INFO:tensorflow:Writing to file /tmp/tmpdmlanxcf
I0218 21:09:19.100718 140509661046592 translate.py:184] Writing to file /tmp/tmpdmlanxcf
I0218 21:09:28.043537 140509661046592 transformer_main.py:118] Bleu score (uncased): 1.799112930893898
I0218 21:09:28.043911 140509661046592 transformer_main.py:119] Bleu score (cased): 1.730366237461567

要训练到收敛,请将 train_steps 更改为 200000。您可以设置以下参数来增加训练步骤数,或指定评估的运行频率:

  • --train_steps:用于设置要运行的总训练步数。
  • --steps_between_evals:在评估之间运行的训练步数。

训练和评估完成后,系统将显示类似如下内容的消息:

0509 00:27:59.984464 140553148962624 translate.py:184] Writing to file /tmp/tmp_rk3m8jp
I0509 00:28:11.189308 140553148962624 transformer_main.py:119] Bleu score (uncased): 1.3239131309092045
I0509 00:28:11.189623 140553148962624 transformer_main.py:120] Bleu score (cased): 1.2855342589318752

清理

为避免因本教程中使用的资源导致您的 Google Cloud 帐号产生费用,请删除包含这些资源的项目,或者保留项目但删除各个资源。

  1. 断开与 Compute Engine 实例的连接(如果您尚未这样做):

    (vm)$ exit
    

    您的提示符现在应为 username@projectname,表明您位于 Cloud Shell 中。

  2. 删除您的 Cloud TPU 和 Compute Engine 资源。 用于删除资源的命令取决于您使用的是 TPU 虚拟机还是 TPU 节点。如需了解详情,请参阅系统架构

    TPU 虚拟机

    $ gcloud alpha compute tpus tpu-vm delete transformer-tutorial \
    --zone=europe-west4-a
    

    TPU 节点

    $ gcloud compute tpus execution-groups delete transformer-tutorial \
    --zone=europe-west4-a
    
  3. 如下所示运行 gsutil,将 bucket-name 替换为您为本教程创建的 Cloud Storage 存储分区的名称:

    $ gsutil rm -r gs://bucket-name
    

后续步骤

TensorFlow Cloud TPU 教程通常使用示例数据集来训练模型。此训练的结果无法用于推断。如需使用模型进行推理,您可以使用公开提供的数据集或您自己的数据集来训练模型。在 Cloud TPU 上训练的 TensorFlow 模型通常要求数据集采用 TFRecord 格式。

您可以使用数据集转换工具示例将图片分类数据集转换为 TFRecord 格式。如果您未使用图片分类模型,则必须自行将数据集转换为 TFRecord 格式。如需了解详情,请参阅 TFRecord 和 tf.Example

超参数调节

如需使用数据集提升模型的性能,您可以调节模型的超参数。您可以在 GitHub 上寻找所有 TPU 支持模型通用的超参数的相关信息。您可以在每个模型的源代码中寻找模型专用超参数的相关信息。如需详细了解超参数调节,请参阅超参数调节概览使用超参数调节服务调节超参数

推断

训练模型后,您可以使用该模型进行推断(也称为预测)。AI Platform 是一款基于云的解决方案,用于开发、训练部署机器学习模型。部署模型后,您可以使用 AI Platform Prediction 服务