Преобразовать рабочую нагрузку AI Runtime в пакет

Преобразуйте существующую спецификацию YAML рабочей нагрузки AI Runtime в Declarative Automation Bundles, чтобы управлять ею как постоянной задачей, добавить расписание и объединить её с задачами предварительной обработки. Используйте databricks air convert-to-dabs для генерации пакета или используйте сопоставления полей на этой странице для ручной конвертации.

Requirements

Автоматически преобразовать рабочую нагрузку

Если вы уже запускаете рабочую нагрузку с databricks air run --file train.yaml, конвертируйте её YAML-файл рабочей нагрузки с databricks air convert-to-dabs.

  1. Начните с вашего существующего workload YAML и кода. Например, train.yaml может указывать на обучающий скрипт в 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. Из каталога, содержащего train.yaml, выполните преобразование:

    databricks air convert-to-dabs train.yaml
    

    Команда создаёт databricks.yml и каталог generated_artifacts/ рядом с YAML-файлом. Конфигурация переводится локально. Бандл загружает код при развертывании. Для других вариантов каталогов и опций перезаписи см. Пути конвертера и сгенерированные файлы.

  3. Проверьте, разверните и запустите сгенерированную задачу:

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

Конвертер создаёт задание с одной задачей GPU. Чтобы добавить расписание и задачи предобработки в databricks.yml, см. планирование нагрузок GPU и создание задач. Развернутое задание сохраняется между запусками. Используй databricks bundle destroy , чтобы удалить её, когда закончишь.

Пути конвертера и генерируемые файлы

databricks air convert-to-dabs train.yaml по умолчанию записывает bundle в каталог, содержащий входной YAML-файл. Он разрешает относительный путь code_source.root_path относительно каталога YAML-файла.

Для источника кода определённый исходный каталог должен находиться строго внутри каталога вывода пакета. При расположении вывода по умолчанию root_path: . указывает на корень пакета и отклоняется. Либо используйте подкаталог исходного кода, например src, либо выберите каталог вывода, содержащий каталог-источник.

Например, если /project/training/train.yaml использует root_path: ., следующая команда записывает пакет в /project и упаковывает /project/training:

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

--output-dir меняет место записи пакета. Он не копирует и не перемещает исходный код. Выполните следующие databricks bundle команды из каталога вывода.

Если сгенерированные файлы уже существуют, преобразование прекращается. Используйте --force, чтобы перезаписать их. Это заменяет сгенерированную конфигурацию пакета, включая любые ручные правки этого файла.

Конвертер записывает следующие файлы:

  • databricks.yml: конфигурация пакета, включая задачу GPU и артефакт кода.
  • generated_artifacts/command.sh: командный скрипт.
  • generated_artifacts/training_config.yaml: конфигурация рабочей среды.
  • generated_artifacts/hyperparameters.yaml: записывается, когда parameters установлен.
  • generated_artifacts/env_vars.json и generated_artifacts/secret_env_vars.json: указываются, когда устанавливаются переменные среды или секреты.

Сохраняйте сгенерированные файлы вместе. Пакет загружает их во время развертывания. Когда hyperparameters.yaml присутствует рядом с command.sh, среда выполнения устанавливает HYPERPARAMETERS_PATH на этот файл.

Сопоставьте поля рабочей нагрузки вручную

Используйте следующие сопоставления при ручной конвертации в bundle из AI Runtime workload YAML. Для автоматического преобразования следуйте инструкциям в Автоматическое преобразование рабочей нагрузки. Для определений полей задач см. справочник по задачам AI Runtime.

Поле YAML для рабочей нагрузки Настройка комплекта
experiment_name ai_runtime_task.experiment
command Переместите команду в скрипт оболочки и сошлитесь на него с помощью 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 Упаковывайте код с артефактом tgz и ссылайтесь на него с помощью ai_runtime_task.code_source_path, либо используйте загруженное рабочее пространство или путь тома.
environment.dependencies Это работаenvironments[].spec.dependencies.
environment.version environments[].spec.environment_version для среды Standard или environments[].spec.base_environment для среды искусственного интеллекта Databricks.
environment.docker_image.url ai_runtime_task.docker_image_url
env_variables, secrets Работа environment_variables и задачи environment_variables_key.
parameters Файл hyperparameters.yaml рядом со скриптом, на который ссылается command_path. Среда выполнения устанавливает HYPERPARAMETERS_PATH для этого файла.
max_retries У задачи max_retries.
timeout_minutes У задачи timeout_seconds, умножая минуты на 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

Дополнительные ресурсы