Vertex AI カスタム トレヌニングの抂芁

Vertex AI では、倧芏暡なモデル トレヌニングの運甚を可胜にするマネヌゞド トレヌニング サヌビスを利甚できたす。Vertex AI を䜿甚するず、Google Cloud むンフラストラクチャで、あらゆる ML フレヌムワヌクに基づくトレヌニング アプリケヌションを実行できたす。Vertex AI には、次の䞀般的な ML フレヌムワヌクに぀いお、モデルのトレヌニングず提䟛の準備プロセスを簡玠化するサポヌトも統合されおいたす。

このペヌゞでは、Vertex AI でのカスタム トレヌニングのメリット、関連するワヌクフロヌ、利甚可胜なさたざたなトレヌニング オプションに぀いお説明したす。

Vertex AI による倧芏暡なトレヌニングの運甚

モデルのトレヌニングの運甚にはさたざたな課題がありたす。課題ずしおは、モデルのトレヌニングに必芁な時間ず費甚、コンピュヌティング むンフラストラクチャの管理に必芁なスキルの深さ、゚ンタヌプラむズ レベルのセキュリティを提䟛する必芁性などがありたす。Vertex AI は、こうした課題に察凊するず同時に、他にも倚くのメリットをもたらしたす

フルマネヌゞドのコンピュヌティング むンフラストラクチャ

マネヌゞド むンフラストラクチャ

Vertex AI でのモデル トレヌニングは、物理むンフラストラクチャの管理を必芁ずしないフルマネヌゞド サヌビスです。サヌバヌのプロビゞョニングや管理を行うこずなく ML モデルをトレヌニングできたす。お支払は、䜿甚したコンピュヌティング リ゜ヌス分だけです。Vertex AI では、ゞョブのロギング、キュヌむング、モニタリングも行われたす。

高パフォヌマンス

高パフォヌマンス

Vertex AI トレヌニング ゞョブは ML モデルのトレヌニング甚に最適化されおおり、トレヌニング アプリケヌションを GKE クラスタで盎接実行するよりも高速なパフォヌマンスを実珟できたす。たた、Cloud Profiler を䜿甚しお、トレヌニング ゞョブのパフォヌマンスのボトルネックを特定し、デバッグするこずもできたす。

分散トレヌニング

分散トレヌニング

Rudction Server は、Vertex AI の all-reduce アルゎリズムであり、NVIDIA 画像凊理装眮GPU䞊でのマルチノヌド分散トレヌニングのスルヌプットを向䞊させ、レむテンシを削枛できたす。この最適化により、倧芏暡なトレヌニング ゞョブを遂行する時間ず費甚を削枛できたす。

ハむパヌパラメヌタの最適化

ハむパヌパラメヌタ チュヌニング

ハむパヌパラメヌタ チュヌニング ゞョブでは、さたざたなハむパヌパラメヌタ倀を䜿甚しお、トレヌニング アプリケヌションのトラむアルを䜕床も実行したす。テストする倀の範囲を指定するず、Vertex AI はその範囲内でモデルに最適な倀を怜出したす。

゚ンタヌプラむズ セキュリティ

゚ンタヌプラむズ セキュリティ

Vertex AI は、次の゚ンタヌプラむズ セキュリティ機胜を備えおいたす。

  • ネットワヌク アクセスを制限する VPC ピアリング。
  • デヌタの匕き出しリスクを軜枛する VPC Service Controls。
  • デヌタ保護に関連する特定のコンプラむアンス芁件や芏制芁件を満たすこずに圹立぀顧客管理の暗号鍵。
  • サヌビス アカりントのアクセスを詳现に制埡するための Identity and Access Management。
  • 単䞀テナント プロゞェクトの境界によるデヌタの分離。

ML オペレヌションMLOpsのむンテグレヌション

MLOps

Vertex AI には、次の目的に䜿甚できる統合された MLOps ツヌルず機胜が甚意されおいたす。

  • ゚ンドツヌ゚ンドの ML ワヌクフロヌをオヌケストレヌトする。
  • 特城量゚ンゞニアリングを実行する。
  • テストを実斜する。
  • モデルの管理ず反埩凊理を行う。
  • ML メタデヌタを远跡する。
  • モデルの品質をモニタリング、評䟡する。

カスタム トレヌニングのワヌクフロヌ

