Wenn Sie eine persistente Ressource erstellen, sucht der Trainingsdienst zuerst nach Ressourcen aus dem Compute Engine-Ressourcenpool und stellt für Sie dann einen Cluster mit langer Ausführungszeit bereit. Auf dieser Seite erfahren Sie, wie Sie mit der Google Cloud Console, der Google Cloud CLI, dem Vertex AI SDK für Python und der REST API eine nichtflüchtige Ressource zum Ausführen Ihrer benutzerdefinierten Trainingsjobs erstellen.
Erforderliche Rollen
Bitten Sie Ihren Administrator, Ihnen die Rolle Vertex AI Administrator (roles/aiplatform.admin
) für Ihr Projekt zu gewähren, um die Berechtigung zu erhalten, die Sie zum Erstellen einer nichtflüchtigen Ressource benötigen.
Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff verwalten.
Diese vordefinierte Rolle enthält die Berechtigung aiplatform.persistentResources.create
, die zum Erstellen einer nichtflüchtigen Ressource erforderlich ist.
Sie können diese Berechtigung auch mit benutzerdefinierten Rollen oder anderen vordefinierten Rollen erhalten.
Nichtflüchtige Ressource erstellen
Wählen Sie einen der folgenden Tabs aus, um zu erfahren, wie Sie eine nichtflüchtige Ressource erstellen.
Console
So erstellen Sie eine nichtflüchtige Ressource mit der Google Cloud Console:
Öffnen Sie in der Google Cloud Console die Seite Nichtflüchtige Ressourcen.
Klicken Sie auf Cluster erstellen.
Konfigurieren Sie den Cluster so:
- Name: Geben Sie einen Namen für den Cluster ein.
- Beschreibung: (Optional) Geben Sie eine Beschreibung des Clusters ein.
- Region: Wählen Sie die Region aus, in der Sie den Cluster erstellen möchten.
Klicken Sie auf Weiter.
Konfigurieren Sie die Compute-Ressourcen für den Cluster so:
- Klicken Sie auf Worker-Pool1.
Wählen Sie den Tab der Maschinenfamilie aus, die Sie verwenden möchten, und konfigurieren Sie den Worker-Pool so:
Für allgemeine Zwecke
VMs für allgemeine Zwecke bieten bei einer Vielzahl von Arbeitslasten das beste Preis-Leistungs-Verhältnis.
- Reihe: Wählen Sie eine Maschinenserie.
- Maschinentyp: Wählen Sie einen Maschinentyp aus.
- Laufwerktyp: Wählen Sie Standardlaufwerk oder SSD-Laufwerk aus.
- Laufwerkgröße: Geben Sie die Größe des gewünschten Laufwerks ein.
- Mindestanzahl an Replikaten: Geben Sie die Mindestanzahl an Replikaten ein, die im Worker-Pool vorhanden sein müssen.
- Maximale Replikatanzahl: (Optional) Geben Sie die Höchstzahl der im Worker-Pool zulässigen Replikate ein. Wenn angegeben, skaliert der Worker-Pool die Anzahl der Replikate automatisch bis zur konfigurierten maximalen Replikatanzahl nach Bedarf.
Computing-optimiert
Computing-optimierte VMs bieten die höchste Leistung pro Kern und sind für rechenintensive Arbeitslasten optimiert.
- Reihe: Wählen Sie eine Maschinenserie.
- Maschinentyp: Wählen Sie einen Maschinentyp aus.
- Laufwerktyp: Wählen Sie Standardlaufwerk oder SSD-Laufwerk aus.
- Laufwerkgröße: Geben Sie die Größe des gewünschten Laufwerks ein.
- Mindestanzahl an Replikaten: Geben Sie die Mindestanzahl an Replikaten ein, die im Worker-Pool vorhanden sein müssen.
- Maximale Replikatanzahl: (Optional) Geben Sie die Höchstzahl der im Worker-Pool zulässigen Replikate ein. Wenn angegeben, skaliert der Worker-Pool die Anzahl der Replikate automatisch bis zur konfigurierten maximalen Replikatanzahl nach Bedarf.
Speicheroptimiert
Speicheroptimierte VMs – ideal für arbeitsspeicherintensive Arbeitslasten, mit mehr Arbeitsspeicher pro Kern als bei anderen Maschinenfamilien und bis zu 12 TB Arbeitsspeicher.
- Reihe: Wählen Sie eine Maschinenserie.
- Maschinentyp: Wählen Sie einen Maschinentyp aus.
- Laufwerktyp: Wählen Sie Standardlaufwerk oder SSD-Laufwerk aus.
- Laufwerkgröße: Geben Sie die Größe des gewünschten Laufwerks ein.
- Mindestanzahl an Replikaten: Geben Sie die Mindestanzahl an Replikaten ein, die im Worker-Pool vorhanden sein müssen.
- Maximale Replikatanzahl: (Optional) Geben Sie die Höchstzahl der im Worker-Pool zulässigen Replikate ein. Wenn angegeben, skaliert der Worker-Pool die Anzahl der Replikate automatisch bis zur konfigurierten maximalen Replikatanzahl nach Bedarf.
GPUs
Diese beschleunigungsoptimierten VMs sind ideal für extrem parallelisierte CUDA-Computing-Arbeitslasten (Compute Unified Device Architecture), z. B. maschinelles Lernen (ML) und Hochleistungs-Computing (HPC). Diese Familie ist die beste Option für Arbeitslasten, die GPUs erfordern.
- GPU-Typ: Wählen Sie den GPU-Typ aus, den Sie verwenden möchten.
- Anzahl der GPUs: Geben Sie die Anzahl der GPUs ein, die Sie verwenden möchten.
- Reihe: Wählen Sie eine Maschinenserie.
- Maschinentyp: Wählen Sie einen Maschinentyp aus.
- Laufwerktyp: Wählen Sie Standardlaufwerk oder SSD-Laufwerk aus.
- Laufwerkgröße: Geben Sie die Größe des gewünschten Laufwerks ein.
- Mindestanzahl an Replikaten: Geben Sie die Mindestanzahl an Replikaten ein, die im Worker-Pool vorhanden sein müssen.
- Maximale Replikatanzahl: (Optional) Geben Sie die Höchstzahl der im Worker-Pool zulässigen Replikate ein. Wenn angegeben, skaliert der Worker-Pool die Anzahl der Replikate automatisch bis zur konfigurierten maximalen Replikatanzahl nach Bedarf.
Klicken Sie auf Fertig.
(Optional) Klicken Sie auf Worker-Pool hinzufügen, um weitere Worker-Pools hinzuzufügen.
Klicken Sie auf Erstellen.
gcloud
Eine nichtflüchtige Ressource kann einen oder mehrere Ressourcenpools enthalten. Geben Sie mehrere --resource-pool-spec
-Flags an, um mehrere Ressourcenpools in einer nichtflüchtigen Ressource zu erstellen.
Für jeden Ressourcenpool kann Autoscaling entweder aktiviert oder deaktiviert sein. Geben Sie min_replica_count
und max_replica_count
an, um das Autoscaling zu aktivieren.
Sie können alle Ressourcenpoolkonfigurationen als Teil der Befehlszeile angeben oder das --config
-Flag verwenden, um den Pfad zu einer YAML-Datei anzugeben, die die Konfigurationen enthält.
Ersetzen Sie folgende Werte, bevor sie einen der Befehlsdaten verwenden:
- PROJECT_ID: Die Projekt-ID des Google Cloud-Projekts, in dem Sie die nichtflüchtige Ressource erstellen möchten.
- LOCATION: Die Region, in der Sie die nichtflüchtige Ressource erstellen möchten. Eine Liste der unterstützten Regionen finden Sie unter Featureverfügbarkeit.
- PERSISTENT_RESOURCE_ID: die ID der nichtflüchtigen Ressource.
- DISPLAY_NAME: (Optional) Der Anzeigename der nichtflüchtigen Ressource.
- MACHINE_TYPE: Der zu verwendende VM-Typ. Eine Liste der unterstützten VMs finden Sie unter Maschinentypen.
Dieses Feld entspricht dem Feld
machineSpec.machineType
in derResourcePool
-API-Nachricht. - ACCELERATOR_TYPE: (Optional) Der GPU-Typ, der an die einzelnen VMs im Ressourcenpool angehängt werden soll. Eine Liste der unterstützten GPUs finden Sie unter GPUs. Dieses Feld entspricht dem Feld
machineSpec.acceleratorType
in derResourcePool
-API-Nachricht. - ACCELERATOR_COUNT: (Optional) Die Anzahl der GPUs, die an jede VM im Ressourcenpool angehängt werden soll. Der Standardwert ist
1
. Dieses Feld entspricht dem FeldmachineSpec.acceleratorCount
in derResourcePool
-API-Nachricht. - REPLICA_COUNT: Die Anzahl der Replikate, die beim Erstellen dieses Ressourcenpools erzeugt werden sollen. Dieses Feld entspricht dem Feld
replicaCount
in derResourcePool
-API-Nachricht. Dieses Feld ist erforderlich, wenn Sie MIN_REPLICA_COUNT und MAX_REPLICA_COUNT nicht angeben. - MIN_REPLICA_COUNT: (Optional) Die Mindestanzahl an Replikaten, auf die Autoscaling für diesen Ressourcenpool herunterskalieren kann. Sowohl MIN_REPLICA_COUNT als auch MAX_REPLICA_COUNT sind erforderlich, um Autoscaling für diesen Ressourcenpool zu aktivieren.
- MAX_REPLICA_COUNT: (Optional) Die Höchstzahl der Replikate, auf die Autoscaling für diesen Ressourcenpool skalieren kann. Sowohl MIN_REPLICA_COUNT als auch MAX_REPLICA_COUNT sind erforderlich, um Autoscaling für diesen Ressourcenpool zu aktivieren.
- BOOT_DISK_TYPE: (Optional) Der Laufwerkstyp, der für die Bootlaufwerke der einzelnen VMs im Ressourcenpool verwendet werden soll. Dieses Feld entspricht dem Feld
diskSpec.bootDiskType
in derResourcePool
-API-Nachricht. Unter anderem sind folgende Werte zulässig:pd-standard
(Standardeinstellung)pd-ssd
- BOOT_DISK_SIZE_GB: (Optional) Die Laufwerkgröße in GiB für die Bootlaufwerke der einzelnen VMs im Ressourcenpool. Die zulässigen Werte sind
100
(Standard) bis64000
. Dieses Feld entspricht dem FelddiskSpec.bootDiskSizeGb
in derResourcePool
-API-Nachricht. - CONFIG: Pfad zur YAML-Konfigurationsdatei für nichtflüchtige Ressourcen. Diese Datei sollte eine ResourcePool-Liste enthalten. Wenn sowohl in der Konfigurationsdatei als auch in den Befehlszeilenargumenten eine Option angegeben ist, überschreiben die Befehlszeilenargumente die Konfigurationsdatei. Bachten Sie: Schlüssel mit Unterstrichen sind ungültig.
Beispiel für eine YAML-Konfigurationsdatei:
resourcePoolSpecs: machineSpec: machineType: n1-standard-4 replicaCount: 1
Führen Sie folgenden Befehl aus:
Linux, macOS oder Cloud Shell
gcloud ai persistent-resources create \ --persistent-resource-id=PERSISTENT_RESOURCE_ID \ --display-name=DISPLAY_NAME \ --project=PROJECT_ID \ --region=LOCATION \ --resource-pool-spec="replica-count=REPLICA_COUNT,min-replica-count=MIN_REPLICA_COUNT,max-replica-count=MAX_REPLICA_COUNT,machine-type=MACHINE_TYPE,accelerator-type=ACCELERATOR_TYPE,accelerator-count=ACCELERATOR_COUNT,disk-type=BOOT_DISK_TYPE,disk-size=BOOT_DISK_SIZE_GB"
Windows (PowerShell)
gcloud ai persistent-resources create ` --persistent-resource-id=PERSISTENT_RESOURCE_ID ` --display-name=DISPLAY_NAME ` --project=PROJECT_ID ` --region=LOCATION ` --resource-pool-spec="replica-count=REPLICA_COUNT,min-replica-count=MIN_REPLICA_COUNT,max-replica-count=MAX_REPLICA_COUNT,machine-type=MACHINE_TYPE,accelerator-type=ACCELERATOR_TYPE,accelerator-count=ACCELERATOR_COUNT,disk-type=BOOT_DISK_TYPE,disk-size=BOOT_DISK_SIZE_GB"
Windows (cmd.exe)
gcloud ai persistent-resources create ^ --persistent-resource-id=PERSISTENT_RESOURCE_ID ^ --display-name=DISPLAY_NAME ^ --project=PROJECT_ID ^ --region=LOCATION ^ --resource-pool-spec="replica-count=REPLICA_COUNT,min-replica-count=MIN_REPLICA_COUNT,max-replica-count=MAX_REPLICA_COUNT,machine-type=MACHINE_TYPE,accelerator-type=ACCELERATOR_TYPE,accelerator-count=ACCELERATOR_COUNT,disk-type=BOOT_DISK_TYPE,disk-size=BOOT_DISK_SIZE_GB"
Sie sollten eine Antwort ähnlich der folgenden erhalten:
Using endpoint [https://us-central1-aiplatform.googleapis.com/] Operation to create PersistentResource [projects/123456789012/locations/us-central1/persistentResources/mypersistentresource/operations/1234567890123456789] is submitted successfully. You may view the status of your PersistentResource create operation with the command $ gcloud ai operations describe projects/sample-project/locations/us-central1/operations/1234567890123456789
Beispiel eines gcloud
-Befehls:
gcloud ai persistent-resources create \ --persistent-resource-id=my-persistent-resource \ --region=us-central1 \ --resource-pool-spec="min-replica-count=4,max-replica-count=12,machine-type=n1-highmem-2,accelerator-type=NVIDIA_TESLA_T4,accelerator-count=1,disk-type=pd-standard,disk-size=200" \ --resource-pool-spec="replica-count=4,machine-type=n1-standard-4"
Erweiterte gcloud
-Konfigurationen
Wenn Sie Konfigurationsoptionen angeben möchten, die in den vorhergehenden Beispielen nicht verfügbar sind, können Sie mit dem Flag --config
den Pfad zu einer config.yaml
-Datei in Ihrer lokalen Umgebung angeben, die die Felder von persistentResources
enthält. Beispiele:
gcloud ai persistent-resources create \ --persistent-resource-id=PERSISTENT_RESOURCE_ID \ --project=PROJECT_ID \ --region=LOCATION \ --config=CONFIG
Python
Bevor Sie dieses Beispiel anwenden, folgen Sie den Python-Einrichtungsschritten in der Vertex AI-Kurzanleitung zur Verwendung von Clientbibliotheken. Weitere Informationen finden Sie in der Referenzdokumentation zur Vertex AI Python API.
Richten Sie zur Authentifizierung bei Vertex AI Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
# Create the persistent resource. This method returns the created resource. # Setting `sync` to `FALSE` makes the method is non-blocking and the resource # object returned syncs when the method completes. my_example_resource = persistent_resource.PersistentResource.create( persistent_resource_id=EXAMPLE_PERSISTENT_RESOURCE_ID, display_name=EXAMPLE_PERSISTENT_RESOURCE_NAME, resource_pools=[ EXAMPLE_RESOURCE_POOL # EXAMPLE_AUTOSCALED_RESOURCE_POOL ], labels=EXAMPLE_LABELS, sync=SYNC, ) if not SYNC: my_example_resource.wait()
REST
Eine nichtflüchtige Ressource kann einen oder mehrere Ressourcenpools (machine_spec
) enthalten. Für die einzelnen Ressourcenpools kann das Autoscaling aktiviert oder deaktiviert sein.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- PROJECT_ID: Die Projekt-ID des Google Cloud-Projekts, in dem Sie die nichtflüchtige Ressource erstellen möchten.
- LOCATION: Die Region, in der Sie die nichtflüchtige Ressource erstellen möchten. Eine Liste der unterstützten Regionen finden Sie unter Featureverfügbarkeit.
- PERSISTENT_RESOURCE_ID: die ID der nichtflüchtigen Ressource.
- DISPLAY_NAME: (Optional) Der Anzeigename der nichtflüchtigen Ressource.
- MACHINE_TYPE: Der zu verwendende VM-Typ. Eine Liste der unterstützten VMs finden Sie unter Maschinentypen.
Dieses Feld entspricht dem Feld
machineSpec.machineType
in derResourcePool
-API-Nachricht. - ACCELERATOR_TYPE: (Optional) Der GPU-Typ, der an die einzelnen VMs im Ressourcenpool angehängt werden soll. Eine Liste der unterstützten GPUs finden Sie unter GPUs. Dieses Feld entspricht dem Feld
machineSpec.acceleratorType
in derResourcePool
-API-Nachricht. - ACCELERATOR_COUNT: (Optional) Die Anzahl der GPUs, die an jede VM im Ressourcenpool angehängt werden soll. Der Standardwert ist
1
. Dieses Feld entspricht dem FeldmachineSpec.acceleratorCount
in derResourcePool
-API-Nachricht. - REPLICA_COUNT: Die Anzahl der Replikate, die beim Erstellen dieses Ressourcenpools erzeugt werden sollen. Dieses Feld entspricht dem Feld
replicaCount
in derResourcePool
-API-Nachricht. Dieses Feld ist erforderlich, wenn Sie MIN_REPLICA_COUNT und MAX_REPLICA_COUNT nicht angeben. - MIN_REPLICA_COUNT: (Optional) Die Mindestanzahl an Replikaten, auf die Autoscaling für diesen Ressourcenpool herunterskalieren kann. Sowohl MIN_REPLICA_COUNT als auch MAX_REPLICA_COUNT sind erforderlich, um Autoscaling für diesen Ressourcenpool zu aktivieren.
- MAX_REPLICA_COUNT: (Optional) Die Höchstzahl der Replikate, auf die Autoscaling für diesen Ressourcenpool skalieren kann. Sowohl MIN_REPLICA_COUNT als auch MAX_REPLICA_COUNT sind erforderlich, um Autoscaling für diesen Ressourcenpool zu aktivieren.
- BOOT_DISK_TYPE: (Optional) Der Laufwerkstyp, der für die Bootlaufwerke der einzelnen VMs im Ressourcenpool verwendet werden soll. Dieses Feld entspricht dem Feld
diskSpec.bootDiskType
in derResourcePool
-API-Nachricht. Unter anderem sind folgende Werte zulässig:pd-standard
(Standardeinstellung)pd-ssd
- BOOT_DISK_SIZE_GB: (Optional) Die Laufwerkgröße in GiB für die Bootlaufwerke der einzelnen VMs im Ressourcenpool. Die zulässigen Werte sind
100
(Standard) bis64000
. Dieses Feld entspricht dem FelddiskSpec.bootDiskSizeGb
in derResourcePool
-API-Nachricht.
HTTP-Methode und URL:
POST https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/persistentResources?persistent_resource_id=PERSISTENT_RESOURCE_ID
JSON-Text anfordern:
{ "display_name": "DISPLAY_NAME", "resource_pools": [ { "machine_spec": { "machine_type": "MACHINE_TYPE", "accelerator_type": "ACCELERATOR_TYPE", "accelerator_count": ACCELERATOR_COUNT }, "replica_count": REPLICA_COUNT, "autoscaling_spec": { "min_replica_count": MIN_REPLICA_COUNT, "max_replica_count": MAX_REPLICA_COUNT }, "disk_spec": { "boot_disk_type": "BOOT_DISK_TYPE", "boot_disk_size_gb": BOOT_DISK_SIZE_GB } } ] }
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
Sie sollten in etwa folgende JSON-Antwort erhalten:
{ "name": "projects/123456789012/locations/us-central1/persistentResources/mypersistentresource/operations/1234567890123456789", "metadata": { "@type": "type.googleapis.com/google.cloud.aiplatform.v1.CreatePersistentResourceOperationMetadata", "genericMetadata": { "createTime": "2023-02-08T21:17:15.009668Z", "updateTime": "2023-02-08T21:17:15.009668Z" } } }
Ressourcenmangel
Es kann bei knappen Ressourcen wie A100-GPUs zu Engpässen kommen, was zu einem Fehler bei der dauerhaften Ressourcenerstellung führen kann, wenn in der von Ihnen angegebenen Region keine Ressource verfügbar ist. In diesem Fall können Sie versuchen, die Anzahl der Replikate zu reduzieren, zu einem anderen Beschleunigertyp wechseln, es außerhalb der Spitzenzeiten noch einmal versuchen oder eine andere Region ausprobieren.
Nächste Schritte
- Trainingsjobs für eine nichtflüchtige Ressource ausführen.
- Mehr über nichtflüchtige Ressourcen erfahren.
- Informationen zu einer nichtflüchtigen Ressource abrufen.
- Nichtflüchtige Ressource neu starten.
- Nichtflüchtige Ressource löschen.