Pular para o conteúdo principal

Converter uma carga de trabalho do AI Runtime em um pacote

Converta um YAML de workload do AI Runtime existente em Pacotes de Automação Declarativa para gerenciá-lo como um job persistente, adicionar um programar, e compô-lo com tarefas de pré-processamento. Use databricks air convert-to-dabs para gerar o pacote ou use os mapeamentos de campos 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 o YAML da carga de trabalho com databricks air convert-to-dabs.

  1. Comece com o código e o YAML de carga de trabalho existentes. 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:
    type: snapshot
    snapshot:
    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 ao YAML. Ele traduz a configuração localmente. O pacote faz o 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 realizar a execução do Job gerado:

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

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

Converter paths e arquivos gerados​

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

Para uma fonte de código de Snapshot, o diretório de origem resolvido deve estar estritamente dentro do diretório de saída do pacote. Com o local de saída default, root_path: . é resolvido para a raiz do pacote 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 usar root_path: ., o comando a seguir grava o pacote em /project e empacota /project/training:

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

--output-dir alterações em que o pacote é gravado. Ele não copia ou 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 será interrompida. Use --force para substituí-los. Isso substitui a configuração de bundle gerada, incluindo quaisquer edições manuais feitas 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 do workload.
  • generated_artifacts/hyperparameters.yaml: gravado quando parameters está definido.
  • generated_artifacts/env_vars.json e generated_artifacts/secret_env_vars.json: gravado quando variáveis de ambiente ou segredos são definidos.

Mantenha os arquivos gerados juntos. O pacote faz o upload deles durante a implantação. Quando hyperparameters.yaml estiver presente ao lado de command.sh, o runtime definirá HYPERPARAMETERS_PATH para esse arquivo.

Mapear os campos de carga de trabalho manualmente​

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

Campo Workload YAML

Configuração de 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

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 volume ou upload Workspace.

environment.dependencies

O 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 ao script referenciado por command_path. O Runtime define HYPERPARAMETERS_PATH para este arquivo.

max_retries

O max_retries da tarefa.

timeout_minutes

O 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 Workload YAML

Configuração de 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

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 volume ou upload Workspace.

environment.dependencies

O 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 ao script referenciado por command_path. O Runtime define HYPERPARAMETERS_PATH para este arquivo.

max_retries

O max_retries da tarefa.

timeout_minutes

O 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​