マルチホスト Cloud TPU スライスを使用して MIG を作成する
このドキュメントでは、マルチホスト TPU スライスを使用してマネージド インスタンス グループ(MIG)を作成する方法について説明します。
前提条件
次の前提条件を満たしていることを確認してください。
- TPU のプロジェクトを設定するの説明に従って、TPU のプロジェクトを作成します。
- リソースを計画するの説明に従って、TPU の要件を決定します。
マルチホスト TPU スライスを使用して MIG を作成する
- インスタンス テンプレートを作成します。
- ワークロード ポリシーを作成します。
- MIG を作成します。
インスタンス テンプレートを作成する
インスタンス テンプレートを作成するコマンドは、使用する消費オプション(オンデマンド、スポット、予約で制限、Flex Start)によって異なります。消費オプションの詳細については、TPU リソースを計画するをご覧ください。
オンデマンド TPU VM のインスタンス テンプレートを作成する
次のコマンドは、オンデマンド消費オプションを使用してインスタンス テンプレートを作成します。
gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \
--machine-type=MACHINE_TYPE \
--maintenance-policy=TERMINATE \
--image-family=IMAGE_FAMILY \
--image-project=IMAGE_PROJECT
各プレースホルダを次のように置き換えます。
INSTANCE_TEMPLATE_NAME: インスタンス テンプレートの名前。MACHINE_TYPE: TPU VM のマシンタイプ (例:ct6e-standard-8t)。IMAGE_FAMILY:TPU VM の OS イメージ ファミリー 。特定の OS バージョンをインストールする場合は、--imageフラグを使用します。OS イメージの詳細については、OS イメージをご覧ください。IMAGE_PROJECT: OS イメージを含むプロジェクト。 TPU イメージの場合、これはubuntu-os-accelerator-imagesです。
TPU Spot VM のインスタンス テンプレートを作成する
次のコマンドは、スポット消費オプションを使用してインスタンス テンプレートを作成します。
gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \
--machine-type=MACHINE_TYPE \
--maintenance-policy=TERMINATE \
--instance-termination-action=STOP \
--provisioning-model=SPOT \
--image-family=IMAGE_FAMILY \
--image-project=IMAGE_PROJECT
各プレースホルダを次のように置き換えます。
INSTANCE_TEMPLATE_NAME: インスタンス テンプレートの名前。MACHINE_TYPE: TPU VM のマシンタイプ (例:ct6e-standard-8t)。IMAGE_FAMILY:TPU VM の OS イメージ ファミリー 。特定の OS バージョンをインストールする場合は、--imageフラグを使用します。OS イメージの詳細については、OS イメージをご覧ください。IMAGE_PROJECT: OS イメージを含むプロジェクト。 TPU イメージの場合、これはubuntu-os-accelerator-imagesです。
TPU 予約で制限された VM のインスタンス テンプレートを作成する
次のコマンドは、予約で制限された消費オプションを使用してインスタンス テンプレートを作成します。
gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \
--machine-type=MACHINE_TYPE \
--maintenance-policy=TERMINATE \
--instance-termination-action=DELETE \
--reservation-affinity=specific \
--provisioning-model=reservation-bound \
--reservation=RESERVATION_NAME \
--image-family=IMAGE_FAMILY \
--image-project=IMAGE_PROJECT
各プレースホルダを次のように置き換えます。
INSTANCE_TEMPLATE_NAME: インスタンス テンプレートの名前。MACHINE_TYPE: TPU VM のマシンタイプ (例:ct6e-standard-8t)。RESERVATION_NAME: 使用する特定の 予約の名前。IMAGE_FAMILY:TPU VM の OS イメージ ファミリー 。特定の OS バージョンをインストールする場合は、--imageフラグを使用します。OS イメージの詳細については、OS イメージをご覧ください。IMAGE_PROJECT: OS イメージを含むプロジェクト。 TPU イメージの場合、これはubuntu-os-accelerator-imagesです。
TPU Flex Start VM のインスタンス テンプレートを作成する
次のコマンドは、Flex Start 消費オプションを使用してインスタンス テンプレートを作成します。
gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \
--machine-type=MACHINE_TYPE \
--maintenance-policy=TERMINATE \
--instance-termination-action=DELETE \
--provisioning-model=FLEX_START \
--max-run-duration=DURATION \
--image-family=IMAGE_FAMILY \
--image-project=IMAGE_PROJECT
各プレースホルダを次のように置き換えます。
INSTANCE_TEMPLATE_NAME: インスタンス テンプレートの名前。MACHINE_TYPE: TPU VM のマシンタイプ (例:ct6e-standard-8t)。DURATION: TPU VM を実行できる最大期間。IMAGE_FAMILY:TPU VM の OS イメージ ファミリー 。特定の OS バージョンをインストールする場合は、--imageフラグを使用します。OS イメージの詳細については、OS イメージをご覧ください。IMAGE_PROJECT: OS イメージを含むプロジェクト。 TPU イメージの場合、これはubuntu-os-accelerator-imagesです。
ワークロード ポリシーを作成する
accelerator-topology パラメータ(
例: 4x4、8x8、4x4x4)を使用してワークロード ポリシーを作成する必要があります。アクセラレータ トポロジは、インスタンスを単一の相互接続されたスライスとして扱うように MIG
を構成します。
次のコマンドは、ワークロード ポリシーを作成します。
gcloud compute resource-policies create workload-policy WORKLOAD_POLICY_NAME \
--type=high-throughput \
--accelerator-topology=TOPOLOGY \
--region=REGION
各プレースホルダを次のように置き換えます。
WORKLOAD_POLICY_NAME: ワークロード ポリシーの名前。TOPOLOGY: TPU VM のトポロジ(例:4x4x8)。TPU の各バージョンのトポロジの詳細については、 システム アーキテクチャをご覧ください。REGION: ワークロード ポリシーのリージョン。
MIG を作成する
次のように
gcloud compute instance-groups managed create コマンド
を使用して、ゾーン MIG またはリージョン MIG を作成します。
マルチホスト TPU スライスを含むゾーン MIG を作成するには、次の コマンドを使用します。
gcloud compute instance-groups managed create MIG_NAME \ --size=MIG_SIZE \ --target-size-policy-mode=bulk \ --template=INSTANCE_TEMPLATE_URL \ --zone=ZONE \ --default-action-on-vm-failure=do-nothing \ --workload-policy=WORKLOAD_POLICY_URLマルチホスト TPU スライスを含むリージョン MIG を作成するには、次のコマンドを使用します。
gcloud compute instance-groups managed create MIG_NAME \ --size=MIG_SIZE \ --target-size-policy-mode=bulk \ --template=INSTANCE_TEMPLATE_URL \ --region=REGION \ --default-action-on-vm-failure=do-nothing \ --workload-policy=WORKLOAD_POLICY_URL \ --target-distribution-shape=any-single-zone \ --instance-redistribution-type=none
各プレースホルダを次のように置き換えます。
MIG_NAME: MIG の名前。MIG_SIZE: MIG 内の VM の数。INSTANCE_TEMPLATE_URL: MIG でインスタンスの作成に使用するインスタンス テンプレートの URL。この URL には、インスタンス テンプレートの ID または名前を含めることができます。次のいずれかの値を指定します。- リージョン インスタンス テンプレートの場合:
projects/PROJECT_ID/regions/REGION/instanceTemplates/INSTANCE_TEMPLATE_ID - グローバル インスタンス テンプレートの場合:
INSTANCE_TEMPLATE_ID
- リージョン インスタンス テンプレートの場合:
ZONE: MIG のゾーン。REGION: MIG のリージョン。WORKLOAD_POLICY_URL: MIG でインスタンスの作成に使用するワークロード ポリシーの URL。例:projects/PROJECT_ID/regions/WORKLOAD_POLICY_REGION/resourcePolicies/WORKLOAD_POLICY_NAME。
MIG でカスタム名を使用して VM を作成する
各 VM にカスタム名を指定して、MIG に VM を作成できます。これは、デバッグや、特定の順序でインスタンスが作成されるようにする場合に便利です。
マルチホスト TPU スライスを含む MIG は、ターゲット サイズ ポリシーのバルクモードを使用します。このような MIG でカスタム名を使用して VM を作成する場合は、次のようになります。
まず、MIG に VM がないことを 確認 する必要があります。MIG に VM がある場合は、MIG のサイズをターゲット サイズ
0に変更するか、ターゲット サイズ0の別の MIG を作成する必要があります。カスタム名を使用して VM を作成するには、REST API のみを使用できます。
次のいずれかの REST API メソッドを使用して、カスタム名で VM を作成します。
ゾーン MIG の場合は、
instanceGroupManagers.createInstancesを使用します。POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/MIG_NAME/createInstances { "instances": [ { "name": "INSTANCE_NAME_1" }, { "name": "INSTANCE_NAME_2" }, ... ] }リージョン MIG の場合は、
regionInstanceGroupManagers.createInstancesを使用します。POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/MIG_NAME/createInstances { "instances": [ { "name": "INSTANCE_NAME_1" }, { "name": "INSTANCE_NAME_2" }, ... ] }
各プレースホルダを次のように置き換えます。
PROJECT_ID: MIG が存在するプロジェクトの ID。ZONE: MIG のゾーン。REGION: MIG のリージョン。INSTANCE_NAME_1,2,..: 指定した MIG に追加する VM の名前 。
次のステップ
- TPU VM と MIG について学習する。
- 単一ホスト Cloud TPU スライスを使用して MIG を作成する 方法を学習する。
- TPU VM を管理する方法を学習する。
- GKE の TPU について学習する。
- TPU で ML ワークロードを実行する方法を学習する(例: TPU で vLLM を使用して Qwen2-72B-Instruct をサービングする)。