Pular para o conteúdo principal

Converter uma carga de trabalho do AI Runtime em um bundle

Converta um YAML de carga de trabalho do AI Runtime existente em Pacotes de Automação Declarativa para gerenciá-lo como um Job persistente, adicione o programar e componha-o com tarefas de pré-processamento. Use databricks air convert-to-dabs para gerar o pacote ou use os mapeamentos de campo nesta página para convertê-lo manualmente.

Requisitos​

Converter uma carga de trabalho automaticamente​

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

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

    YAML
    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. No diretório que contém train.yaml, execução a conversão:

    Bash
    databricks air convert-to-dabs train.yaml

    O comando cria databricks.yml e um diretório generated_artifacts/ junto com o YAML. Ele traduz a configuração localmente. O pacote faz upload do código quando você o implanta. Para outras disposições de diretório e opções de substituição, consulte Converter caminhos e arquivos gerados.

  3. Validar, implantar e executar o Job gerado:

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

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

Converter caminhos e arquivos gerados​

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

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

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

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

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

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

O conversor grava os seguintes arquivos:

  • databricks.yml: a configuração do pacote, incluindo a tarefa de 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: gravado quando parameters é 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 o upload durante o deploy. Quando hyperparameters.yaml está presente ao lado de command.sh, o runtime define HYPERPARAMETERS_PATH como esse arquivo.

Mapear campos de carga de trabalho manualmente​

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

Campo YAML de Workload

Configuração do pacote

experiment_name

ai_runtime_task.experiment

command

Mova o comando para um script shell e faça referência a ele 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

Pacote o código com um artefato tgz e referencie-o com ai_runtime_task.code_source_path, ou use um caminho de Workspace ou volume upload.

environment.dependencies

environments[].spec.dependencies do job.

environment.version

environments[].spec.environment_version para um ambiente Standard, ou environments[].spec.base_environment para um ambiente Databricks AI.

environment.docker_image.url

ai_runtime_task.docker_image_url

env_variables, secrets

O environment_variables do job e o environment_variables_key da tarefa.

parameters

Um arquivo hyperparameters.yaml junto com o script referenciado por command_path. O runtime define HYPERPARAMETERS_PATH para este arquivo.

max_retries

A max_retries da tarefa.

timeout_minutes

timeout_seconds da tarefa, multiplicando os 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

Campo YAML de Workload

Configuração do pacote

experiment_name

ai_runtime_task.experiment

command

Mova o comando para um script shell e faça referência a ele 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

Pacote o código com um artefato tgz e referencie-o com ai_runtime_task.code_source_path, ou use um caminho de Workspace ou volume upload.

environment.dependencies

environments[].spec.dependencies do job.

environment.version

environments[].spec.environment_version para um ambiente Standard, ou environments[].spec.base_environment para um ambiente Databricks AI.

environment.docker_image.url

ai_runtime_task.docker_image_url

env_variables, secrets

O environment_variables do job e o environment_variables_key da tarefa.

parameters

Um arquivo hyperparameters.yaml junto com o script referenciado por command_path. O runtime define HYPERPARAMETERS_PATH para este arquivo.

max_retries

A max_retries da tarefa.

timeout_minutes

timeout_seconds da tarefa, multiplicando os 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

Outros recursos​