Hello カスタム トレーニング: カスタム画像分類モデルのトレーニング

このページでは、Vertex AI で TensorFlow Keras トレーニング アプリケーションを実行する方法について説明します。このモデルは、花の画像を種類別に分類できる画像分類モデルをトレーニングします。

このチュートリアルには複数のページが含まれます。

  1. プロジェクトと環境の設定

  2. カスタム画像分類モデルのトレーニング

  3. カスタム画像分類モデルから取得した予測情報の提供

  4. プロジェクトのクリーンアップ

各ページは、前のページのチュートリアルの手順をすでに実施していることを前提としています。

このドキュメントの以降の内容は、このチュートリアルの最初のページの手順を実施したときに作成したものと同じ Cloud Shell 環境を使用していることを前提としています。元の Cloud Shell セッションが開かれていない場合は、次の手順を行ってその環境に戻ることができます。

  1. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

  2. Cloud Shell セッションで次のコマンドを実行します。

    cd hello-custom-sample

カスタム トレーニング パイプラインを実行する

このセクションでは、Cloud Storage にアップロードしたトレーニング パッケージを使用して Vertex AI カスタム トレーニング パイプラインを実行する方法について説明します。

  1. Google Cloud コンソールの [Vertex AI] セクションで、[トレーニング パイプライン] ページに移動します。

    [トレーニング パイプライン] に移動

  2. [作成] をクリックして、[新しいモデルのトレーニング] ペインを開きます。

  3. トレーニング方法の選択ステップで、次の手順を行います。

    1. [データセット] プルダウン リストで、[管理されているデータセットなし] を選択します。この特定のトレーニング アプリケーションは、マネージド Vertex AI データセットではなく TensorFlow データセット ライブラリからデータを読み込みます。

    2. [カスタム トレーニング(上級者向け)] が選択されていることを確認します。

    [続行] をクリックします。

  4. [モデルの詳細] ステップの [名前] フィールドに「hello_custom」と入力します。[続行] をクリックします。

  5. [トレーニング コンテナ] ステップで、Cloud Storage にアップロードしたトレーニング パッケージを使用するために必要な情報を Vertex AI に提供します。

    1. [Prebuilt container] を選択します。

    2. [モデル フレームワーク] プルダウン リストで [TensorFlow] を選択します。

    3. [モデル フレームワークのバージョン] プルダウン リストで、[2.3] を選択します。

    4. [パッケージの場所] フィールドに「cloud-samples-data/ai-platform/hello-custom/hello-custom-sample-v1.tar.gz」と入力します。

    5. [Python モジュール] フィールドに「trainer.task」と入力します。trainer は tarball の Python パッケージの名前です。task.py にはトレーニング コードが含まれています。trainer.task は、Vertex AI を実行するモジュールの名前です。

    6. [Model output directory] フィールドで、[Browse] をクリックします。[フォルダの選択] ペインで次の手順を行います。

      1. Cloud Storage バケットに移動します。

      2. [新しいフォルダを作成] をクリックします。

      3. 新しいフォルダの名前を output とします。次に [作成] をクリックします。

      4. [選択] をクリックします。

      フィールドの値が gs://BUCKET_NAME/output であることを確認します。ここで、BUCKET_NAME は Cloud Storage バケットの名前です。

      この値は、Vertex AI の baseOutputDirectory API フィールドに渡されます。この値に基づいて、トレーニング アプリケーションが実行時にアクセスする複数の環境変数が設定されます。

      たとえば、このフィールドを gs://BUCKET_NAME/output に設定すると、AIP_MODEL_DIR 環境変数は gs://BUCKET_NAME/output/model に設定されます。トレーニングが終了すると、Vertex AI は AIP_MODEL_DIR ディレクトリのアーティファクトを使用してモデルリソースを作成します。

      詳しくは、このフィールドで設定される環境変数をご覧ください。

    [続行] をクリックします。

  6. オプションの [ハイパーパラメータ] ステップで、[Enable hyperparameter tuning] チェックボックスがオフになっていることを確認します。このチュートリアルでは、ハイパーパラメータ調整は使用しません。[続行] をクリックします。

  7. [コンピューティングと料金] ステップで、カスタム トレーニング ジョブのリソースを割り当てます。

    1. [リージョン] プルダウン リストで、[us-central1(アイオワ)] を選択します。

    2. [Machine type] プルダウン リストで、[標準] セクションから [n1-standard-4] を選択します。

    このチュートリアルでは、アクセラレータやワーカープールを追加しないでください。[続行] をクリックします。

  8. [予測コンテナ] ステップで、Vertex AI が予測を行うために必要な情報を提供します。

    1. [Prebuilt container] を選択します。

    2. [Prebuilt container settings] セクションで、次の操作を行います。

      1. [モデル フレームワーク] プルダウン リストで [TensorFlow] を選択します。

      2. [モデル フレームワークのバージョン] プルダウン リストで、[2.3] を選択します。

      3. [アクセラレータ タイプ] プルダウン リストで、[なし] を選択します。

      4. [モデル ディレクトリ] フィールドの値が gs://BUCKET_NAME/output になっていることを確認します。ここで、BUCKET_NAME は Cloud Storage バケットの名前です。これは、前のステップで指定した [Model output directory] の値と一致します。

    3. [予測 schemata] セクションのフィールドは空白のままにします。

  9. [トレーニングを開始] をクリックして、カスタム トレーニング パイプラインを開始します。

[トレーニング] ページに、hello_custom という名前の新しいトレーニング パイプラインが表示されます(ページの更新が必要になる場合があります)。トレーニング パイプラインは、次の 2 つの主要な処理を行います。

  1. トレーニング パイプラインが、hello_custom-custom-job という名前のカスタムジョブ リソースを作成します。しばらくすると、[トレーニング] セクションの [CUSTOM JOB] ページにこのリソースが表示されます。

    [CUSTOM JOB] に移動

    カスタムジョブは、このセクションで指定されたコンピューティング リソースを使用してトレーニング アプリケーションを実行します。

  2. カスタムジョブが完了すると、トレーニング パイプラインにより、トレーニング アプリケーションが作成したアーティファクトが検出されます。このアーティファクトは Cloud Storage バケットの output/model/ ディレクトリに作成されます。これらのアーティファクトを使用してモデルリソースを作成します。

トレーニングをモニタリングする

トレーニング ログを表示する方法は次のとおりです。

  1. Google Cloud コンソールの [Vertex AI] セクションで、[CUSTOM JOBS] ページに移動します。

    [CUSTOM JOBS] に移動

  2. 作成した CustomJob の詳細を表示するには、リスト内の hello_custom-custom-job をクリックします。

  3. ジョブの詳細ページで、[ログを表示] をクリックします。

トレーニング済みのモデルを表示する

カスタム トレーニング パイプラインが完了すると、Google Cloud コンソールの [Vertex AI] セクションの [モデル] ページにトレーニング済みモデルが表示されます。

[モデル] に移動

モデルの名前は hello_custom です。

次のステップ

このチュートリアルの次のページの説明に沿って、トレーニング済みの ML モデルから予測を行います。