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

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

概要

この組み込みアルゴリズムでは、次のトレーニングのみが行われます。

  1. トレーニング: AI Platform Training は、指定したデータセットとモデル パラメータを使用して、TensorFlow の NCF の実装でトレーニングを行います。

制限事項

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

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

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

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

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

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

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

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

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

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

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

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

Console

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

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

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

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

  4. 使用可能なすべてのパラメータの詳細については、Google Cloud コンソール内のリンクをたどって、組み込み NCF リファレンスをご覧ください。

gcloud

  1. ジョブの環境変数を設定します。

       # 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/ncf:latest'
    
       # Specify the Cloud Storage path to your training input data.
       DATA_DIR='gs://$BUCKET_NAME/ncf_data'
    
       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}"
    

    次のように置き換えます。

    • BUCKET_NAME: トレーニング出力を保存する Cloud Storage バケットの名前。
    • MODEL_NAME: モデル アーティファクト。Cloud Storage バケット内のモデル アーティファクトの保存場所を指定します。
  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 \
          -- \
          --train_dataset_path=${DATA_DIR}/training_cycle_*/* \
          --eval_dataset_path=${DATA_DIR}/eval_data/* \
          --input_meta_data_path=${DATA_DIR}/metadata \
          --learning_rate=3e-5 \
          --train_epochs=3 \
          --eval_batch_size=160000 \
          --learning_rate=0.00382059 \
          --beta1=0.783529 \
          --beta2=0.909003 \
          --epsilon=1.45439e-07 \
          --num_factors=64 \
          --hr_threshold=0.635 \
          --keras_use_ctl=true \
          --layers=256,256,128,64 \
    
  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}
    

その他の学習リソース