コンテナの概要

は、

AI Platform 上のコンテナは、Docker イメージ内でアプリケーションを実行可能にする機能です。独自のカスタム コンテナを作成し、そのコンテナを使用して AI Platform 上でジョブを実行できます。カスタム コンテナを作成する場合、さまざまな ML フレームワークと複数のバージョンだけでなく、AI Platform では通常サポートされていない ML 以外の依存関係、ライブラリ、バイナリも使用できます。

コンテナを使用したトレーニングの仕組み

任意の ML フレームワークで実装したトレーニング アプリケーションが、トレーニング プロセスの中核となります。

  1. 任意の ML フレームワークを使用して、モデルをトレーニングするアプリケーションを作成します。
  2. カスタム コンテナを使用するかどうかを決定します。使用する依存関係をすでにサポートしているランタイム バージョンが存在する場合もありますが、そうでなければ、トレーニング ジョブ用のカスタム コンテナを作成する必要があります。カスタム コンテナ内で、トレーニング アプリケーションとそのすべての依存関係をイメージにプリインストールします。このイメージを使用して、トレーニング ジョブを実行します。
  3. トレーニングと検証のデータを、AI Platform がアクセスできるソースに格納します。格納先は通常、Cloud Storage、Cloud Bigtable、または AI Platform で使用しているのと同じ GCP プロジェクトに関連付けられている別の Google Cloud Platform ストレージ サービスです。
  4. アプリケーションを実行する準備が整ったら、Docker イメージをビルドして Container Registry に push し、AI Platform サービスがレジストリにアクセスできることを確認します。
  5. gcloud beta ai-platform jobs submit training を使用してジョブを送信します。その際、引数を config.yaml ファイル内で指定するか、引数に対応する gcloud フラグを指定します。
  6. AI Platform トレーニング サービスにより、ジョブのリソースが設定されます。さらに、ジョブの構成に基づいて 1 つ以上の仮想マシン(「トレーニング インスタンス」と呼ばれます)が割り当てられます。トレーニング ジョブの送信時に TrainingInput オブジェクトの一部として指定したカスタム コンテナを使用して、トレーニング インスタンスを設定します。
  7. トレーニング サービスで Docker イメージを実行します。その際、トレーニング ジョブの作成時に指定したコマンドライン引数が渡されます。
  8. 実行中のジョブに関する情報を取得するには、次の方法があります。
  9. トレーニング ジョブが正常に終了するか、回復不能なエラーが発生すると、AI Platform はすべてのジョブプロセスを停止してリソースをクリーンアップします。

カスタム コンテナの利点

カスタム コンテナを使用すると、アプリケーションに必要なすべての依存関係を指定してプリインストールできます。

  • 起動時間が短縮されます。 依存関係がプリインストールされたカスタム コンテナを使用すれば、トレーニング アプリケーションが起動時に依存関係をインストールする必要がなくなるため、その分の時間を節約できます。
  • 任意の ML フレームワークを使用できます。 使用する ML フレームワークをサポートしている AI Platform ランタイム バージョンが見つからなければ、そのフレームワークをインストールするカスタム コンテナを作成し、それを使用して AI Platform 上でジョブを実行できます。たとえば、PyTorch を使用してトレーニングできます。
  • 分散トレーニングがサポートされます。 カスタム コンテナでは、任意の ML フレームワークを使用して分散トレーニングを行うことができます。
  • 最新バージョンを使用できます。 ML フレームワークの最新ビルドやマイナー バージョンを使用することもできます。たとえば、tf-nightly やプレビュー版 TensorFlow 2.0 を使用してトレーニングするためのカスタム コンテナを作成できます。

カスタム コンテナでのハイパーパラメータ調整

AI Platform 上でハイパーパラメータ調整を行うには、目標指標を指定し、その指標を最小化または最大化するかどうかを指定します。たとえば、モデルの精度を最大化する必要がある場合もあれば、モデルの損失を最小化しなければならない場合あります。また、調整するハイパーパラメータと各ハイパーパラメータの目標値のリストも指定します。AI Platform ではトレーニング アプリケーションのトライアルを複数回行い、トライアルが完了するたびにハイパーパラメータを追跡して調整します。ハイパーパラメータ調整ジョブが完了すると、AI Platform は最も効果的な構成のハイパーパラメータの値と、各トライアルのサマリーを報告します。

カスタム コンテナのハイパーパラメータ調整を行うには、次の手順に従ってください。

  • Dockerfile: cloudml-hypertune をインストールします。
  • トレーニング コード:
    • cloudml-hypertune を使用し、そのヘルパー関数 report_hyperparameter_tuning_metric を呼び出して各トライアルの結果を報告します。
    • 各ハイパーパラメータのコマンドライン引数を追加し、パーサー(argparse など)を使用して引数を解析します。
  • ジョブ リクエスト: TrainingInput オブジェクトに HyperparameterSpec を追加します。

カスタム コンテナでのハイパーパラメータ調整を使用したトレーニングの例、または AI Platform でのハイパーパラメータ調整の仕組みの詳細をご覧ください。

カスタム コンテナでの GPU の使用

カスタム コンテナで GPU を使用してトレーニングする場合、いくつかの特殊な要件を満たす必要があります。CPU を使用したトレーニングに使用するものとは異なる Docker イメージをビルドする必要があります。

  • Docker イメージに CUDA ツールキットと cuDNN をプリインストールします。この要件に対処する方法としては、ベースイメージとして nvidia/cuda イメージを使用することをおすすめします。このイメージには、バージョンが一致する CUDA ツールキットと cuDNN がプリインストールされているため、関連する環境変数を正しく設定するのに役立ちます。
  • Docker イメージに、トレーニング アプリケーションと必須の ML フレームワークおよびその他の依存関係をインストールします。

GPU を使用してトレーニングする場合の Dockerfile の例をご覧ください。

次のステップ

このページは役立ちましたか?評価をお願いいたします。

フィードバックを送信...