Aller au contenu principal

Configurer les tâches de bundle AI Runtime

Utilisez cette référence pour personnaliser un ai_runtime_task dans Declarative Automation Bundles. Pour obtenir des exemples exécutables qui planifient une charge de travail GPU et ajoutent des tâches de prétraitement, start par Planifier des charges de travail GPU et composer des tâches.

Pour en savoir plus sur les champs de tâche et leurs définitions, consultez la référence des tâches AI Runtime. Définissez les nouvelles tentatives, les délais d’expiration, les autorisations et environment_key sur la tâche ou le job environnant.

Expédier votre code d’entraînement​

Le bundle synchronise des fichiers tels que command.sh lors du déploiement. Une charge de travail composée uniquement de commandes peut pointer command_path vers ${workspace.file_path}/command.sh et omettre code_source_path.

Pour un répertoire distinct de code d'entraînement, définissez code_source_path sur un artefact empaqueté 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 pointe la tâche vers l’archive résultante :

YAML
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 premier niveau. 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:

Bash
#!/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 /Workspace/… ou /Volumes/… pour une archive de code déjà upload. Le bundle utilise ce chemin sans empaqueter votre répertoire local.

Configurer le compute et les environnements​

Définissez accelerator_count sur un multiple des GPU par nœud encodés dans accelerator_type. Par exemple, GPU_8xH100 avec accelerator_count: 16 s’exécute sur deux nœuds. Consultez Options matérielles 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 comprend NUM_NODES, WORLD_SIZE, LOCAL_WORLD_SIZE, MASTER_ADDR et MASTER_PORT. Lisez ces variables dans votre commande de formation distribuée.

Déclarez les dépendances dans le bloc environments du job et sélectionnez l’environnement avec environment_key de la tâche. Le fragment de configuration suivant installe PyTorch dans l’environnement d’entraînement :

YAML
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 l’ancienne CLI Python.

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 environment_variables_key de la tâche. Placez les valeurs en clair dans variables et utilisez {{secrets/scope/key}} pour les références de secret. Cette configuration nécessite la version préliminaire des variables d’environnement décrite dans la section Configurer des variables d’environnement pour les jobs serverless.

Pour transmettre des paramètres via HYPERPARAMETERS_PATH, enregistrez un fichier hyperparameters.yaml à côté du 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 de votre commande d'entraînement. Pour la conversion à partir d'un fichier YAML de workload existant, consultez Convertir un workload de Runtime IA en un bundle.

remarque

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 transférer des données entre des tâches, écrivez-les dans un emplacement partagé, tel qu’un volume Unity Catalog, et utilisez le même chemin d’accès dans les deux tâches.

Ressources supplémentaires​