MIG mit Cloud TPU-Slices mit einem Host erstellen
In diesem Dokument wird beschrieben, wie Sie eine verwaltete Instanzgruppe (Managed Instance Group, MIG) mit mehreren unabhängigen Cloud TPU-Slices mit einem Host erstellen.
Vorbereitung
Führen Sie die folgenden Schritte aus, um sich vorzubereiten:
- Erstellen Sie ein Projekt für Ihre TPUs, wie unter Projekt für TPUs einrichten beschrieben.
- Bestimmen Sie Ihre TPU-Anforderungen, wie unter Ressourcen planen beschrieben.
MIG mit mehreren Cloud TPU-Slices mit einem Host erstellen
So erstellen Sie mehrere unabhängige TPU-VMs in einer MIG:
- Erstellen Sie eine Instanzvorlage.
- Erstellen Sie die MIG.
Instanzvorlage erstellen
Die Konfigurationen der Instanzvorlage variieren je nach verwendeter Verbrauchsoption: On-Demand, Spot, Reservierungen oder Flex-Start. Weitere Informationen zu Verbrauchsoptionen finden Sie unter TPU-Ressourcen planen .
Instanzvorlage für eine On-Demand-TPU-VM erstellen
Mit dem folgenden Befehl wird eine Instanzvorlage erstellt, die die Verbrauchsoption On-Demand verwendet:
gcloud
gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \
--machine-type=MACHINE_TYPE \
--maintenance-policy=TERMINATE \
--image-family=IMAGE_FAMILY \
--image-project=IMAGE_PROJECT
REST
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-d '{
"name": "INSTANCE_TEMPLATE_NAME",
"properties": {
"machineType": "MACHINE_TYPE",
"disks": [
{
"boot": true,
"initializeParams": {
"sourceImage": "projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY"
}
}
],
"scheduling": {
"onHostMaintenance": "TERMINATE"
},
"networkInterfaces": [
{
"network": "global/networks/default"
}
]
}
}' \
"https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/instanceTemplates"
Ersetzen Sie die folgenden Platzhalter:
PROJECT_ID: Die ID Ihres Google Cloud Projekts.INSTANCE_TEMPLATE_NAME: Der Name Ihrer Instanzvorlage.MACHINE_TYPE: Der Maschinentyp für die TPU VM (z. B.ct6e-standard-8t).IMAGE_FAMILY: Die Betriebssystem-Image-Familie für die TPU-VM. Wenn Sie eine bestimmte Betriebssystemversion installieren möchten, verwenden Sie das--imageFlag. Weitere Informationen zu Betriebssystem-Images finden Sie unter Betriebssystem-Images.IMAGE_PROJECT: Das Projekt, das das Betriebssystem-Image enthält. Bei TPU-Images ist diesubuntu-os-accelerator-images.
Instanzvorlage für eine TPU-Spot-VM erstellen
Mit dem folgenden Befehl wird eine Instanzvorlage erstellt, die die Verbrauchsoption Spot verwendet:
gcloud
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
REST
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-d '{
"name": "INSTANCE_TEMPLATE_NAME",
"properties": {
"machineType": "MACHINE_TYPE",
"disks": [
{
"boot": true,
"initializeParams": {
"sourceImage": "projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY"
}
}
],
"scheduling": {
"onHostMaintenance": "TERMINATE",
"provisioningModel": "SPOT",
"instanceTerminationAction": "STOP"
},
"networkInterfaces": [
{
"network": "global/networks/default"
}
]
}
}' \
"https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/instanceTemplates"
Ersetzen Sie die folgenden Platzhalter:
PROJECT_ID: Die ID Ihres Google Cloud Projekts.INSTANCE_TEMPLATE_NAME: Der Name Ihrer Instanzvorlage.MACHINE_TYPE: Der Maschinentyp für die TPU VM (z. B.ct6e-standard-8t).IMAGE_FAMILY: Die Betriebssystem-Image-Familie für die TPU-VM. Wenn Sie eine bestimmte Betriebssystemversion installieren möchten, verwenden Sie das--imageFlag. Weitere Informationen zu Betriebssystem-Images finden Sie unter Betriebssystem-Images.IMAGE_PROJECT: Das Projekt, das das Betriebssystem-Image enthält. Bei TPU-Images ist diesubuntu-os-accelerator-images.
Instanzvorlage für eine reservierungsgebundene TPU-VM erstellen
Mit dem folgenden Befehl wird eine Instanzvorlage erstellt, die die Verbrauchsoption Reservierungsgebunden verwendet:
gcloud
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
REST
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-d '{
"name": "INSTANCE_TEMPLATE_NAME",
"properties": {
"machineType": "MACHINE_TYPE",
"disks": [
{
"boot": true,
"initializeParams": {
"sourceImage": "projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY"
}
}
],
"scheduling": {
"onHostMaintenance": "TERMINATE",
"provisioningModel": "RESERVATION_BOUND",
"instanceTerminationAction": "DELETE"
},
"reservationAffinity": {
"consumeReservationType": "SPECIFIC_RESERVATION",
"key": "compute.googleapis.com/reservation-name",
"values": [
"RESERVATION_NAME"
]
},
"networkInterfaces": [
{
"network": "global/networks/default"
}
]
}
}' \
"https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/instanceTemplates"
Ersetzen Sie die folgenden Platzhalter:
PROJECT_ID: Die ID Ihres Google Cloud Projekts.INSTANCE_TEMPLATE_NAME: Der Name Ihrer Instanzvorlage.MACHINE_TYPE: Der Maschinentyp für die TPU-VM (z. B.ct6e-standard-8t).RESERVATION_NAME: Der Name einer bestimmten Reservierung, die Sie verwenden möchten.IMAGE_FAMILY: Die Betriebssystem-Image-Familie für die TPU-VM. Wenn Sie eine bestimmte Betriebssystemversion installieren möchten, verwenden Sie das--imageFlag. Weitere Informationen zu Betriebssystem-Images finden Sie unter Betriebssystem-Images.IMAGE_PROJECT: Das Projekt, das das Betriebssystem-Image enthält. Bei TPU-Images ist diesubuntu-os-accelerator-images.
Instanzvorlage für eine TPU-VM mit Flex-Start erstellen
Mit dem folgenden Befehl wird eine Instanzvorlage erstellt, die die Verbrauchsoption Flex-Start verwendet:
gcloud
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
REST
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-d '{
"name": "INSTANCE_TEMPLATE_NAME",
"properties": {
"machineType": "MACHINE_TYPE",
"disks": [
{
"boot": true,
"initializeParams": {
"sourceImage": "projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY"
}
}
],
"scheduling": {
"onHostMaintenance": "TERMINATE",
"provisioningModel": "FLEX_START",
"instanceTerminationAction": "DELETE",
"maxRunDuration": {
"seconds": "DURATION"
}
},
"networkInterfaces": [
{
"network": "global/networks/default"
}
]
}
}' \
"https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/instanceTemplates"
Ersetzen Sie die folgenden Platzhalter:
PROJECT_ID: Die ID Ihres Google Cloud Projekts.INSTANCE_TEMPLATE_NAME: Der Name Ihrer Instanzvorlage.MACHINE_TYPE: Der Maschinentyp für die TPU-VM (z. B.ct6e-standard-8t).DURATION: Die maximale Laufzeit für die TPU-VM. Geben Sie dies für REST als String an, der die Anzahl der Sekunden gefolgt von „s“ enthält (z. B.3600sfür 1 Stunde oder604800sfür 7 Tage).IMAGE_FAMILY: Die Betriebssystem-Image-Familie für die TPU-VM. Wenn Sie eine bestimmte Betriebssystemversion installieren möchten, verwenden Sie das--imageFlag. Weitere Informationen zu Betriebssystem-Images finden Sie unter Betriebssystem-Images.IMAGE_PROJECT: Das Projekt, das das Betriebssystem-Image enthält. Bei TPU-Images ist diesubuntu-os-accelerator-images.
Eine MIG erstellen.
Verwenden Sie den folgenden Befehl, um eine zonale MIG mit einem Cloud TPU-Slice mit einem Host zu erstellen:
gcloud
gcloud compute instance-groups managed create MIG_NAME \
--size=MIG_SIZE \
--template=INSTANCE_TEMPLATE_URL \
--zone=ZONE
REST
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-d '{
"name": "MIG_NAME",
"targetSize": MIG_SIZE,
"instanceTemplate": "INSTANCE_TEMPLATE_URL"
}' \
"https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers"
Ersetzen Sie die folgenden Platzhalter:
PROJECT_ID: Die ID Ihres Google Cloud Projekts.MIG_NAME: Der Name Ihrer MIG.MIG_SIZE: Die Größe der MIG.INSTANCE_TEMPLATE_URL: Die URL der Instanzvorlage, die Sie zum Erstellen von Instanzen in der MIG verwenden möchten. Die URL kann entweder die ID oder den Namen der Instanzvorlage enthalten. Geben Sie einen der folgenden Werte an:- Für eine regionale Instanzvorlage:
projects/PROJECT_ID/regions/REGION/instanceTemplates/INSTANCE_TEMPLATE_ID - Für eine globale Instanzvorlage:
INSTANCE_TEMPLATE_ID
- Für eine regionale Instanzvorlage:
ZONE: Die Zone für Ihre MIG.
Verwenden Sie den folgenden Befehl, um eine regionale MIG mit einem Cloud TPU-Slice mit einem Host zu erstellen:
gcloud
gcloud compute instance-groups managed create MIG_NAME \
--size=MIG_SIZE \
--template=INSTANCE_TEMPLATE_URL \
--region=REGION \
--target-distribution-shape=ANY_SINGLE_ZONE \
--instance-redistribution-type=none
REST
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-d '{
"name": "MIG_NAME",
"targetSize": MIG_SIZE,
"instanceTemplate": "INSTANCE_TEMPLATE_URL",
"distributionPolicy": {
"targetShape": "ANY_SINGLE_ZONE"
},
"updatePolicy": {
"instanceRedistributionType": "NONE"
}
}' \
"https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers"
Ersetzen Sie die folgenden Platzhalter:
PROJECT_ID: Die ID Ihres Google Cloud Projekts.MIG_NAME: Der Name Ihrer MIG.MIG_SIZE: Die Anzahl der VMs in der MIG.INSTANCE_TEMPLATE_URL: Die URL der Instanzvorlage, die Sie zum Erstellen von Instanzen in der MIG verwenden möchten. Die URL kann entweder die ID oder den Namen der Instanzvorlage enthalten. Geben Sie einen der folgenden Werte an:- Für eine regionale Instanzvorlage:
projects/PROJECT_ID/regions/REGION/instanceTemplates/INSTANCE_TEMPLATE_ID - Für eine globale Instanzvorlage:
INSTANCE_TEMPLATE_ID
- Für eine regionale Instanzvorlage:
ZONE: Die Zone , in der Ihre MIG bereitgestellt werden soll.REGION: Die Region , in der Ihre MIG bereitgestellt werden soll.
VMs mit benutzerdefinierten Namen in einer MIG erstellen
Sie können VMs in einer MIG erstellen, indem Sie für jede VM einen benutzerdefinierten Namen angeben. Dies ist nützlich für das Debugging und um sicherzustellen, dass Instanzen in einer bestimmten Reihenfolge erstellt werden.
gcloud
Erstellen Sie eine VM mit einem benutzerdefinierten Namen mit dem
create-instance Befehl
und geben Sie das --instance Flag an. Wenn Sie mehrere VMs erstellen möchten, wiederholen Sie den Befehl für jede VM. Alternativ können Sie mit der REST API-Methode mehrere VMs in einer einzelnen Anfrage angeben.
Verwenden Sie für eine zonale MIG den folgenden Befehl:
gcloud compute instance-groups managed create-instance MIG_NAME \ --zone=ZONE \ --instance=INSTANCE_NAMEVerwenden Sie für eine regionale MIG den folgenden Befehl:
gcloud compute instance-groups managed create-instance MIG_NAME \ --region=REGION \ --instance=INSTANCE_NAME
Ersetzen Sie die folgenden Platzhalter:
REST
Verwenden Sie eine der folgenden REST API-Methoden, um VMs mit benutzerdefinierten Namen zu erstellen:
Verwenden Sie für eine zonale 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" }, ... ] }Verwenden Sie für eine regionale 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" }, ... ] }
Ersetzen Sie die folgenden Platzhalter:
Nächste Schritte
- Informationen zu TPU-VMs und MIGs.
- Informationen zum Erstellen einer MIG mit einem Cloud TPU-Slice mit mehreren Hosts.
- Informationen zum Verwalten von TPU-VMs.
- TPUs in GKE
- Informationen zum Ausführen einer ML-Arbeitslast auf TPUs, z. B. Qwen2-72B-Instruct mit vLLM auf TPUs bereitstellen.