Aller au contenu principal

Convertir une charge de travail AI Runtime en bundle

Convertissez un fichier YAML de charge de travail AI Runtime existant en Declarative Automation Bundles afin de le gérer en tant que job persistant, ajoutez une planification 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 correspondances de champs sur cette page pour le convertir manuellement.

Prérequis​

Convertir un workload automatiquement​

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

  1. Start avec votre code et votre YAML de workload 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:
    type: snapshot
    snapshot:
    root_path: src
    command: python $CODE_SOURCE_PATH/train.py
  2. À partir du répertoire contenant train.yaml, exécutez la conversion :

    Bash
    databricks air convert-to-dabs train.yaml

    La commande crée databricks.yml ainsi qu’un répertoire generated_artifacts/ à côté du fichier YAML. Il traduit la configuration localement. Le bundle upload le code lorsque vous le déployez. Pour connaître les autres Layout de répertoire et options de remplacement, consultez Chemins du convertisseur et fichiers générés.

  3. Validez, déployez et exécutez 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 doté d'une tâche GPU. Pour ajouter une planification et des tâches de prétraitement à databricks.yml, suivez Schedule GPU workloads and compose tasks. Le job déployé persiste entre les exécutions. Utilisez databricks bundle destroy pour le supprimer lorsque vous avez terminé.

Chemins d’accès du convertisseur et fichiers générés​

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

Pour un code source instantané, le répertoire source résolu doit se trouver strictement à l'intérieur du répertoire de sortie du bundle. Avec l'emplacement de sortie default, root_path: . correspond à la racine du bundle et est rejeté. Utilisez soit un sous-répertoire source, tel que src, soit 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 vers /project et package /project/training:

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

--output-dir les modifications là où le bundle est écrit. Il ne copie ni ne déplace le code source. Exécutez les databricks bundle commandes 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. Cela remplace la configuration de bundle générée, y compris toute modification manuelle apportée à ce fichier.

Le convertisseur écrit les fichiers suivants :

  • databricks.yml: la configuration du bundle, comprenant la tâche GPU et l'artefact de code.
  • generated_artifacts/command.sh: le script de commande.
  • generated_artifacts/training_config.yaml: la configuration de la charge de travail.
  • generated_artifacts/hyperparameters.yaml: écrit lorsque parameters est défini.
  • generated_artifacts/env_vars.json et generated_artifacts/secret_env_vars.json: écrit 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. Lorsque hyperparameters.yaml est présent aux côtés de command.sh, l’environnement d’exécution définit HYPERPARAMETERS_PATH sur ce fichier.

Mappez manuellement les champs de charge de travail​

Utilisez les correspondances suivantes lors de la conversion manuelle vers un bundle à partir d'un YAML de charge de travail AI Runtime. Pour une conversion automatique, suivez Convert a workload automatically. Pour les définitions des champs de tâche, consultez la référence des tâches AI 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 à l'aide de 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 faites-y référence avec ai_runtime_task.code_source_path, ou utilisez un chemin de Workspace ou de volume upload.

environment.dependencies

Le 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 aux côtés du script référencé par command_path. L’environnement d’exécution définit HYPERPARAMETERS_PATH sur ce fichier.

max_retries

Élément 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 à l'aide de 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 faites-y référence avec ai_runtime_task.code_source_path, ou utilisez un chemin de Workspace ou de volume upload.

environment.dependencies

Le 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 aux côtés du script référencé par command_path. L’environnement d’exécution définit HYPERPARAMETERS_PATH sur ce fichier.

max_retries

Élément 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​