組み込み BERT アルゴリズムを使用したトレーニング

AI Platform Training での組み込みアルゴリズムを使用したトレーニングでは、データセットを送信し、トレーニング コードを一切作成せずに、モデルをトレーニングできます。このページでは、組み込み BERT アルゴリズムの仕組みと使用方法について説明します。

概要

この組み込みアルゴリズムは、トレーニングとモデルのエクスポートの両方を行えます。

  1. トレーニング: AI Platform Training は、指定したデータセットとモデル パラメータを使用して、TensorFlow の BERT の実装でトレーニングを行います。
  2. エクスポート: 指定された初期チェックポイントを使用して、目的のジョブ ディレクトリにシリアル化されたモデルを作成します。その後、このモデルは AI Platform にデプロイできます。

制限事項

次の機能は、組み込み BERT アルゴリズムを使用したトレーニングでサポートされていません。

  • 自動データ前処理: このバージョンの BERT では、トレーニングと出力の両方に対して TFRecords 形式の入力データが必要になります。形式が合っていない入力を自動的に処理するようにトレーニング アプリケーションを作成する必要があります。

サポートされているマシンタイプ

次の AI Platform Training スケール階層とマシンタイプがサポートされています。

TPU にアクセスできるマシンタイプを使用することをおすすめします。

入力データのフォーマット

モデルをトレーニングする前に、入力データと評価データが TFRecord 形式になっていることを確認してください。

Cloud Storage バケットの権限を確認する

データを保存するには、AI Platform Training ジョブの実行に使用している Google Cloud プロジェクトの Cloud Storage バケットを使用します。それ以外の場合は、データが保存されている Cloud Storage バケットへのアクセス権を AI Platform Training に付与します。

BERT トレーニング ジョブを送信する

このセクションでは、組み込み BERT アルゴリズムを使用してトレーニング ジョブを送信する方法を説明します。

各ハイパーパラメータの簡単な説明は Google Cloud コンソールで確認できますが、より包括的な説明については組み込み BERT アルゴリズム リファレンスをご覧ください。

Console

  1. Google Cloud コンソールで AI Platform Training の [ジョブ] ページに移動します。

    AI Platform Training の [ジョブ] ページ

  2. [新規トレーニング ジョブ] ボタンをクリックします。下に表示されたオプションから、[組み込みアルゴリズムによるトレーニング] をクリックします。

  3. [新しいトレーニング ジョブの作成] ページで、[BERT] を選択して [次へ] をクリックします。

  4. 使用可能なすべてのパラメータの詳細については、Google Cloud コンソール内のリンクから組み込み 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}
    

その他の学習リソース