Pianificare i job di addestramento in base alla disponibilità delle risorse

Per i job di addestramento serverless che richiedono risorse GPU, Dynamic Workload Scheduler consente di pianificare i job in base alla disponibilità delle risorse GPU richieste. Questa pagina mostra come pianificare i job di addestramento serverless utilizzando Dynamic Workload Scheduler e come personalizzare il comportamento di pianificazione su Gemini Enterprise Agent Platform.

Casi d'uso consigliati

Ti consigliamo di utilizzare Dynamic Workload Scheduler per pianificare i job di addestramento serverless nelle seguenti situazioni:

  • Il job di addestramento serverless richiede GPU L4, A100, H100, H200 o B200 e vuoi eseguire il job non appena le risorse richieste diventano disponibili. Ad esempio, quando Gemini Enterprise Agent Platform alloca le risorse GPU al di fuori delle ore di punta.
  • Il tuo workload richiede più nodi e non può iniziare l'esecuzione finché tutti i nodi GPU non vengono sottoposti a provisioning e non sono pronti contemporaneamente. Ad esempio, stai creando un job di addestramento distribuito.

Requisiti

Per utilizzare Dynamic Workload Scheduler, il job di addestramento serverless deve soddisfare i seguenti requisiti:

  • Il job di addestramento serverless richiede GPU L4, A100, H100, H200 o B200.
  • Il job di addestramento serverless ha un timeout massimo di 7 giorni o meno.
  • Il job di addestramento serverless utilizza la stessa configurazione della macchina per tutti i pool di worker.

Tipi di job supportati

Sono supportati tutti i tipi di job di addestramento serverless, inclusi CustomJob, HyperparameterTuningjob e TrainingPipeline.

Abilitare Dynamic Workload Scheduler nel job di addestramento serverless

Per abilitare Dynamic Workload Scheduler nel job di addestramento serverless, imposta il campo API scheduling.strategy su FLEX_START quando crei il job.

Per informazioni dettagliate su come creare un job di addestramento serverless, consulta i seguenti link.

Configurare la durata di attesa della disponibilità delle risorse

Puoi configurare per quanto tempo il job può attendere le risorse nel campo scheduling.maxWaitDuration. Un valore di 0 indica che il job attende indefinitamente finché le risorse richieste non diventano disponibili. Il valore predefinito è 1 giorno.

Esempi

Gli esempi seguenti mostrano come abilitare Dynamic Workload Scheduler per un customJob. Seleziona la scheda per l'interfaccia che vuoi utilizzare.

gcloud

Quando invii un job utilizzando Google Cloud CLI, aggiungi il scheduling.strategy campo nel config.yaml file.

Esempio di file di configurazione YAML:

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

Quando invii un job utilizzando l'SDK Agent Platform per Python, imposta il campo scheduling_strategy nel metodo di creazione CustomJob pertinente.

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

Quando invii un job utilizzando l'API REST di Gemini Enterprise Agent Platform, imposta i campi scheduling.strategy e scheduling.maxWaitDuration quando crei il job di addestramento serverless.

Esempio di corpo JSON della richiesta:

{
  "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

Quando invii un job utilizzando Dynamic Workload Scheduler, anziché consumare la quota on demand di Gemini Enterprise Agent Platform, Gemini Enterprise Agent Platform consuma la quota preemptive. Ad esempio, per le GPU Nvidia H100, anziché consumare:

aiplatform.googleapis.com/custom_model_training_nvidia_h100_gpus,

Gemini Enterprise Agent Platform consuma:

aiplatform.googleapis.com/custom_model_training_preemptible_nvidia_h100_gpus.

Tuttavia, la quota preemptive viene utilizzata solo nel nome. Le tue risorse non sono preemptive e si comportano come risorse standard.

Prima di inviare un job utilizzando Dynamic Workload Scheduler, assicurati che le quote preemptive siano state aumentate a un importo sufficiente. Per informazioni dettagliate sulle quote di Gemini Enterprise Agent Platform e istruzioni per effettuare richieste di aumento della quota, consulta Quote e limiti di Gemini Enterprise Agent Platform.

Fatturazione

Quando utilizzi l'avvio flessibile di DWS, la fatturazione viene effettuata in base ai prezzi di Dynamic Workload Scheduler. Oltre all'utilizzo dell'infrastruttura, sono previste commissioni di gestione dell'addestramento serverless.

Passaggi successivi