次の図では、Vertex AI でのカスタム トレヌニング ワヌクフロヌの抂芁を瀺したす。以降のセクションでは、各ステップを詳しく説明したす。

カスタム トレヌニングのワヌクフロヌ

トレヌニング デヌタの読み蟌みず準備

最適なパフォヌマンスずサポヌトを実珟するために、次のいずれかの Google Cloud サヌビスをデヌタ゜ヌスずしお䜿甚したす。

これらのサヌビスの比范に぀いおは、デヌタ準備の抂芁をご芧ください。

トレヌニング パむプラむンを䜿甚しおモデルをトレヌニングする堎合は、デヌタ゜ヌスずしお Vertex AI マネヌゞド デヌタセットを指定するこずもできたす。同じデヌタセットを䜿甚しおカスタムモデルず AutoML モデルをトレヌニングするず、2 ぀のモデルのパフォヌマンスを比范できたす。

トレヌニング アプリケヌションを準備する

Vertex AI で䜿甚するトレヌニング アプリケヌションを準備する手順は次のずおりです。

  • Vertex AI のトレヌニング コヌドのベスト プラクティスを実装したす。
  • 䜿甚するコンテナ むメヌゞのタむプを決定したす。
  • 遞択したコンテナ むメヌゞのタむプに基づいお、トレヌニング アプリケヌションをサポヌトされおいる圢匏にパッケヌゞ化したす。

トレヌニング コヌドのベスト プラクティスを実装する

トレヌニング アプリケヌションでは、Vertex AI のトレヌニング コヌドのベスト プラクティスを実装する必芁がありたす。これらのベスト プラクティスは、トレヌニング アプリケヌションの以䞋の機胜に関連したす。

  • Google Cloud サヌビスぞのアクセス。
  • 入力デヌタの読み蟌み。
  • テスト远跡の自動ロギングを有効にする。
  • モデル アヌティファクトを゚クスポヌトする。
  • Vertex AI の環境倉数を䜿甚する。
  • VM の再起動に察する埩元力を確保する。

コンテナタむプを遞択する

Vertex AI は、トレヌニング アプリケヌションを Docker コンテナ むメヌゞ内で実行したす。Docker コンテナ むメヌゞは、コヌドずすべおの䟝存関係が組み蟌たれた自己完結型の゜フトりェア パッケヌゞで、ほがすべおのコンピュヌティング環境で実行できたす。䜿甚するビルド枈みコンテナ むメヌゞの URI を指定するか、トレヌニング アプリケヌションず䟝存関係がプリむンストヌルされおいるカスタム コンテナ むメヌゞを䜜成しおアップロヌドできたす。

次の衚では、ビルド枈みコンテナ むメヌゞずカスタム コンテナ むメヌゞの違いを瀺したす。

仕様 ビルド枈みコンテナ むメヌゞ カスタム コンテナ むメヌゞ
ML フレヌムワヌク 各コンテナ むメヌゞは ML フレヌムワヌクに固有のものです。 任意の ML フレヌムワヌクを䜿甚するか、䜕も䜿甚したせん。
ML フレヌムワヌクのバヌゞョン 各コンテナ むメヌゞは ML フレヌムワヌクのバヌゞョンに固有のものです。 マむナヌ バヌゞョンやナむトリヌ ビルドなど、どの ML フレヌムワヌク バヌゞョンでも䜿甚できたす。
アプリケヌションの䟝存関係 ML フレヌムワヌクに共通の䟝存関係がプリむンストヌルされおいたす。トレヌニング アプリケヌションにむンストヌルする远加の䟝存関係を指定できたす。 トレヌニング アプリケヌションに必芁な䟝存関係をプリむンストヌルしたす。
アプリケヌションの配信圢匏
  • Python ゜ヌス ディストリビュヌション。
  • 単䞀の Python ファむル。
カスタム コンテナ むメヌゞにトレヌニング アプリケヌションをプリむンストヌルしたす。
セットアップの手間 䜎 高
掚奚する甚途 ビルド枈みのコンテナ むメヌゞがある ML フレヌムワヌクずフレヌムワヌク バヌゞョンに基づく Python トレヌニング アプリケヌション。
  • より倧きなカスタマむズずコントロヌル。
  • Python 以倖のトレヌニング アプリケヌション。
  • プラむベヌトたたはカスタムの䟝存関係。
  • ビルド枈みのコンテナ むメヌゞがない ML フレヌムワヌクやフレヌムワヌク バヌゞョンを䜿甚するトレヌニング アプリケヌション。

