使用内置 BERT 算法进行训练

使用 AI Platform Training 中的内置算法进行训练时,您无需编写任何训练代码即可提交数据集并训练模型。本页面介绍内置 BERT 算法的工作原理及使用方法。

概览

此内置算法可以执行训练和模型导出:

  1. 训练:AI Platform Training 使用您提供的数据集和模型参数,通过 Tensorflow 的 BERT 实现运行训练。
  2. 导出:使用提供的初始检查点在所需的作业目录中生成序列化模型。随后,该模型可以部署到 AI Platform。

限制

使用内置 BERT 算法进行训练时不支持以下功能

  • 自动数据预处理。此版本的 BERT 要求用于训练和输出的输入数据均采用 TFRecord 的形式。必须使训练应用自动处理未格式化的输入。

支持的机器类型

以下是系统支持的 AI Platform Training 容量层级和机器类型

  • BASIC 容量层级
  • BASIC_TPU 容量层级
  • CUSTOM 容量层级和 AI Platform Training 所支持的任何 Compute Engine 机器类型
  • CUSTOM 容量层级和以下任何旧版机器类型
    • standard
    • large_model
    • complex_model_s
    • complex_model_m
    • complex_model_l
    • standard_gpu
    • standard_p100
    • standard_v100
    • large_model_v100
    • complex_model_m_gpu
    • complex_model_l_gpu
    • complex_model_m_p100
    • complex_model_m_v100
    • complex_model_l_v100
    • TPU_V2(8 个核心)

我们建议使用可使用 TPU 的机器类型。

设置输入数据的格式

在训练模型之前,确保输入和评估数据采用 TFRecord 的形式。

检查 Cloud Storage 存储分区权限

要存储数据,请使用用于运行 AI Platform Training 作业的同一 Google Cloud 项目中的 Cloud Storage 存储分区。否则,需要向 AI Platform Training 授予对存储数据的 Cloud Storage 存储分区的访问权限

提交 BERT 训练作业

本部分介绍如何使用内置 BERT 算法提交训练作业。

您可以在 请参阅 Google Cloud 控制台中的 内置 BERT 算法参考

控制台

  1. 转到 Google Cloud 控制台中的 AI Platform Training“作业”页面:

    AI Platform Training“作业”页面

  2. 点击新建训练作业按钮。从下方显示的选项中,点击内置算法训练

  3. 创建新的训练作业页面上,选择 BERT,然后点击下一步

  4. 如需详细了解所有可用的参数,请点击 并参阅 内置 BERT 参考文档 了解详情。

gcloud

  1. 为您的作业设置环境变量,用您的项目的相应值替代 [VALUES-IN-BRACKETS] 内的值:

       # Specify the name of the Cloud Storage bucket where you want your
       # training outputs to be stored, and the Docker container for
       # your built-in algorithm selection.
       BUCKET_NAME='BUCKET_NAME'
       IMAGE_URI='gcr.io/cloud-ml-algos/bert:latest'
    
       DATE="$(date '+%Y%m%d_%H%M%S')"
       MODEL_NAME='MODEL_NAME'
       JOB_ID="${MODEL_NAME}_${DATE}"
    
       JOB_DIR="gs://${BUCKET_NAME}/algorithm_training/${MODEL_NAME}/${DATE}"
       BERT_BASE_DIR='gs://cloud-tpu-checkpoints/bert/keras_bert/uncased_L-24_H-1024_A-16'
       MODEL_DIR='${STORAGE_BUCKET}/bert-output'
       GLUE_DIR='gs://cloud-tpu-checkpoints/bert/classification'
       TASK='mnli'
    
  2. 使用 gcloud ai-platform jobs training submit 提交训练作业。请调整此通用示例,以使用您的数据集:

       gcloud ai-platform jobs submit training $JOB_ID \
          --master-image-uri=$IMAGE_URI --scale-tier=BASIC_TPU --job-dir=$JOB_DIR \
          -- \
          --mode='train_and_eval' \
          --input_meta_data_path=${GLUE_DIR}/${TASK}_meta_data \
          --train_data_path=${GLUE_DIR}/${TASK}_train.tf_record \
          --eval_data_path=${GLUE_DIR}/${TASK}_eval.tf_record \
          --bert_config_file=${BERT_BASE_DIR}/bert_config.json \
          --init_checkpoint=${BERT_BASE_DIR}/bert_model.ckpt \
          --train_batch_size=32 \
          --eval_batch_size=32 \
          --learning_rate=2e-5 \
          --num_train_epochs=1 \
          --steps_per_loop=1000
    
  3. 使用 gcloud 查看日志,从而监控训练作业的状态。请参阅 gcloud ai-platform jobs describegcloud ai-platform jobs stream-logs

       gcloud ai-platform jobs describe ${JOB_ID}
       gcloud ai-platform jobs stream-logs ${JOB_ID}
    

深入学习资源