Convierte una carga de trabajo de AI Runtime en un paquete

Convierte un YAML de carga de trabajo de IA en tiempo de ejecución existente en Declarative Automation Bundles para gestionarlo como un trabajo persistente, añadir un horario y componerlo con tareas de preprocesamiento. Usa databricks air convert-to-dabs para generar el paquete, o utiliza los mapeos de campos de esta página para convertirlo manualmente.

Requirements

Convertir automáticamente una carga de trabajo

Si ya ejecutas una carga de trabajo con databricks air run --file train.yaml, convierte su YAML de la carga de trabajo con databricks air convert-to-dabs.

  1. Empieza con tu carga de trabajo actual, YAML y código. Por ejemplo, train.yaml puede apuntar a un script de entrenamiento en 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. Desde el directorio que contiene train.yaml, ejecuta la conversión:

    databricks air convert-to-dabs train.yaml
    

    El comando crea databricks.yml y un directorio generated_artifacts/ junto al YAML. Traduce la configuración localmente. El paquete sube el código cuando lo despliegas. Para otros diseños de directorios y opciones de sobrescritura, consulta Rutas de conversión y archivos generados.

  3. Validar, desplegar y ejecutar el trabajo generado:

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

El convertidor crea un trabajo con una tarea de la GPU. Para añadir una programación y tareas de preprocesamiento a databricks.yml, sigue Programar cargas de trabajo de GPU y componer tareas. El trabajo desplegado persiste entre ejecuciones. Usa databricks bundle destroy para quitarlo cuando termines.

Rutas de convertidores y archivos generados

databricks air convert-to-dabs train.yaml escribe el paquete en el directorio del archivo YAML de entrada por defecto. Resuelve una ruta relativa code_source.root_path con respecto al directorio del archivo YAML.

Para un origen de código, el directorio fuente resuelto debe estar estrictamente dentro del directorio de salida del paquete. Con la ubicación de salida predeterminada, root_path: . se resuelve a la raíz del paquete y es rechazado. Utiliza un subdirectorio fuente, como src, o selecciona un directorio de salida que contenga el directorio fuente.

Por ejemplo, si /project/training/train.yaml usa root_path: ., el siguiente comando escribe el paquete en /project y empaqueta /project/training:

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

--output-dir cambia dónde se escribe el bundle. No copia ni mueve el código fuente. Ejecuta los comandos siguientes databricks bundle desde el directorio de salida.

Si ya existen archivos generados, la conversión se detiene. Usa --force para sobrescribirlos. Esto reemplaza la configuración del paquete generado, incluyendo cualquier edición manual en ese archivo.

El convertidor escribe los siguientes archivos:

  • databricks.yml: la configuración del paquete, incluyendo la tarea de la GPU y el artefacto de código.
  • generated_artifacts/command.sh: el script de comandos.
  • generated_artifacts/training_config.yaml: la configuración de la carga de trabajo.
  • generated_artifacts/hyperparameters.yaml: escrito cuando parameters está fijado.
  • generated_artifacts/env_vars.json y generated_artifacts/secret_env_vars.json: se escriben cuando se establecen variables de entorno o secretos.

Mantén juntos los archivos generados. El paquete los sube durante el despliegue. Cuando hyperparameters.yaml está presente junto a command.sh, el entorno de ejecución establece HYPERPARAMETERS_PATH en ese archivo.

Mapear manualmente los campos de carga de trabajo

Utiliza los siguientes mapeos al convertir manualmente a un paquete desde un YAML de carga de trabajo de AI Runtime. Para la conversión automática, sigue Convierte una carga de trabajo automáticamente. Para definiciones de campos de tarea, consulte la referencia de tareas de AI Runtime.

campo YAML de carga de trabajo Configuración de paquete
experiment_name ai_runtime_task.experiment
command Mueve el comando a un script de shell y haz referencia a él con 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 Empaqueta el código con un tgz artefacto y haz referencia con ai_runtime_task.code_source_path, o utiliza una ruta de espacio de trabajo o volumen subido.
environment.dependencies El trabajo está environments[].spec.dependencies.
environment.version environments[].spec.environment_version para un entorno Estándar, o environments[].spec.base_environment para un entorno de IA Databricks.
environment.docker_image.url ai_runtime_task.docker_image_url
env_variables, secrets El environment_variables del trabajo y el environment_variables_key de la tarea.
parameters Un hyperparameters.yaml archivo junto al script referenciado por command_path. El entorno de ejecución establece HYPERPARAMETERS_PATH a este archivo.
max_retries El max_retries de la tarea.
timeout_minutes La tarea de timeout_seconds, multiplicando los 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 adicionales