Trainingsjobs basierend auf der Ressourcenverfügbarkeit planen

Bei serverlosen 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 auf der Gemini Enterprise Agent Platform 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 die Gemini Enterprise Agent Platform die GPU-Ressourcen außerhalb der Zeiten hoher Nachfrage 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.
  • Ihr serverloser Trainingsjob hat ein maximales timeout von 7 Tagen oder weniger.
  • Für Ihren serverlosen Trainingsjob wird dieselbe Maschinenkonfiguration für alle Workerpools verwendet.

Unterstützte Jobtypen

Alle serverlosen Trainingsjobtypen 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.

Weitere Informationen zum Erstellen eines serverlosen Trainingsjobs finden Sie unter den folgenden Links.

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 Agent Platform 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 Gemini Enterprise Agent Platform 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"
    }
  }
}

Quota

Wenn Sie einen Job mit dem Dynamic Workload Scheduler einreichen, wird nicht das On-Demand-Kontingent der Gemini Enterprise Agent Platform, sondern das Kontingent für unterbrechbare Jobs der Gemini Enterprise Agent Platform verbraucht. Beispiel: NVIDIA H100-GPUs:

aiplatform.googleapis.com/custom_model_training_nvidia_h100_gpus

Die Gemini Enterprise Agent Platform 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 Kontingenten der Gemini Enterprise Agent Platform und eine Anleitung zum Anfordern einer Kontingenterhöhung finden Sie unter Kontingente und Limits der Gemini Enterprise Agent Platform.

Abrechnung

Bei Verwendung von DWS Flex Start werden Ihnen die Preise für Dynamic Workload Scheduler in Rechnung gestellt. Zusätzlich zur Nutzung der Infrastruktur fallen Gebühren für die Verwaltung serverloser Trainings an.

Weitere Informationen