カスタム トレーニング用の NFS 共有をマウントする

コードが実行されるコンテナにネットワーク ファイル システム(NFS)共有をマウントするように、カスタム トレーニング ジョブを構成できます。これにより、ジョブがローカルに存在するかのようにリモート ファイルにアクセスできるようになり、高スループットと低レイテンシが実現します。

このガイドでは、カスタム トレーニング ジョブの実行時に NFS 共有をマウントする方法について説明します。

始める前に

  1. Virtual Private Cloud(VPC)で NFS 共有を作成します。認証なしで共有できるようにする必要があります。

    NFS 共有として Filestore インスタンスを使用できます。Filestore を使用している場合は、インスタンスの作成時に接続モードとして [プライベート サービス アクセス] を選択します。例については、Filestore ドキュメントのインスタンスを作成するをご覧ください。

  2. 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 を使用してカスタムジョブを作成する

  1. ビルド済みコンテナ用の Python トレーニング アプリケーションを作成するの手順に沿って、Vertex AI で実行するトレーニング アプリケーションを構築します。

  2. トレーニング ジョブのネットワークと 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 共有が存在することを確認します。

  3. カスタムジョブを作成し、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 つのトレーニング ジョブを実行することはできません。これは、ネットワーク ピアリングに関する制限によるものです。