Ejecutar tareas de entrenamiento sin servidor de Vertex AI en un recurso persistente

En esta página se muestra cómo ejecutar un trabajo de entrenamiento sin servidor en un recurso persistente mediante la CLI de Google Cloud, el SDK de Vertex AI para Python y la API REST.

Normalmente, cuando crea una tarea de entrenamiento sin servidor, debe especificar los recursos de computación que la tarea crea y en los que se ejecuta. Después de crear un recurso persistente, puedes configurar el trabajo de entrenamiento sin servidor para que se ejecute en uno o varios grupos de recursos de ese recurso persistente. Si ejecutas un trabajo de entrenamiento personalizado en un recurso persistente, se reduce significativamente el tiempo de inicio del trabajo que, de lo contrario, se necesitaría para crear recursos de computación.

Roles obligatorios

Para obtener el permiso que necesitas para ejecutar trabajos de entrenamiento sin servidor en un recurso persistente, pide a tu administrador que te conceda el rol de gestión de identidades y accesos Usuario de Vertex AI (roles/aiplatform.user) en tu proyecto. Para obtener más información sobre cómo conceder roles, consulta el artículo Gestionar acceso a proyectos, carpetas y organizaciones.

Este rol predefinido contiene el permiso aiplatform.customJobs.create , que es necesario para ejecutar trabajos de entrenamiento sin servidor en un recurso persistente.

También puedes obtener este permiso con roles personalizados u otros roles predefinidos.

Crear una tarea de entrenamiento que se ejecute en un recurso persistente

Para crear un trabajo de entrenamiento sin servidor que se ejecute en un recurso persistente, haz las siguientes modificaciones en las instrucciones estándar para crear un trabajo de entrenamiento sin servidor:

gcloud

  • Especifica la marca --persistent-resource-id y asigna el valor al ID del recurso persistente (PERSISTENT_RESOURCE_ID) que quieras usar.
  • Especifica la marca --worker-pool-spec de forma que los valores de machine-type y disk-type coincidan exactamente con un grupo de recursos correspondiente del recurso persistente. Especifica un --worker-pool-spec para el entrenamiento de un solo nodo y varios para el entrenamiento distribuido.
  • Especifica un replica-count igual o inferior al replica-count o al max-replica-count del grupo de recursos correspondiente.

Python

Para saber cómo instalar o actualizar el SDK de Vertex AI para Python, consulta Instalar el SDK de Vertex AI para Python. Para obtener más información, consulta la documentación de referencia de la API Python.

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

  • Especifica el parámetro persistent_resource_id y asigna el valor al ID del recurso persistente (PERSISTENT_RESOURCE_ID) que quieras usar.
  • Especifique el parámetro worker_pool_specs de forma que los valores de machine_spec y disk_spec de cada grupo de recursos coincidan exactamente con un grupo de recursos correspondiente del recurso persistente. Especifica un machine_spec para el entrenamiento de un solo nodo y varios para el entrenamiento distribuido.
  • Especifica un valor de replica_count inferior o igual al replica_count o al max_replica_count del grupo de recursos correspondiente, sin incluir el número de réplicas de ningún otro trabajo que se esté ejecutando en ese grupo de recursos.

Siguientes pasos