Configurer des tâches de bundle AI Runtime
Utilisez cette référence pour personnaliser un ai_runtime_task dans les Declarative Automation Bundles. Pour des exemples exécutables qui planifient une charge de travail GPU et ajoutent des tâches de prétraitement, start Planifier des charges de travail GPU et composer des tâches.
Pour les champs de tâche et leurs définitions, consultez la référence de tâche AI Runtime. Définissez les réessais, les délais d'expiration, les autorisations et environment_key sur la tâche ou le job associé.
Expédiez votre code d’entraînement
Le bundle synchronise des fichiers comme command.sh lors du déploiement. Un workload de type commande uniquement peut pointer command_path sur ${workspace.file_path}/command.sh et omettre code_source_path.
Pour un répertoire séparé de code d'entraînement, définissez code_source_path sur un artefact package ou sur un chemin de Workspace ou de volume.
Package un répertoire local
Déclarez un artefact tgz pour package votre code sur databricks bundle deploy. Ce fragment de configuration package src/ et indique à la tâche d'utiliser l'archive résultante :
artifacts:
code:
type: tgz
path: .
include: [src]
files:
- source: ./dist/code.tgz
resources:
jobs:
train:
tasks:
- task_key: train
ai_runtime_task:
code_source_path: ./dist/code.tgz
Le runtime extrait l’archive et définit CODE_SOURCE_PATH sur son répertoire de code de niveau supérieur. Avec path: . et include: [src], l’archive contient src/train.py et CODE_SOURCE_PATH est /databricks/code_source/src. Après avoir changé de répertoire, exécutez python train.py:
#!/usr/bin/env bash
set -euo pipefail
cd "$CODE_SOURCE_PATH"
python train.py
Pour les paramètres d’artefact, y compris path, include, git et files, consultez la référence des artefacts de bundle.
Utiliser le code upload
Définissez code_source_path sur un chemin d’accès /Workspace/… ou /Volumes/… pour une archive de code qui est déjà upload. Le bundle utilise ce chemin sans emballer votre répertoire local.
Configurer le compute et les environnements
Réglez accelerator_count sur un multiple des GPU par nœud codés dans accelerator_type. Par exemple, GPU_8xH100 avec accelerator_count: 16 s’exécute sur deux nœuds. Voir Options de matériel pour obtenir des conseils sur le matériel.
Pour une charge de travail à nœuds multiples, AI Runtime exécute la commande sur chaque nœud. L’environnement de tâche inclut NUM_NODES, WORLD_SIZE, LOCAL_WORLD_SIZE, MASTER_ADDR et MASTER_PORT. Lisez ces variables dans votre commande d'entraînement distribué.
Déclarez les dépendances dans le bloc environments du job, et sélectionnez l’environnement avec le environment_key de la tâche. Le fragment de configuration suivant installe PyTorch dans l’environnement de formation :
resources:
jobs:
train:
tasks:
- task_key: train
environment_key: training
environments:
- environment_key: training
spec:
environment_version: '6'
dependencies:
- torch
Utilisez environment_version pour un environnement standard. Pour utiliser un environnement Databricks AI, définissez plutôt base_environment, par exemple workspace-base-environments/databricks_ai_v6. Voir Configurer votre environnement.
Pour une image Docker personnalisée, définissez docker_image_url sur ai_runtime_task et suivez Utiliser des images Docker personnalisées avec la Python CLI héritée.
Transmettre la configuration et les données aux tâches
Définissez une entrée environment_variables au niveau du job et sélectionnez-la avec le environment_variables_key de la tâche. Placez les valeurs brutes dans variables et utilisez {{secrets/scope/key}} pour les références secrètes. Cette configuration nécessite l'aperçu des variables d'environnement décrit dans Configurer les variables d'environnement pour les jobs serverless.
Pour transmettre des paramètres via HYPERPARAMETERS_PATH, enregistrez un fichier hyperparameters.yaml parallèlement au script référencé par command_path. Le bundle synchronise les deux fichiers et le runtime définit HYPERPARAMETERS_PATH sur le fichier de parameter pour votre commande d’entraînement. Pour convertir un fichier YAML de charge de travail existant, consultez Convertir une charge de travail AI Runtime en bundle.
Un ai_runtime_task ne prend pas en charge les valeurs de tâche de job ({{tasks.<task_key>.values.<name>}} ou dbutils.jobs.taskValues). Pour transmettre des données entre les tâches, écrivez-les dans un emplacement partagé, comme un volume Unity Catalog, et utilisez le même chemin d'accès dans les deux tâches.