Ejecuta trabajos de entrenamiento personalizados en un recurso persistente

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

Por lo general, cuando creas un trabajo de entrenamiento personalizado, debes especificar los recursos de procesamiento que el trabajo usa para crear y ejecutarse. Después de crear un recurso persistente, puedes configurar el trabajo de entrenamiento personalizado para que se ejecute en uno o más grupos de recursos de ese recurso persistente. Ejecutar un trabajo de entrenamiento personalizado en un recurso persistente reduce de manera significativa el tiempo de inicio del trabajo que, de lo contrario, es necesario para crear un recurso de procesamiento.

Roles obligatorios

Para obtener el permiso que necesitas para ejecutar trabajos de entrenamiento personalizados en un recurso persistente, pídele a tu administrador que te otorgue el rol de IAM de usuario de Vertex AI (roles/aiplatform.user) en tu proyecto. Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.

Este rol predefinido contiene el permiso aiplatform.customJobs.create, que se requiere para ejecutar trabajos de entrenamiento personalizados en un recurso persistente.

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

Crea un trabajo de entrenamiento que se ejecute en un recurso persistente

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

gcloud

  • Especifica la marca --persistent-resource-id y establece el valor en el ID del recurso persistente (PERSISTENT_RESOURCE_ID) que deseas usar.
  • Especifica la marca --worker-pool-spec para que los valores para machine-type y disk-type coincidan exactamente con un grupo de recursos correspondiente del recurso persistente. Especifica una --worker-pool-spec para el entrenamiento de nodo único y varios para el entrenamiento distribuido.
  • Especifica un valor para replica-count menor o igual que replica-count o max-replica-count del grupo de recursos correspondiente.

Python

Si deseas obtener información para instalar o actualizar el SDK de Vertex AI para Python, consulta Instala el SDK de Vertex AI para Python. Si deseas obtener más información, consulta la documentación de referencia de la API de 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 establece el valor en el ID del recurso persistente (PERSISTENT_RESOURCE_ID) que deseas usar.
  • Especifica el parámetro worker_pool_specs, de modo 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 nodo único y varios para el entrenamiento distribuido.
  • Especifica un replica_count menor o igual que el replica_count o max_replica_count del grupo de recursos correspondiente, sin incluir el recuento de réplicas de cualquier otro trabajo que se ejecute en ese grupo de recursos.

¿Qué sigue?