使用 AI Platform Training 中的内置算法进行训练时,您无需编写任何训练代码即可提交数据集并训练模型。本页面介绍内置 BERT 算法的工作原理及使用方法。
概览
此内置算法可以执行训练和模型导出:
- 训练:AI Platform Training 使用您提供的数据集和模型参数,通过 Tensorflow 的 BERT 实现运行训练。
- 导出:使用提供的初始检查点在所需的作业目录中生成序列化模型。随后,该模型可以部署到 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 算法参考。
控制台
转到 Google Cloud 控制台中的 AI Platform Training“作业”页面:
点击新建训练作业按钮。从下方显示的选项中,点击内置算法训练。
在创建新的训练作业页面上,选择 BERT,然后点击下一步。
如需详细了解所有可用的参数,请点击 并参阅 内置 BERT 参考文档 了解详情。
gcloud
为您的作业设置环境变量,用您的项目的相应值替代
[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'
使用
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
使用
gcloud
查看日志,从而监控训练作业的状态。请参阅gcloud ai-platform jobs describe
和gcloud ai-platform jobs stream-logs
。gcloud ai-platform jobs describe ${JOB_ID} gcloud ai-platform jobs stream-logs ${JOB_ID}
深入学习资源
- 详细了解 Cloud TPU。
- 详细了解 TensorFlow 模型集合。