Programa trabajos de entrenamiento según la disponibilidad de recursos

En el caso de los trabajos de entrenamiento sin servidores que solicitan recursos de GPU, el programador de cargas de trabajo dinámico te permite programar los trabajos según el momento en que los recursos de GPU solicitados estén disponibles. En esta página, se muestra cómo programar trabajos de entrenamiento sin servidores con el Programador dinámico de cargas de trabajo y cómo personalizar el comportamiento de programación en Gemini Enterprise Agent Platform.

Casos de uso recomendados

Te recomendamos que uses el programador de cargas de trabajo dinámico para programar trabajos de entrenamiento sin servidores en las siguientes situaciones:

  • El trabajo de entrenamiento sin servidores solicita GPUs L4, A100, H100, H200 o B200, y deseas ejecutarlo apenas los recursos solicitados estén disponibles. Por ejemplo, cuando Gemini Enterprise Agent Platform asigna los recursos de GPU fuera de las horas pico.
  • Tu carga de trabajo requiere varios nodos y no puede comenzar a ejecutarse hasta que todos los nodos de GPU se aprovisionen y estén listos al mismo tiempo. Por ejemplo, estás creando un trabajo de entrenamiento distribuido.

Requisitos

Para usar el programador de cargas de trabajo dinámico, tu trabajo de entrenamiento sin servidores debe cumplir con los siguientes requisitos:

  • Tu trabajo de entrenamiento sin servidores solicita GPUs L4, A100, H100, H200 o B200.
  • Tu trabajo de entrenamiento sin servidores tiene un timeout máximo de 7 días o menos.
  • Tu trabajo de entrenamiento sin servidores usa la misma configuración de la máquina para todos los grupos de trabajadores.

Tipos de trabajos admitidos

Se admiten todos los tipos de trabajos de entrenamiento sin servidores, incluidos CustomJob, HyperparameterTuningjob y TrainingPipeline.

Habilita el programador dinámico de cargas de trabajo en tu trabajo de entrenamiento sin servidores

Para habilitar el programador de cargas de trabajo dinámica en tu trabajo de entrenamiento sin servidores, establece el campo de la API scheduling.strategy en FLEX_START cuando crees el trabajo.

Para obtener detalles sobre cómo crear un trabajo de entrenamiento sin servidores, consulta los siguientes vínculos.

Configura la duración para esperar la disponibilidad de los recursos

Puedes configurar durante cuánto tiempo tu trabajo puede esperar recursos en el campo scheduling.maxWaitDuration. Un valor de 0 significa que la tarea espera indefinidamente hasta que los recursos solicitados estén disponibles. El valor predeterminado es 1 día.

Ejemplos

En los siguientes ejemplos, se muestra cómo habilitar el programador de cargas de trabajo dinámico para un customJob. Selecciona la pestaña de la interfaz que quieres usar.

gcloud

Cuando envíes un trabajo con Google Cloud CLI, agrega el campo scheduling.strategy al archivo config.yaml.

Archivo de configuración YAML de ejemplo:

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

Cuando envíes un trabajo con el SDK de Agent Platform para Python, configura el campo scheduling_strategy en el método de creación de CustomJob relevante.

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

Cuando envíes un trabajo con la API de REST de Gemini Enterprise Agent Platform, configura los campos scheduling.strategy y scheduling.maxWaitDuration cuando crees tu trabajo de entrenamiento sin servidores.

Ejemplo de cuerpo JSON de la solicitud:

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

Cuando envías un trabajo con el programador dinámico de cargas de trabajo, en lugar de consumir la cuota de Gemini Enterprise Agent Platform on demand, Gemini Enterprise Agent Platform consume la cuota interrumpible. Por ejemplo, para las GPU NVIDIA H100, en lugar de consumir lo siguiente:

aiplatform.googleapis.com/custom_model_training_nvidia_h100_gpus,

Gemini Enterprise Agent Platform consume lo siguiente:

aiplatform.googleapis.com/custom_model_training_preemptible_nvidia_h100_gpus.

Sin embargo, la cuota interrumpible solo se usa de nombre. Tus recursos no se pueden interrumpir y se comportan como recursos estándar.

Antes de enviar un trabajo con el programador dinámico de cargas de trabajo, asegúrate de que tus cuotas interrumpibles hayan aumentado a una cantidad suficiente. Para obtener detalles sobre las cuotas de Gemini Enterprise Agent Platform y las instrucciones para realizar solicitudes de aumento de cuotas, consulta Cuotas y límites de Gemini Enterprise Agent Platform.

Facturación

Cuando usas el inicio flexible de DWS, se te factura según los precios del programador dinámico de cargas de trabajo. Además del uso de la infraestructura, se aplican tarifas de administración de entrenamiento sin servidores.

Pasos siguientes