Ejecutar tareas de entrenamiento personalizadas en un recurso persistente

En esta página se muestra cómo ejecutar una tarea de entrenamiento personalizada 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 personalizada, 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 personalizado 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 personalizados 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 el acceso a proyectos, carpetas y organizaciones.

Este rol predefinido contiene el permiso aiplatform.customJobs.create , que es necesario para ejecutar trabajos de entrenamiento personalizados 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 una tarea de entrenamiento personalizada que se ejecute en un recurso persistente, haz las siguientes modificaciones en las instrucciones estándar para crear una tarea de entrenamiento personalizada:

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