AI Platform Training での組み込みアルゴリズムを使用したトレーニングでは、データセットを送信し、トレーニング コードを一切作成せずに、モデルをトレーニングできます。このページでは、組み込み BERT アルゴリズムの仕組みと使用方法について説明します。
概要
この組み込みアルゴリズムは、トレーニングとモデルのエクスポートの両方を行えます。
- トレーニング: AI Platform Training は、指定したデータセットとモデル パラメータを使用して、TensorFlow の BERT の実装でトレーニングを行います。
- エクスポート: 指定された初期チェックポイントを使用して、目的のジョブ ディレクトリにシリアル化されたモデルを作成します。その後、このモデルは AI Platform にデプロイできます。
制限事項
次の機能は、組み込み BERT アルゴリズムを使用したトレーニングでサポートされていません。
- 自動データ前処理: このバージョンの BERT では、トレーニングと出力の両方に対して TFRecords 形式の入力データが必要になります。形式が合っていない入力を自動的に処理するようにトレーニング アプリケーションを作成する必要があります。
サポートされているマシンタイプ
次の AI Platform Training スケール階層とマシンタイプがサポートされています。
BASIC
スケール階層BASIC_TPU
スケール階層- AI Platform Training でサポートされている Compute Engine マシンタイプの
CUSTOM
スケール階層 - 次のいずれかの以前のマシンタイプを持つ
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 バケットを使用します。それ以外の場合は、データが保存されている Cloud Storage バケットへのアクセス権を AI Platform Training に付与します。
BERT トレーニング ジョブを送信する
このセクションでは、組み込み BERT アルゴリズムを使用してトレーニング ジョブを送信する方法を説明します。
各ハイパーパラメータの簡単な説明は Google Cloud コンソールで確認できますが、より包括的な説明については組み込み BERT アルゴリズム リファレンスをご覧ください。
Console
Google Cloud コンソールで AI Platform Training の [ジョブ] ページに移動します。
[新規トレーニング ジョブ] ボタンをクリックします。下に表示されたオプションから、[組み込みアルゴリズムによるトレーニング] をクリックします。
[新しいトレーニング ジョブの作成] ページで、[BERT] を選択して [次へ] をクリックします。
使用可能なすべてのパラメータの詳細については、Google Cloud コンソール内のリンクから組み込み 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 Model Garden の詳細を確認する。