Aller au contenu principal

Convertir une charge de travail AI Runtime en bundle

Convertissez un YAML de workload d'AI Runtime existant en Declarative Automation Bundles pour le gérer en tant que job persistant, ajoutez un planning et composez-le avec des tâches de prétraitement. Utilisez databricks air convert-to-dabs pour générer le bundle, ou utilisez les mappages de champs sur cette page pour le convertir manuellement.

Configuration requise​

Convertir un workload automatiquement​

Si vous exécutez déjà une charge de travail avec databricks air run --file train.yaml, convertissez son YAML de charge de travail avec databricks air convert-to-dabs.

  1. Start avec votre YAML de workload et votre code existants. Par exemple, train.yaml peut pointer vers un script d’entraînement dans 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. Depuis le répertoire contenant train.yaml, lancez la conversion :

    Bash
    databricks air convert-to-dabs train.yaml

    La commande crée databricks.yml et un répertoire generated_artifacts/ à côté du YAML. Il traduit la configuration localement. Le bundle upload le code lorsque vous le déployez. Pour d’autres Layout de répertoire et options de remplacement, consultez Convertir des chemins et des fichiers générés.

  3. Valider, déployer et exécuter le job généré :

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

Le convertisseur crée un job avec une tâche GPU. Pour ajouter un calendrier et des tâches de prétraitement à databricks.yml, suivez Planifier des charges de travail GPU et composer des tâches. Le job déployé persiste entre les exécutions. Utilisez databricks bundle destroy pour le supprimer lorsque vous avez terminé.

Chemins de convertisseur et fichiers générés​

databricks air convert-to-dabs train.yaml écrit le bundle dans le répertoire YAML d'entrée default. Il résout un code_source.root_path relatif par rapport au répertoire du YAML.

Pour un code source, le répertoire source résolu doit être strictement à l’intérieur du répertoire de sortie du bundle. Avec l’emplacement de sortie par default, root_path: . est résolu en tant que racine du bundle et est rejeté. Utilisez un sous-répertoire source, tel que src, ou sélectionnez un répertoire de sortie qui contient le répertoire source.

Par exemple, si /project/training/train.yaml utilise root_path: ., la commande suivante écrit le bundle dans /project et package /project/training:

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

--output-dir modifications de l’emplacement où le bundle est écrit. Il ne copie pas ni ne déplace le code source. Exécutez les commandes databricks bundle suivantes à partir du répertoire de sortie.

Si les fichiers générés existent déjà, la conversion s'arrête. Utilisez --force pour les remplacer. Ceci remplace la configuration de bundle générée, y compris les modifications manuelles apportées à ce fichier.

Le convertisseur écrit les fichiers suivants :

  • databricks.yml: la configuration du bundle, y compris la tâche GPU et l'artefact de code.
  • generated_artifacts/command.sh: le script de commande.
  • generated_artifacts/training_config.yaml: la configuration du workload.
  • generated_artifacts/hyperparameters.yaml: écrit lorsque parameters est défini.
  • generated_artifacts/env_vars.json et generated_artifacts/secret_env_vars.json: écrits lorsque des variables d’environnement ou des secrets sont définis.

Gardez les fichiers générés ensemble. Le bundle les upload lors du déploiement. Quand hyperparameters.yaml est présent à côté de command.sh, le runtime définit HYPERPARAMETERS_PATH sur ce fichier.

Mappez les champs de charge de travail manuellement​

Utilisez les mappages suivants lorsque vous convertissez manuellement une charge de travail en bundle à partir d’un YAML de charge de travail AI Runtime. Pour une conversion automatique, suivez Convertir une charge de travail automatiquement. Pour les définitions des champs des tâches, consultez la référence des tâches de l’IA Runtime.

Champ YAML de Workload

Paramètre de bundle

experiment_name

ai_runtime_task.experiment

command

Déplacez la commande dans un script shell et référencez-la avec 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

Packagez le code avec un artefact tgz et référez-le avec ai_runtime_task.code_source_path, ou utilisez un chemin d’accès vers un Workspace ou un volume déjà upload.

environment.dependencies

environments[].spec.dependencies du job.

environment.version

environments[].spec.environment_version pour un environnement standard, ou environments[].spec.base_environment pour un environnement Databricks AI.

environment.docker_image.url

ai_runtime_task.docker_image_url

env_variables, secrets

Le environment_variables du job et le environment_variables_key de la tâche.

parameters

Un fichier hyperparameters.yaml à côté du script référencé par command_path. Le runtime définit HYPERPARAMETERS_PATH pour ce fichier.

max_retries

max_retries de la tâche.

timeout_minutes

Le timeout_seconds de la tâche, en multipliant les minutes par 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

Champ YAML de Workload

Paramètre de bundle

experiment_name

ai_runtime_task.experiment

command

Déplacez la commande dans un script shell et référencez-la avec 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

Packagez le code avec un artefact tgz et référez-le avec ai_runtime_task.code_source_path, ou utilisez un chemin d’accès vers un Workspace ou un volume déjà upload.

environment.dependencies

environments[].spec.dependencies du job.

environment.version

environments[].spec.environment_version pour un environnement standard, ou environments[].spec.base_environment pour un environnement Databricks AI.

environment.docker_image.url

ai_runtime_task.docker_image_url

env_variables, secrets

Le environment_variables du job et le environment_variables_key de la tâche.

parameters

Un fichier hyperparameters.yaml à côté du script référencé par command_path. Le runtime définit HYPERPARAMETERS_PATH pour ce fichier.

max_retries

max_retries de la tâche.

timeout_minutes

Le timeout_seconds de la tâche, en multipliant les minutes par 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

Ressources supplémentaires​