Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Convertir un YAML de charge d’exécution IA existant en Declarative Automation Bundles pour le gérer comme un travail persistant, ajouter un planning, et le composer 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.
Requirements
- Un fichier YAML de charge de travail existant et son code d’entraînement.
- La dernière CLI Databricks. Mettez à jour une installation existante avant de convertir.
- Pour déployer et exécuter le travail généré, vous avez besoin d’un espace de travail répondant aux exigences AI Runtime et de la CLI authentifiée à celui-ci. Voir Planifier les charges de travail GPU et créer des tâches.
Convertir automatiquement une charge de travail
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.
Commencez par votre fichier YAML existant et votre code. Par exemple,
train.yamlpeut pointer vers un script d’entraînement danssrc/: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.pyDepuis le répertoire contenant
train.yaml, exécutez la conversion :databricks air convert-to-dabs train.yamlLa commande crée les répertoires
databricks.ymletgenerated_artifacts/à côté du YAML. Il traduit la configuration localement. Le bundle téléverse le code lorsque vous le déployez. Pour d’autres dispositions de répertoires et options d’écrasement, voir Chemins de convertisseur et fichiers générés.Validez, déployez et exécutez le job généré :
databricks bundle validate databricks bundle deploy databricks bundle run my-training --no-wait
Le convertisseur crée un travail avec une seule tâche GPU. Pour ajouter une planification et des tâches de prétraitement à databricks.yml, consultez la rubrique Planifier des charges de travail GPU et composer des tâches. Le travail déployé est conservé entre les exécutions. Utilisez databricks bundle destroy pour le supprimer une fois que vous avez terminé.
Chemins de convertisseur et fichiers générés
databricks air convert-to-dabs train.yaml écrit par défaut le bundle dans le répertoire du YAML d’entrée. Il résout un chemin relatif code_source.root_path par rapport au répertoire du YAML.
Pour une source de code, le répertoire source résolu doit se trouver strictement à l’intérieur du répertoire de sortie du bundle. Avec la position de sortie par défaut, root_path: . se résout à la racine du bundle et est rejeté. Soit utilisez un sous-répertoire source, comme src, soit sélectionnez un répertoire de sortie qui contient le répertoire source.
Par exemple, si /project/training/train.yaml utilise /project, la commande suivante écrit le bundle dans /project/training et empaquete root_path: .:
databricks air convert-to-dabs /project/training/train.yaml --output-dir /project
--output-dir modifie l’endroit où le bundle est écrit. Il ne copie pas et ne déplace pas le code source. Exécutez les commandes suivantes databricks bundle depuis le répertoire de sortie.
Si les fichiers générés existent déjà, la conversion s’arrête. Utilisez --force pour les écraser. Cela remplace la configuration du bundle généré, y compris les modifications manuelles de ce fichier.
Le convertisseur écrit les fichiers suivants :
-
databricks.yml: la configuration du bundle, incluant 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 quandparametersest défini. -
generated_artifacts/env_vars.jsonetgenerated_artifacts/secret_env_vars.json: créés lorsque des variables d’environnement ou des secrets sont définis.
Gardez les fichiers générés ensemble. Le bundle les téléverse lors du déploiement. Lorsque hyperparameters.yaml est présent à côté de command.sh, le runtime définit HYPERPARAMETERS_PATH sur le chemin de ce fichier.
Associez manuellement les champs de charge de travail
Utilisez les mappages suivants lors de la conversion manuelle vers un bundle depuis un YAML de charge de travail AI Runtime. Pour la conversion automatique, suivez Convertir une charge de travail automatiquement. Pour les définitions des champs de tâche, voir la référence des tâches AI Runtime.
| Champ YAML de charge de travail | Paramètre du bundle |
|---|---|
experiment_name |
ai_runtime_task.experiment |
command |
Déplacez la commande dans un script shell et faites-y référence 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 |
Emballez le code avec un artefact tgz et référencez-le avec ai_runtime_task.code_source_path, ou utilisez un espace de travail téléversé ou un chemin de volume. |
environment.dependencies |
Le environments[].spec.dependencies du travail. |
environment.version |
environments[].spec.environment_version pour un environnement standard, ou environments[].spec.base_environment pour un environnement IA Databricks. |
environment.docker_image.url |
ai_runtime_task.docker_image_url |
env_variables, secrets |
Le environment_variables du travail et le environment_variables_key de la tâche. |
parameters |
Un hyperparameters.yaml fichier à côté du script référencé par command_path. Le runtime définit HYPERPARAMETERS_PATH sur le chemin de ce fichier. |
max_retries |
Le 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 |