Converta uma carga de trabalho do Runtime de IA para um pacote

Converta um YAML de carga de trabalho em tempo de execução de IA existente em Pacotes de Automação Declarativa para o gerir como um trabalho persistente, adicione um cronograma e componha-o com tarefas de pré-processamento. Utilize databricks air convert-to-dabs para gerar o pacote, ou utilize os mapeamentos de campos nesta página para o converter manualmente.

Requirements

Converta automaticamente um workload

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

  1. Comece com o seu workload existente, YAML e código. Por exemplo, train.yaml pode apontar para um script de treino 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 databricks.yml e um diretório generated_artifacts/ junto ao YAML. Traduz a configuração localmente. O pacote carrega o código quando é implementado. Para outros layouts de diretórios e opções de sobrescrevimento, veja Caminhos do conversor e ficheiros gerados.

  3. Validar, fazer deploy e executar o job gerado:

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

O conversor cria um trabalho com uma tarefa da GPU. Para adicionar um cronograma e tarefas de pré-processamento a databricks.yml, siga Agendar cargas de trabalho da GPU e compor as tarefas. A tarefa implantada mantém-se entre as execuções. Usa databricks bundle destroy para o remover quando já não precisares dele.

Caminhos do conversor e ficheiros gerados

databricks air convert-to-dabs train.yaml guarda o bundle no diretório do YAML de entrada por defeito. Resolve um caminho relativo code_source.root_path contra o 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 de saída padrão, root_path: . resolve para a raiz do bundle e é rejeitado. Pode usar um subdiretório de origem, como src, ou selecionar um diretório de saída que contenha o diretório de origem.

Por exemplo, se /project/training/train.yaml usar /project, o comando seguinte escreve o fibrado em /project/training e embala root_path: .:

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

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

Se os ficheiros gerados já existirem, a conversão para. Use --force para os substituir. Isto substitui a configuração do bundle gerado, incluindo quaisquer edições manuais desse ficheiro.

O conversor escreve os seguintes ficheiros:

  • databricks.yml: a configuração do bundle, incluindo a tarefa da GPU e o artefacto 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: escritos quando variáveis de ambiente ou segredos são definidos.

Mantém os ficheiros gerados juntos. O pacote envia-os durante a implantação. Quando hyperparameters.yaml está presente ao lado de command.sh, o tempo de execução define HYPERPARAMETERS_PATH para esse ficheiro.

Mapear manualmente os campos da carga de trabalho

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

Campo YAML da carga de trabalho Definição do pacote
experiment_name ai_runtime_task.experiment
command Mude o comando para um script de shell e referencia-o 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 Empacota o código com um tgz artefact e referencia-o com ai_runtime_task.code_source_path, ou usa o caminho de um espaço de trabalho ou volume carregado.
environment.dependencies do trabalho 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 O environment_variables do trabalho e o environment_variables_key da tarefa.
parameters Um hyperparameters.yaml ficheiro ao lado do script referenciado por command_path. O ambiente de execução define HYPERPARAMETERS_PATH como este ficheiro.
max_retries Da tarefa max_retries.
timeout_minutes A 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

Recursos adicionais