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:
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:
#!/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:
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.
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.