Benutzerdefinierte Trainingsjobs für eine nichtflüchtige Ressource ausführen.

Auf dieser Seite erfahren Sie, wie Sie mithilfe der Google Cloud CLI, des Vertex AI SDK für Python und der REST API einen benutzerdefinierten Trainingsjob für eine nichtflüchtige Ressource ausführen.

Wenn Sie einen benutzerdefinierten Trainingsjob erstellen, müssen Sie normalerweise Rechenressourcen angeben, auf denen der Job erstellt und ausgeführt wird. Nachdem Sie eine nichtflüchtige Ressource erstellt haben, können Sie den benutzerdefinierten Trainingsjob stattdessen so konfigurieren, dass er in einem oder mehreren Ressourcenpools dieser nichtflüchtigen Ressource ausgeführt wird. Durch das Ausführen eines benutzerdefinierten Trainingsjobs auf einer nichtflüchtigen Ressource wird die Startzeit für den Job, die sonst für die Erstellung von Rechenressourcen erforderlich ist, deutlich reduziert.

Erforderliche Rollen

Bitten Sie Ihren Administrator, Ihnen die IAM-Rolle Vertex AI-Nutzer (roles/aiplatform.user) für Ihr Projekt zuzuweisen, um die Berechtigung zu erhalten, benutzerdefinierte Trainingsjobs für eine nichtflüchtige Ressource auszuführen. Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.

Diese vordefinierte Rolle enthält die Berechtigung aiplatform.customJobs.create, die zum Ausführen benutzerdefinierter Trainingsjobs auf einer nichtflüchtigen Ressource erforderlich ist.

Sie können diese Berechtigung auch mit benutzerdefinierten Rollen oder anderen vordefinierten Rollen erhalten.

Trainingsjob erstellen, der auf einer nichtflüchtigen Ressource ausgeführt wird

Zum Erstellen eines benutzerdefinierten Trainingsjobs, der auf einer nichtflüchtigen Ressource ausgeführt wird, nehmen Sie folgende Änderungen an der Standardanleitung zum Erstellen eines benutzerdefinierten Trainingsjobs vor:

gcloud

  • Geben Sie das --persistent-resource-id-Flag an und legen Sie als Wert die ID der nichtflüchtigen Ressource (PERSISTENT_RESOURCE_ID) fest, die Sie verwenden möchten.
  • Geben Sie das Flag --worker-pool-spec an, damit die Werte für machine-type und disk-type genau mit einem entsprechenden Ressourcenpool aus der nichtflüchtigen Ressource übereinstimmen. Geben Sie eine --worker-pool-spec für das Training mit einem einzelnen Knoten und mehrere für das verteilte Training an.
  • Geben Sie einen replica-count-Wert an, der kleiner oder gleich dem replica-count oder max-replica-count des entsprechenden Ressourcenpools ist.

Python

Informationen zur Installation des Vertex AI SDK for Python finden Sie unter Vertex AI SDK for Python installieren. Weitere Informationen finden Sie in der Referenzdokumentation zur Python API.

def create_custom_job_on_persistent_resource_sample(
    project: str,
    location: str,
    staging_bucket: str,
    display_name: str,
    container_uri: str,
    persistent_resource_id: str,
    service_account: Optional[str] = None,
) -> None:
    aiplatform.init(
        project=project, location=location, staging_bucket=staging_bucket
    )

    worker_pool_specs = [{
        "machine_spec": {
            "machine_type": "n1-standard-4",
            "accelerator_type": "NVIDIA_TESLA_K80",
            "accelerator_count": 1,
        },
        "replica_count": 1,
        "container_spec": {
            "image_uri": container_uri,
            "command": [],
            "args": [],
        },
    }]

    custom_job = aiplatform.CustomJob(
        display_name=display_name,
        worker_pool_specs=worker_pool_specs,
        persistent_resource_id=persistent_resource_id,
    )

    custom_job.run(service_account=service_account)

REST

  • Geben Sie den persistent_resource_id-Parameter an und legen Sie als Wert die ID der nichtflüchtigen Ressource (PERSISTENT_RESOURCE_ID) fest, die Sie verwenden möchten.
  • Bestimmen Sie den worker_pool_specs-Parameter so, dass die Werte von machine_spec und disk_spec für die einzelnen Ressourcenpools genau mit einem entsprechenden Ressourcenpool aus der nichtflüchtigen Ressource übereinstimmen. Geben Sie eine machine_spec für das Training mit einem einzelnen Knoten und mehrere für das verteilte Training an.
  • Geben Sie eine replica_count an, die kleiner oder gleich der replica_count oder max_replica_count des entsprechenden Ressourcenpools ist, ausgenommen die Anzahl der Repliken aller anderen Jobs, die in diesem Ressourcenpool ausgeführt werden.

Nächste Schritte