Trainingsjobs basierend auf der Ressourcenverfügbarkeit planen

Bei serverlosen Vertex AI-Trainingsjobs, für die GPU-Ressourcen angefordert werden, können Sie mit Dynamic Workload Scheduler die Jobs basierend darauf planen, wann die angeforderten GPU-Ressourcen verfügbar werden. Auf dieser Seite erfahren Sie, wie Sie serverlose Trainingsjobs mit dem Dynamic Workload Scheduler planen und das Planungsverhalten in Vertex AI anpassen.

Empfohlene Anwendungsfälle

Wir empfehlen, in den folgenden Fällen serverlose Trainingsjobs mit dem Dynamic Workload Scheduler zu planen:

  • Für den serverlosen Trainingsjob werden L4-, A100-, H100-, H200- oder B200-GPUs angefordert und Sie möchten den Job ausführen, sobald die angeforderten Ressourcen verfügbar sind. Beispielsweise, wenn Vertex AI die GPU-Ressourcen außerhalb der Stoßzeiten zuweist.
  • Ihre Arbeitslast erfordert mehrere Knoten und kann erst ausgeführt werden, wenn alle GPU-Knoten bereitgestellt und bereit sind. Angenommen, Sie erstellen einen verteilten Trainingsjob.

Voraussetzungen

Damit Sie den Dynamic Workload Scheduler verwenden können, muss Ihr serverloser Trainingsjob die folgenden Anforderungen erfüllen:

  • Für Ihren serverlosen Trainingsjob werden L4-, A100-, H100-, H200- oder B200-GPUs angefordert.
  • Die timeout Ihres serverlosen Trainingsjobs darf maximal 7 Tage betragen.
  • Für Ihren serverlosen Trainingsjob wird dieselbe Maschinenkonfiguration für alle Workerpools verwendet.

Unterstützte Jobtypen

Alle Typen serverloser Trainingsaufträge werden unterstützt, einschließlich CustomJob, HyperparameterTuningjob und TrainingPipeline.

Dynamic Workload Scheduler in Ihrem serverlosen Trainingsjob aktivieren

Wenn Sie den Dynamic Workload Scheduler in Ihrem serverlosen Trainingsjob aktivieren möchten, legen Sie beim Erstellen des Jobs das API-Feld scheduling.strategy auf FLEX_START fest.

Unter den folgenden Links finden Sie weitere Informationen zum Erstellen eines serverlosen Trainingsjobs.

Dauer für die Wartezeit auf die Ressourcenverfügbarkeit konfigurieren

Im Feld scheduling.maxWaitDuration können Sie konfigurieren, wie lange der Job auf Ressourcen warten kann. Ein Wert von 0 bedeutet, dass der Job unbegrenzt wartet, bis die angeforderten Ressourcen verfügbar sind. Der Standardwert ist 1 Tag.

Beispiele

In den folgenden Beispielen wird gezeigt, wie Sie den Dynamic Workload Scheduler für einen customJob aktivieren. Wählen Sie den Tab für die Oberfläche aus, die Sie verwenden möchten.

gcloud

Wenn Sie einen Job über die Google Cloud CLI einreichen, fügen Sie das Feld scheduling.strategy in die Datei config.yaml ein.

Beispiel für eine YAML-Konfigurationsdatei:

workerPoolSpecs:
  machineSpec:
    machineType: a2-highgpu-1g
    acceleratorType: NVIDIA_TESLA_A100
    acceleratorCount: 1
  replicaCount: 1
  containerSpec:
    imageUri: gcr.io/ucaip-test/ucaip-training-test
    args:
    - port=8500
    command:
    - start
scheduling:
  strategy: FLEX_START
  maxWaitDuration: 7200s

Python

Wenn Sie einen Job mit dem Vertex AI SDK für Python einreichen, legen Sie das Feld scheduling_strategy in der entsprechenden CustomJob-Erstellungsmethode fest.

from google.cloud.aiplatform_v1.types import custom_job as gca_custom_job_compat

def create_custom_job_with_dws_sample(
    project: str,
    location: str,
    staging_bucket: str,
    display_name: str,
    script_path: str,
    container_uri: str,
    service_account: str,
    experiment: str,
    experiment_run: Optional[str] = None,
) -> None:
    aiplatform.init(project=project, location=location, staging_bucket=staging_bucket, experiment=experiment)

    job = aiplatform.CustomJob.from_local_script(
        display_name=display_name,
        script_path=script_path,
        container_uri=container_uri,
        enable_autolog=True,
        machine_type="a2-highgpu-1g",
        accelerator_type="NVIDIA_TESLA_A100",
        accelerator_count=1,
    )

    job.run(
        service_account=service_account,
        experiment=experiment,
        experiment_run=experiment_run,
        max_wait_duration=1800,
        scheduling_strategy=gca_custom_job_compat.Scheduling.Strategy.FLEX_START
    )

REST

Wenn Sie einen Job mit der Vertex AI REST API einreichen, legen Sie beim Erstellen des serverlosen Trainingsjobs die Felder scheduling.strategy und scheduling.maxWaitDuration fest.

Beispiel für einen JSON-Anfragetext:

{
  "displayName": "MyDwsJob",
  "jobSpec": {
    "workerPoolSpecs": [
      {
        "machineSpec": {
          "machineType": "a2-highgpu-1g",
          "acceleratorType": "NVIDIA_TESLA_A100",
          "acceleratorCount": 1
        },
        "replicaCount": 1,
        "diskSpec": {
          "bootDiskType": "pd-ssd",
          "bootDiskSizeGb": 100
        },
        "containerSpec": {
          "imageUri": "python:3.10",
          "command": [
            "sleep"
          ],
          "args": [
            "100"
          ]
        }
      }
    ],
    "scheduling": {
      "maxWaitDuration": "1800s",
      "strategy": "FLEX_START"
    }
  }
}

Kontingent

Wenn Sie einen Job mit dem Dynamic Workload Scheduler einreichen, wird nicht das On-Demand-Kontingent von Vertex AI, sondern das Kontingent für unterbrechbare Jobs von Vertex AI verbraucht. Beispiel: NVIDIA H100-GPUs:

aiplatform.googleapis.com/custom_model_training_nvidia_h100_gpus,

Vertex AI verbraucht:

aiplatform.googleapis.com/custom_model_training_preemptible_nvidia_h100_gpus.

Das Kontingent auf Abruf wird jedoch nur dem Namen nach verwendet. Ihre Ressourcen können nicht vorzeitig beendet werden und verhalten sich wie Standardressourcen.

Bevor Sie einen Job mit Dynamic Workload Scheduler einreichen, müssen Sie Ihre Kontingente auf Abruf auf eine ausreichende Menge erhöhen. Weitere Informationen zu Vertex AI-Kontingenten und eine Anleitung zum Anfordern einer Kontingenterhöhung finden Sie unter Vertex AI-Kontingente und -Limits.

Abrechnung

Wenn Sie DWS Flex-Start verwenden, erfolgt die Abrechnung gemäß der Preisgestaltung für Dynamic Workload Scheduler. Zusätzlich zur Nutzung der Infrastruktur fallen Gebühren für die Verwaltung von serverlosem Training an.

Weitere Informationen