Vertex AI Pipelines を使用して Google Cloud マシンリソースをリクエストする

Vertex AI カスタム トレーニングで提供される Google Cloud 固有のマシンリソースを使用して、Vertex AI Pipelines で Python コンポーネントを実行できます。

Google Cloud パイプライン コンポーネントcreate_custom_training_job_from_component メソッドを使用して、Python コンポーネントを Vertex AI カスタム トレーニング ジョブに変換できます。カスタムジョブの作成方法はこちらで確認してください

Vertex AI Pipelines を使用して 1 つのコンポーネントからカスタム トレーニング ジョブを作成する

次のサンプルでは、create_custom_training_job_from_component メソッドを使用して、ユーザー定義の Google Cloud マシンリソースで Python コンポーネントをカスタム トレーニング ジョブに変換し、コンパイルしたパイプラインを Vertex AI Pipelines で実行する方法を示します。


import kfp
from kfp import dsl
from google_cloud_pipeline_components.v1.custom_job import create_custom_training_job_from_component

# Create a Python component
@dsl.component
def my_python_component():
  import time
  time.sleep(1)

# Convert the above component into a custom training job
custom_training_job = create_custom_training_job_from_component(
    my_python_component,
    display_name = 'DISPLAY_NAME',
    machine_type = 'MACHINE_TYPE',
    accelerator_type='ACCELERATOR_TYPE',
    accelerator_count='ACCELERATOR_COUNT',
    boot_disk_type: 'BOOT_DISK_TYPE',
    boot_disk_size_gb: 'BOOT_DISK_SIZE',
    network: 'NETWORK',
    reserved_ip_ranges: 'RESERVED_IP_RANGES',
    nfs_mounts: 'NFS_MOUNTS'
)

# Define a pipeline that runs the custom training job
@dsl.pipeline(
  name="resource-spec-request",
  description="A simple pipeline that requests a Google Cloud machine resource",
  pipeline_root='PIPELINE_ROOT',
)
def pipeline():
  training_job_task = custom_training_job(
      project='PROJECT_ID',
      location='LOCATION',
  ).set_display_name('training-job-task')

次のように置き換えます。

  • DISPLAY_NAME: カスタムジョブの名前。名前を指定しない場合、デフォルトでコンポーネント名が使用されます。

  • MACHINE_TYPE: カスタムジョブを実行するためのマシンタイプ(例: e2-standard-4)。マシンタイプの詳細については、マシンタイプをご覧ください。TPU を accelerator_type として指定した場合は、これを cloud-tpu に設定します。詳細については、machine_type パラメータ リファレンスをご覧ください。

  • ACCELERATOR_TYPE: マシンに接続されているアクセラレータのタイプ。使用可能な GPU とその構成方法の詳細については、GPU をご覧ください。使用可能な TPU タイプとその構成方法については、TPU をご覧ください。詳細については、accelerator_type パラメータ リファレンスをご覧ください。

  • ACCELERATOR_COUNT: カスタムジョブを実行するマシンに接続されているアクセラレータの数。アクセラレータ タイプを指定すると、アクセラレータ数はデフォルトで 1 に設定されます。

  • BOOT_DISK_TYPE: ブートディスクのタイプ。詳細については、boot_disk_type パラメータ リファレンスをご覧ください。

  • BOOT_DISK_SIZE: ブートディスクのサイズ(GB)。詳細については、boot_disk_size_gb パラメータ リファレンスをご覧ください。

  • NETWORK: 限定公開サービス アクセスが構成されている Compute Engine ネットワークにカスタムジョブをピアリングする場合は、ネットワークの完全修飾名を指定します。詳細については、network パラメータ リファレンスをご覧ください。

  • RESERVED_IP_RANGES: カスタムジョブのデプロイに使用される VPC ネットワークの予約済み IP 範囲の名前のリスト。詳細については、reserved_ip_ranges パラメータ リファレンスをご覧ください。

  • NFS_MOUNTS: JSON 辞書形式の NFS マウント リソースのリスト。詳細については、nfs_mounts パラメータ リファレンスをご覧ください。

  • PIPELINE_ROOT: パイプライン サービス アカウントがアクセスできる Cloud Storage URI を指定します。パイプライン実行のアーティファクトはパイプライン ルート内に保存されます。

  • PROJECT_ID: このパイプラインが実行される Google Cloud プロジェクト。

  • LOCATION: このパイプラインが実行されるロケーションまたはリージョン。

API リファレンス

create_custom_training_job_from_component メソッドでサポートされている引数の一覧については、Google Cloud Pipeline コンポーネント SDK リファレンスをご覧ください。