コードが実行されるコンテナにネットワーク ファイル システム(NFS)共有をマウントするように、カスタム トレーニング ジョブを構成できます。これにより、ジョブがローカルに存在するかのようにリモート ファイルにアクセスできるようになり、高スループットと低レイテンシが実現します。
このガイドでは、カスタム トレーニング ジョブの実行時に NFS 共有をマウントする方法について説明します。
始める前に
Virtual Private Cloud(VPC)で NFS 共有を作成します。認証なしで共有できるようにする必要があります。
NFS 共有として Filestore インスタンスを使用できます。Filestore を使用している場合は、インスタンスの作成時に接続モードとして [プライベート サービス アクセス] を選択します。例については、Filestore ドキュメントのインスタンスを作成するをご覧ください。
VPC ネットワーク ピアリングの設定の手順に沿って、NFS 共有をホストする VPC と Vertex AI をピアリングします。
カスタム トレーニングの NFS 情報
NFS 共有をマウントするカスタム トレーニング ジョブを作成する場合は、次のものを指定する必要があります。
Vertex AI がアクセスするネットワークの名前。ネットワーク名を指定する方法は、カスタム トレーニング ジョブの種類によって異なります。詳細については、カスタム トレーニングを行うをご覧ください。
WorkerPoolSpec フィールドの NFS 構成。次のフィールドを含めます。
フィールド 説明 nfsMounts.server
NFS サーバーの IP アドレス。これは VPC 内のプライベート アドレスである必要があります。 nfsMounts.path
NFS 共有パス。 /
で始まる絶対パスを指定する必要があります。nfsMounts.mountPoint
ローカル マウント ポイント。有効な UNIX ディレクトリ名を指定してください。たとえば、ローカル マウント ポイントが sourceData
の場合、トレーニング VM インスタンスからのパス/mnt/nfs/sourceData
を指定します。詳細については、コンピューティング リソースを指定する場所をご覧ください。
例: gcloud CLI を使用してカスタムジョブを作成する
ビルド済みコンテナ用の Python トレーニング アプリケーションを作成するの手順に沿って、Vertex AI で実行するトレーニング アプリケーションを構築します。
トレーニング ジョブのネットワークと NFS マウント設定を記述する
config.yaml
という名前のファイルを作成します。形式は次のようにします。network: projects/PROJECT_NUMBER/global/networks/NETWORK_NAME workerPoolSpecs: - machineSpec: machineType: MACHINE_TYPE replicaCount: 1 pythonPackageSpec: executorImageUri: PYTHON_PACKAGE_EXECUTOR_IMAGE_URI or PRE_BUILT_CONTAINER_IMAGE_URI packageUris: - PYTHON_PACKAGE_URIS pythonModule: PYTHON_MODULE nfsMounts: - server: NFS_SERVER_IP path: NFS_SHARE_NAME mountPoint: LOCAL_FOLDER
次のように置き換えます。
PROJECT_NUMBER: Google Cloud プロジェクトのプロジェクト ID。
NETWORK_NAME: プライベート VPC または共有 VPC の名前。
MACHINE_TYPE: 仮想マシンタイプの ID。
PYTHON_PACKAGE_EXECUTOR_IMAGE_URI or PRE_BUILT_CONTAINER_IMAGE_URI: 提供された Python パッケージを実行する Artifact Registry のコンテナ イメージの URI。Vertex AI では、さまざまなユースケースに対応するため、プリインストールされたパッケージを含むさまざまなエグゼキュータ イメージが用意されています。
PYTHON_PACKAGE_URIS: トレーニング プログラムとその依存パッケージを構成する Python パッケージ ファイルを指定する Cloud Storage URI のカンマ区切りのリスト。パッケージの URI は最大 100 個。
PYTHON_MODULE: パッケージのインストール後に実行される Python モジュール名。
NFS_SERVER_IP: NFS サーバーの IP アドレス。
NFS_SHARE_NAME: NFS 共有パス。
/
で始まる絶対パスです。LOCAL_FOLDER: ローカル マウント ポイント(UNIX ディレクトリ名)。
ネットワーク名が正しくフォーマットされ、指定したネットワークに NFS 共有が存在することを確認します。
カスタムジョブを作成し、
config.yaml
ファイルを--config
パラメータに渡します。gcloud ai custom-jobs create \ --region=LOCATION \ --display-name=JOB_NAME \ --config=config.yaml
次のように置き換えます。
LOCATION: ジョブを作成するリージョンを指定します。
JOB_NAME: カスタムジョブの名前。
制限事項
VPC 内部の IP アドレスを使用して NFS 共有をマウントする必要があります。公開 URL の使用は許可されていません。
トレーニング ジョブは、認証なしで NFS 共有をマウントします。ユーザー名とパスワードが必要な場合、NFS 共有は失敗します。
データを保護するには、NFS 共有の権限を設定します。Filestore を使用している場合は、Filestore ドキュメントのアクセス制御をご覧ください。
異なる VPC ネットワークから NFS 共有を同時にマウントする 2 つのトレーニング ジョブを実行することはできません。これは、ネットワーク ピアリングに関する制限によるものです。