Executar jobs de treinamento personalizado em um recurso persistente

Nesta página, mostramos como executar um job de treinamento personalizado em um recurso permanente usando a CLI do Google Cloud, o SDK da Vertex AI para Python e a API REST.

Normalmente, ao criar um job de treinamento personalizado, você precisa especificar os recursos de computação que ele vai criar e executar. Depois de criar um recurso persistente, configure o job de treinamento personalizado para ser executado em um ou mais pools de recursos desse recurso persistente. A execução de um job de treinamento personalizado em um recurso persistente reduz muito o tempo de inicialização do job necessário para a criação do recurso de computação.

Funções exigidas

Para receber a permissão necessária a fim de executar jobs de treinamento personalizado em um recurso persistente, peça ao administrador para conceder a você o papel do IAM de Usuário da Vertex AI (roles/aiplatform.user) no projeto. Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.

Esse papel predefinido contém a permissão aiplatform.customJobs.create, que é necessária para executar jobs de treinamento personalizado em um recurso permanente.

Também é possível conseguir essa permissão com papéis personalizados ou outros papéis predefinidos.

Criar um job de treinamento que seja executado em um recurso permanente

Para criar jobs de treinamento personalizados que sejam executados em um recurso permanente, faça as modificações a seguir nas instruções padrão de criação de um job de treinamento personalizado:

gcloud

  • Especifique a sinalização --persistent-resource-id e defina o valor como o ID do recurso permanente (PERSISTENT_RESOURCE_ID) que você quer usar.
  • Especifique a sinalização --worker-pool-spec para que os valores de machine-type e disk-type correspondam exatamente a um pool de recursos correspondente do recurso persistente. Especifique um --worker-pool-spec para treinamento de nó único e vários para treinamento distribuído.
  • Especifique um replica-count menor ou igual ao replica-count ou max-replica-count do pool de recursos correspondente.

Python

Para saber como instalar o SDK da Vertex AI para Python, consulte Instalar o SDK da Vertex AI para Python. Para mais informações, consulte a documentação de referência da 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

  • Especifique o parâmetro persistent_resource_id e defina o valor como o ID do recurso permanente (PERSISTENT_RESOURCE_ID) que você quer usar.
  • Especifique o parâmetro worker_pool_specs para que os valores de machine_spec e disk_spec para cada pool de recursos correspondam exatamente a um pool de recursos correspondente do recurso permanente. Especifique um machine_spec para treinamento de nó único e vários para treinamento distribuído.
  • Especifique um replica_count menor ou igual ao replica_count ou max_replica_count do pool de recursos correspondente, excluindo a contagem de réplicas de outros jobs em execução nesse pool de recursos.

A seguir