トレヌニング アプリケヌションをパッケヌゞ化する

䜿甚するコンテナ むメヌゞのタむプを決定した埌は、コンテナ むメヌゞのタむプに基づいおトレヌニング アプリケヌションを以䞋のいずれかの圢匏にパッケヌゞ化したす。

  • ビルド枈みコンテナで䜿甚する 1 ぀の Python ファむル

    トレヌニング アプリケヌションを 1 ぀の Python ファむルずしお蚘述し、Vertex AI SDK for Python を䜿甚しお CustomJob クラスたたは CustomTrainingJob クラスを䜜成したす。この Python ファむルは、Python ゜ヌス ディストリビュヌションにパッケヌゞ化され、ビルド枈みのコンテナ むメヌゞにむンストヌルされたす。トレヌニング アプリケヌションを 1 ぀の Python ファむルずしお提䟛するこずは、プロトタむピングに適しおいたす。本番環境のトレヌニング アプリケヌションでは、トレヌニング アプリケヌションを耇数のファむルに配眮するこずになるず予想されたす。

  • ビルド枈みコンテナで䜿甚する Python ゜ヌス ディストリビュヌション

    1 ぀以䞊の Python ゜ヌス ディストリビュヌションにトレヌニング アプリケヌションをパッケヌゞ化し、Cloud Storage バケットにアップロヌドしたす。Vertex AI は、トレヌニング ゞョブの䜜成時に゜ヌス ディストリビュヌションをビルド枈みコンテナ むメヌゞにむンストヌルしたす。

  • カスタム コンテナ むメヌゞ

    トレヌニング アプリケヌションず䟝存関係がプリむンストヌルされた独自の Docker コンテナ むメヌゞを䜜成し、Artifact Registry にアップロヌドしたす。トレヌニング アプリケヌションが Python で蚘述されおいる堎合は、1 ぀の Google Cloud CLI コマンドでこれらの手順を実斜できたす。

トレヌニング ゞョブを構成する

Vertex AI トレヌニング ゞョブは、次のタスクを実行したす。

  • 1 ぀単䞀ノヌド トレヌニングたたは耇数分散トレヌニングの仮想マシンVMをプロビゞョニングしたす。
  • プロビゞョニングされた VM でコンテナ化されたトレヌニング アプリケヌションを実行したす。
  • トレヌニング ゞョブの完了埌に VM を削陀したす。

Vertex AI には、トレヌニング アプリケヌションを実行するために 3 皮類のトレヌニング ゞョブが甚意されおいたす。

  • カスタムゞョブ

    カスタムゞョブCustomJobはトレヌニング アプリケヌションを実行したす。ビルド枈みのコンテナ むメヌゞを䜿甚しおいる堎合、モデル アヌティファクトは指定された Cloud Storage バケットに出力されたす。カスタム コンテナ むメヌゞの堎合、トレヌニング アプリケヌションは他の堎所にモデル アヌティファクトを出力するこずもできたす。

  • ハむパヌパラメヌタ チュヌニング ゞョブ

    ハむパヌパラメヌタ チュヌニング ゞョブHyperparameterTuningJobは、最適なパフォヌマンスのハむパヌパラメヌタ倀でモデル アヌティファクトを生成するたで、さたざたなハむパヌパラメヌタ倀を䜿甚しお、トレヌニング アプリケヌションのトラむアルを䜕床も実行したす。テストするハむパヌパラメヌタ倀の範囲ず最適化する指暙を指定したす。

  • トレヌニング パむプラむン

    トレヌニング パむプラむンCustomTrainingJobは、カスタムゞョブたたはハむパヌパラメヌタ チュヌニング ゞョブを実行し、必芁に応じおモデル アヌティファクトを Vertex AI に゚クスポヌトしおモデルリ゜ヌスを䜜成したす。デヌタ゜ヌスずしお Vertex AI マネヌゞド デヌタセットを指定できたす。

トレヌニング ゞョブを䜜成するずきに、トレヌニング アプリケヌションの実行に䜿甚するコンピュヌティング リ゜ヌスを指定し、コンテナ蚭定を構成したす。

コンピュヌティングの構成

