Pular para o conteúdo principal

Configurar as tarefas do bundle do AI Runtime

Use esta referência para personalizar um ai_runtime_task em Pacotes de Automação Declarativa. Para obter 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 ver os campos de tarefa e suas definições, consulte a referência de tarefas do AI Runtime. Defina novas tentativas, limites de tempo, permissões e environment_key na tarefa ou no job principal.

Envie seu código de treinamento​

O bundle sincroniza arquivos como command.sh na implantação. Uma carga de trabalho exclusiva para comandos 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 do workspace ou volume.

Pacote de um diretório local​

Declare um artefato de pacote tgz para empacotar seu código em databricks bundle deploy. Este fragmento de configuração pacote src/ e aponta a tarefa para o arquivo compactado 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 compactado e define CODE_SOURCE_PATH como seu diretório de código de nível superior. Com path: . e include: [src], o arquivo compactado 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 de pacotes.

Usar código upload​

Defina code_source_path como um caminho do /Workspace/… ou /Volumes/… para um arquivo compactado de código que já foi enviado por upload. O pacote 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 execução em dois nós. Consulte Opções de hardware para obter orientações sobre hardware.

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

Declare as dependências no bloco environments do job e selecione o ambiente com environment_key da tarefa. O seguinte fragmento de configuração 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

Use 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 Configurar seu ambiente.

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

Passar configuração e dados para as tarefas​

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

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

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, grave-os em um local compartilhado, como um volume do Unity Catalog, e use o mesmo caminho em ambas as tarefas.

Recursos adicionais​