Converta uma carga de trabalho do AI Runtime em um pacote

Converta um YAML de carga de trabalho em tempo de execução de IA existente em Pacotes de Automação Declarativa para gerenciá-lo como um trabalho persistente, adicione um cronograma e combine-o com tarefas de pré-processamento. Use databricks air convert-to-dabs para gerar o bundle, ou use os mapeamentos de campos nesta página para convertê-lo manualmente.

Requisitos

Converta um workload automaticamente

Se você já executa uma carga de trabalho com databricks air run --file train.yaml, converta seu YAML da carga de trabalho com databricks air convert-to-dabs.

  1. Comece com sua carga de trabalho, seu YAML e seu código atuais. Por exemplo, train.yaml pode apontar para um script de treinamento em src/:

    experiment_name: my-training
    environment:
      dependencies:
        - torch
    compute:
      num_accelerators: 1
      accelerator_type: GPU_1xA10
    code_source:
      root_path: src
    command: python $CODE_SOURCE_PATH/train.py
    
  2. A partir do diretório que contém train.yaml, execute a conversão:

    databricks air convert-to-dabs train.yaml
    

    O comando cria o diretório databricks.yml e um diretório generated_artifacts/ no mesmo diretório que o YAML. Ele traduz a configuração localmente. O pacote faz upload do código quando você o implanta. Para outros layouts de diretórios e opções de sobrescrevimento, veja Caminhos do Conversor e arquivos gerados.

  3. Valide, faça deploy e execute o job gerado:

    databricks bundle validate
    databricks bundle deploy
    databricks bundle run my-training --no-wait
    

O conversor cria um trabalho com uma tarefa de GPU. Para adicionar um cronograma e tarefas de pré-processamento a databricks.yml, siga Agendar cargas de GPU e compor tarefas. O job implantado persiste entre as execuções. Use databricks bundle destroy para removê-lo quando terminar.

Caminhos do conversor e arquivos gerados

databricks air convert-to-dabs train.yaml grava o pacote no diretório do YAML de entrada por padrão. Ele resolve um caminho relativo code_source.root_path em relação ao diretório do YAML.

Para uma fonte de código, o diretório fonte resolvido deve estar estritamente dentro do diretório de saída do bundle. Com a localização padrão de saída, root_path: . resolve para a raiz do bundle e é rejeitado. Use um subdiretório de origem, como src, ou selecione um diretório de saída que contenha o diretório de origem.

Por exemplo, se /project/training/train.yaml usa root_path: ., o comando a seguir escreve o bundle em /project e empacota /project/training:

databricks air convert-to-dabs /project/training/train.yaml --output-dir /project

--output-dir muda onde o pacote é gravado. Ele não copia nem move o código-fonte. Execute os comandos subsequentes databricks bundle a partir do diretório de saída.

Se arquivos gerados já existirem, a conversão para. Use --force para sobrescrevê-los. Isso substitui a configuração gerada do bundle, incluindo quaisquer edições manuais naquele arquivo.

O conversor grava os seguintes arquivos:

  • databricks.yml: a configuração do bundle, incluindo a tarefa da GPU e o artefato de código.
  • generated_artifacts/command.sh: o script de comando.
  • generated_artifacts/training_config.yaml: a configuração da carga de trabalho.
  • generated_artifacts/hyperparameters.yaml: escrito quando parameters está definido.
  • generated_artifacts/env_vars.json e generated_artifacts/secret_env_vars.json: escrito quando variáveis de ambiente ou segredos são definidos.

Mantenha os arquivos gerados juntos. O pacote faz upload deles durante a implantação. Quando hyperparameters.yaml está presente ao lado de command.sh, o tempo de execução define HYPERPARAMETERS_PATH para aquele arquivo.

Mapear manualmente os campos de carga de trabalho

Use os seguintes mapeamentos ao converter manualmente para um bundle a partir de um YAML de workload do AI Runtime. Para conversão automática, siga as instruções em Converter uma carga de trabalho automaticamente. Para definições de campos de tarefa, veja a referência de tarefas do AI Runtime.

Campo YAML da carga de trabalho Configuração do pacote
experiment_name ai_runtime_task.experiment
command Mova o comando para um script de shell e faça referência com ai_runtime_task.deployments[].command_path.
compute.accelerator_type ai_runtime_task.deployments[].compute.accelerator_type
compute.num_accelerators ai_runtime_task.deployments[].compute.accelerator_count
code_source Empacote o código com um artefato tgz e faça referência a ele com ai_runtime_task.code_source_path, ou use um caminho de workspace carregado ou de volume.
environment.dependencies A tarefa environments[].spec.dependencies.
environment.version environments[].spec.environment_version para um ambiente Standard, ou environments[].spec.base_environment para um ambiente de IA Databricks.
environment.docker_image.url ai_runtime_task.docker_image_url
env_variables, secrets Do trabalho environment_variables e da tarefa environment_variables_key.
parameters Um hyperparameters.yaml arquivo ao lado do script referenciado por command_path. O tempo de execução define HYPERPARAMETERS_PATH para este arquivo.
max_retries A max_retries da tarefa.
timeout_minutes A tarefa consiste em timeout_seconds, multiplicando minutos por 60.
mlflow_run_name ai_runtime_task.mlflow_run
mlflow_experiment_directory ai_runtime_task.mlflow_experiment_directory
mlflow_artifact_location ai_runtime_task.mlflow_artifact_location

Recursos adicionais