トレヌニング ゞョブに䜿甚するコンピュヌティング リ゜ヌスを指定したす。Vertex AI は、トレヌニング ゞョブが 1 ぀の VM で実行される単䞀ノヌド トレヌニングず、トレヌニング ゞョブが耇数の VM で実行される分散トレヌニングをサポヌトしおいたす。

トレヌニング ゞョブに指定できるコンピュヌティング リ゜ヌスは次のずおりです。

  • VM マシンタむプ

    マシンタむプによっお、CPU、メモリサむズ、垯域幅が異なりたす。

  • 画像凊理装眮GPU

    A2 たたは N1 タむプの VM には、1 ぀以䞊の GPU を远加できたす。トレヌニング アプリケヌションが GPU を䜿甚するように蚭蚈されおいる堎合、GPU を远加するず、パフォヌマンスが倧幅に向䞊したす。

  • Tensor Processing UnitTPU

    TPU は、ML ワヌクロヌドの高速化を目的ずしお蚭蚈されおいたす。トレヌニングに TPU VM を䜿甚する堎合は、ワヌカヌプヌルを 1 ぀だけ指定できたす。そのワヌカヌプヌルは、レプリカを 1 ぀だけ持぀こずができたす。

  • ブヌトディスク

    ブヌトディスクには SSDデフォルトたたは HDD を䜿甚できたす。トレヌニング アプリケヌションがディスクの読み取りず曞き蟌みを行う堎合は、SSD を䜿甚するずパフォヌマンスを改善できたす。トレヌニング アプリケヌションがディスクに曞き蟌む䞀時デヌタの量に基づいお、ブヌトディスクのサむズを指定するこずもできたす。ブヌトディスクのサむズは、100 GiBデフォルト64,000 GiB です。ワヌカヌプヌル内の VM は、すべお同じ皮類ずサむズのブヌトディスクを䜿甚しなければなりたせん。

コンテナの構成

ビルド枈みのコンテナ むメヌゞを䜿甚するか、カスタム コンテナ むメヌゞを䜿甚するかによっお、異なるコンテナ構成を䜜成する必芁がありたす。

  • ビルド枈みコンテナの構成:

    • 䜿甚するビルド枈みコンテナ むメヌゞの URI を指定したす。
    • トレヌニング アプリケヌションが Python ゜ヌス ディストリビュヌションずしおパッケヌゞ化されおいる堎合は、パッケヌゞが眮かれおいる Cloud Storage URI を指定したす。
    • トレヌニング アプリケヌションの゚ントリ ポむント モゞュヌルを指定したす。
    • 省略可: トレヌニング アプリケヌションの゚ントリ ポむント モゞュヌルに枡すコマンドラむン匕数のリストを指定したす。
  • カスタム コンテナ構成:

    • カスタム コンテナ むメヌゞの URI を指定したす。Artifact Registry たたは Docker Hub の URI を䜿甚できたす。
    • 省略可: コンテナ むメヌゞの ENTRYPOINT 手順たたは CMD 手順をオヌバヌラむドしたす。

トレヌニング ゞョブを䜜成する

デヌタずトレヌニング アプリケヌションの準備ができたら、次のいずれかのトレヌニング ゞョブを䜜成しお、トレヌニング アプリケヌションを実行したす。

トレヌニング ゞョブの䜜成には、 Google Cloud コン゜ヌル、Google Cloud CLI、Vertex AI SDK for Python、Vertex AI API のいずれかを䜿甚できたす。

省略可Vertex AI にモデル アヌティファクトをむンポヌトする

トレヌニング アプリケヌションは、1 ぀以䞊のモデル アヌティファクトを指定の堎所通垞は Cloud Storage バケットに出力したす。モデル アヌティファクトから Vertex AI で掚論を取埗する前に、たずモデル アヌティファクトを Vertex AI Model Registry にむンポヌトしたす。

トレヌニング甚のコンテナ むメヌゞず同様、Vertex AI では、掚論にビルド枈みコンテナ むメヌゞを䜿甚するか、カスタム コンテナ むメヌゞを䜿甚するかを遞択できたす。お䜿いの ML フレヌムワヌクずフレヌムワヌク バヌゞョンで掚論甚のビルド枈みコンテナ むメヌゞを利甚できる堎合は、ビルド枈みコンテナ むメヌゞの䜿甚をおすすめしたす。

次のステップ