Pular para o conteúdo principal

Configurar tarefas de pacote de AI Runtime

Use esta referência para personalizar um ai_runtime_task em Pacotes de Automação Declarativa. Para exemplos executáveis que programam uma carga de trabalho de GPU e adicionam tarefas de pré-processamento, comece com Programar cargas de trabalho de GPU e compor tarefas.

Para campos de tarefa e suas definições, consulte a referência de tarefa do AI Runtime. Configure tentativas, limites de tempo, permissões e environment_key na tarefa ou job circundante.

Envie seu código de treinamento​

O pacote sincroniza arquivos como command.sh na implantação. Uma carga de trabalho apenas de comando pode apontar command_path para ${workspace.file_path}/command.sh e omitir code_source_path.

Para um diretório separado de código de treinamento, defina code_source_path como um artefato empacotado ou um caminho de workspace ou volume.

Pacote de um diretório local​

Declare um artefato tgz para pacote o seu código em databricks bundle deploy. Este fragmento de configuração empacota src/ e aponta a tarefa para o arquivo resultante:

YAML
artifacts:
code:
type: tgz
path: .
include: [src]
files:
- source: ./dist/code.tgz

resources:
jobs:
train:
tasks:
- task_key: train
ai_runtime_task:
code_source_path: ./dist/code.tgz

O runtime extrai o arquivo e define CODE_SOURCE_PATH como seu diretório de código de nível superior. Com path: . e include: [src], o arquivo contém src/train.py e CODE_SOURCE_PATH é /databricks/code_source/src. Após mudar para esse diretório, execute python train.py:

Bash
#!/usr/bin/env bash
set -euo pipefail
cd "$CODE_SOURCE_PATH"
python train.py

Para configurações de artefatos, incluindo path, include, git e files, consulte a referência de artefatos do pacote configurável.

Usar código upload​

Defina code_source_path como um caminho /Workspace/… ou /Volumes/… para um arquivo de código que já foi upload. O pacote configurável usa esse caminho sem empacotar seu diretório local.

Configurar compute e ambientes​

Defina accelerator_count como um múltiplo das GPUs por nó codificadas em accelerator_type. Por exemplo, GPU_8xH100 com accelerator_count: 16 está em execução em dois nós. Consulte Opções de hardware para obter orientações de hardware.

Para uma carga de trabalho multinó, o AI Runtime executa o comando em todos os nós. O ambiente de tarefa inclui NUM_NODES, WORLD_SIZE, LOCAL_WORLD_SIZE, MASTER_ADDR e MASTER_PORT. Leia essas variáveis em seu comando de treinamento distribuído.

Declare as dependências no bloco environments do job e selecione o ambiente com o environment_key da tarefa. O fragmento de configuração a seguir instala o PyTorch no ambiente de treinamento:

YAML
resources:
jobs:
train:
tasks:
- task_key: train
environment_key: training
environments:
- environment_key: training
spec:
environment_version: '6'
dependencies:
- torch

Utilize o environment_version para um ambiente Standard. Para usar um ambiente Databricks AI, defina base_environment em vez disso, por exemplo, workspace-base-environments/databricks_ai_v6. Consulte Configure seu ambiente.

Para uma Docker Image personalizada, defina docker_image_url em ai_runtime_task e siga Usar Docker Image personalizadas com a CLI herdada do Python.

Passar configuração e dados para tarefas​

Defina uma entrada environment_variables de nível de job e selecione-a com environment_variables_key da tarefa. Coloque valores simples em variables e use {{secrets/scope/key}} para referências secretas. Esta configuração requer a visualização das variáveis de ambiente descrita em Configurar variáveis de ambiente para jobs serverless.

Para passar parâmetros por HYPERPARAMETERS_PATH, salve um arquivo hyperparameters.yaml ao lado do script referenciado por command_path. O pacote sincroniza os dois arquivos, e o Runtime define HYPERPARAMETERS_PATH como o arquivo de parâmetro para seu comando de treinamento. Para a conversão de um YAML de carga de trabalho existente, consulte Converter uma carga de trabalho de AI Runtime em um bundle.

nota

Um ai_runtime_task não oferece suporte a valores de tarefa de job ({{tasks.<task_key>.values.<name>}} ou dbutils.jobs.taskValues). Para passar dados entre tarefas, escreva-os em um local compartilhado, como um volume do Unity Catalog, e use o mesmo caminho em ambas as tarefas.

Mais recursos​