Nichtflüchtige Ressource erstellen

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:

  1. Öffnen Sie in der Google Cloud Console die Seite Nichtflüchtige Ressourcen.

    Nichtflüchtige Ressourcen aufrufen

  2. Klicken Sie auf Cluster erstellen.

  3. 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.
  4. Klicken Sie auf Weiter.

  5. Konfigurieren Sie die Compute-Ressourcen für den Cluster so:

    1. Klicken Sie auf Worker-Pool1.
    2. 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.
    3. Klicken Sie auf Fertig.

    4. (Optional) Klicken Sie auf Worker-Pool hinzufügen, um weitere Worker-Pools hinzuzufügen.

  6. Klicken Sie auf Erstellen.

gcloud

Eine nichtflüchtige Ressource kann einen oder mehrere Ressourcenpools enthalten. Wenn Sie mehrere Ressourcenpools in einer nichtflüchtigen Ressource erstellen möchten, geben Sie mehrere --resource-pool-spec-Flags an.

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 der ResourcePool-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 der ResourcePool-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 Feld machineSpec.acceleratorCount in der ResourcePool-API-Nachricht.
  • REPLICA_COUNT: Die Anzahl der Replikate, die beim Erstellen dieses Ressourcenpools erzeugt werden sollen. Dieses Feld entspricht dem Feld replicaCount in der ResourcePool-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 das 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 das 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 der ResourcePool-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) bis 64000. Dieses Feld entspricht dem Feld diskSpec.bootDiskSizeGb in der ResourcePool-API-Nachricht.
  • CONFIG: Pfad zur YAML-Konfigurationsdatei für nichtflüchtige Ressourcen. Diese Datei sollte eine ResourcePool-Liste enthalten. Wenn eine Option sowohl in der Konfigurationsdatei als auch in den Befehlszeilenargumenten 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 [http://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_K80,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 persistentResourcesenthä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 der ResourcePool-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 der ResourcePool-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 Feld machineSpec.acceleratorCount in der ResourcePool-API-Nachricht.
  • REPLICA_COUNT: Die Anzahl der Replikate, die beim Erstellen dieses Ressourcenpools erzeugt werden sollen. Dieses Feld entspricht dem Feld replicaCount in der ResourcePool-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 das 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 das 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 der ResourcePool-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) bis 64000. Dieses Feld entspricht dem Feld diskSpec.bootDiskSizeGb in der ResourcePool-API-Nachricht.

HTTP-Methode und URL:

POST http://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