Declarative Automation Bundles pour les piles MLOps
Vous pouvez utiliser les Declarative Automation Bundles, le Databricks CLI et le repository Databricks MLOps Stack sur GitHub pour créer des *MLOps Stacks*. Un MLOps Stack est un projet MLOps sur Databricks qui applique d’emblée les bonnes pratiques de production. Consultez Que sont les Declarative Automation Bundles ?.
Ceci montre comment créer, déployer et exécuter un projet de bundle MLOps Stacks.
Exigences
- Assurez-vous que le Workspace distant cible a les fichiers Workspace activés. Consultez Qu'est-ce qu'un fichier de workspace ?.
- Sur votre machine de développement, assurez-vous que la version 0.212.2 ou supérieure de l'interface CLI Databricks est installée. Pour vérifier la version installée de votre CLI Databricks, exécutez la commande
databricks -v. Pour mettre à jour votre version de la CLI Databricks, consultez Installer ou mettre à jour la CLI Databricks. (Les bundles ne fonctionnent pas avec les versions 0.18 et inférieures de la CLI Databricks.)
Étape 1 : Configurez l'authentification
Configurer le Databricks CLI pour l'authentification.
Cet article suppose que vous souhaitez utiliser l'authentification OAuth utilisateur-à-machine (U2M) et un profil de configuration Databricks correspondant nommé DEFAULT pour l'authentification.
L'authentification U2M est appropriée pour essayer ces étapes en temps réel. Pour les workflows entièrement automatisés, Databricks recommande d'utiliser l'authentification OAuth machine à machine (M2M) à la place. Consultez les instructions de configuration de l'authentification M2M dans Autoriser l'accès du service principal à Databricks avec OAuth.
-
Utilisez la CLI Databricks pour initier la gestion locale des jetons OAuth en exécutant la commande suivante pour chaque workspace cible.
Dans la commande suivante, remplacez
<workspace-url>par l'URL de votre instance de workspace Databricks, parhttps://dbc-a1b2345c-d6e7.cloud.databricks.comexemple.Bashdatabricks auth login --host <workspace-url> -
La CLI Databricks vous invite à enregistrer les informations que vous avez saisies en tant que profil de configuration Databricks. Appuyez sur
Enterpour accepter le nom de profil suggéré, ou entrez le nom d’un profil nouveau ou existant. Tout profil existant portant le même nom est écrasé avec les informations que vous avez saisies. Vous pouvez utiliser des profils pour basculer rapidement votre contexte d'authentification entre plusieurs Workspaces.Pour obtenir une liste de tous les profils existants, dans un terminal ou une invite de commande distinct, utilisez la CLI Databricks pour exécuter la commande
databricks auth profiles. Pour consulter les paramètres existants d’un profil spécifique, exécutez la commandedatabricks auth env --profile <profile-name>. -
Dans votre navigateur web, suivez les instructions à l'écran pour vous connecter à votre Databricks Workspace.
-
Pour afficher la valeur actuelle du token OAuth d'un profil et le timestamp d'expiration à venir du token, exécutez l'une des commandes suivantes :
databricks auth token --host <workspace-url>databricks auth token -p <profile-name>databricks auth token --host <workspace-url> -p <profile-name>
Si vous avez plusieurs profils avec la même valeur
--host, vous devrez peut-être spécifier les options--hostet-pensemble pour aider le CLI Databricks à trouver les informations de jeton OAuth correspondantes correctes.
Étape 2 : Créez le projet de bundle
-
Utilisez des templates de bundle pour créer les fichiers de démarrage de votre projet MLOps Stacks. Pour ce faire, commencez par exécuter la commande suivante :
Bashdatabricks bundle init mlops-stacks -
Répondez aux invites à l'écran. Pour obtenir des conseils sur la manière de répondre à ces invites, veuillez consulter Start a new project dans le repository Databricks MLOps Stacks sur GitHub.
Le premier prompt offre la possibilité de configurer les composants de code ML, les composants CI/CD, ou les deux. Cette option simplifie la configuration initiale, car vous pouvez choisir de créer uniquement les composants qui sont immédiatement pertinents. (Pour configurer les autres composants, exécutez à nouveau la commande d'initialisation.) Sélectionnez l'une des options suivantes :
CICD_and_Project(default) - Configurez à la fois le code ML et les composants CI/CD.Project_Only- Configurer uniquement les composants de code ML. Cette option permet aux data scientists de commencer.CICD_Only- Configurez uniquement les composants CI/CD. Cette option est destinée aux ingénieurs ML pour mettre en place l'infrastructure.
Après avoir répondu à toutes les invites à l'écran, le Template crée les fichiers de démarrage de votre projet MLOps Stacks et les ajoute à votre répertoire de travail actuel.
-
Personnalisez les fichiers de démarrage de votre projet de piles MLOps comme vous le souhaitez. Pour ce faire, suivez les directives des fichiers suivants au sein de votre nouveau projet :
Rôle
Objectif
Documents
Première utilisation de ce repository
Comprenez le pipeline de ML et la structure du code dans ce repository.
README.mddata scientist
Commencez à écrire du code ML pour un tout nouveau projet.
<project-name>/README.mddata scientist
Mettre à jour le code ML de production (par exemple, la logique d'entraînement du modèle) pour un projet existant
docs/ml-pull-request.mddata scientist
Modifier les ressources ML du modèle de production (par exemple, les Jobs de formation ou d'inférence de modèles)
<project-name>/resources/README.mdMLOps/DevOps
Configurez le CI/CD pour le projet ML actuel.
docs/mlops-setup.md-
Pour personnaliser les expérimentations, les mappages au sein d'une déclaration d'expérimentation correspondent à la charge utile de la demande de l'opération de création d'expérimentation, telle que définie dans POST /api/2.0/mlflow/experiments/create dans la référence de l'API REST, exprimée au format YAML.
-
Pour la personnalisation des Jobs, les mappages au sein d'une déclaration de Job correspondent à la charge utile de la requête de l'opération de création de Job, telle que définie dans POST /api/2.1/jobs/create dans la référence de l'API REST, exprimée au format YAML.
-
Vous pouvez définir, combiner et remplacer les paramètres des nouveaux clusters de job dans les bundles en utilisant les techniques décrites dans Remplacer avec les paramètres cibles.
-
Pour la personnalisation des modèles, les mappages au sein d'une déclaration de modèle correspondent à la charge utile de la demande de l'opération de création de modèle Unity Catalog telle que définie dans POST /api/2.1/unity-catalog/models dans la référence de l'API REST, exprimée au format YAML.
-
Pour personnaliser les pipelines, les mappings au sein d'une déclaration de pipeline correspondent à la charge utile de la demande de l’opération de création de pipeline telle que définie dans POST /api/2.0/pipelines dans la référence de l’API REST, exprimée au format YAML.
Étape 3 : Valider le projet de bundle
Vérifiez si la configuration du bundle est valide. Pour ce faire, exécutez la CLI Databricks à partir de la racine du projet, où se trouve le databricks.yml, comme suit :
databricks bundle validate
Si un résumé de la configuration du bundle est renvoyé, la validation a réussi. Si des erreurs sont renvoyées, corrigez-les, puis répétez cette étape.
Étape 4 : Déployer le bundle.
Déployez les Ressources et les artefacts du projet vers le Workspace distant souhaité. Pour ce faire, exécutez la CLI Databricks à partir de la racine du projet, où se trouve le databricks.yml, comme suit :
databricks bundle deploy -t <target-name>
Remplacez <target-name> par le nom de la cible souhaitée dans le fichier databricks.yml, par exemple dev, test, staging ou prod.
Étape 5 : Exécuter le bundle déployé.
Les jobs déployés du projet s'exécutent automatiquement selon leur planning prédéfini. Pour exécuter immédiatement un Job déployé, lancez la CLI Databricks depuis la racine du projet, où se trouve le databricks.yml, comme suit :
databricks bundle run -t <target-name> <job-name>
- Remplacez
<target-name>par le nom de la cible souhaitée dans le fichierdatabricks.ymloù le Job a été déployé, par exempledev,test,stagingouprod. - Remplacez
<job-name>par le nom du Job dans l'un des.ymlfichiers de<project-name>/databricks-resources, par exemplebatch_inference_job,write_feature_table_joboumodel_training_job.
Un Link vers le job Databricks apparaît, que vous pouvez copier dans votre navigateur web pour ouvrir le job dans l'interface utilisateur de Databricks.
Étape 6 : Supprimer le bundle déployé (facultatif)
Pour supprimer les ressources et les artefacts d'un projet déployé si vous n'en avez plus besoin, exécutez la CLI Databricks à partir de la racine du projet, où se trouve le databricks.yml, comme suit :
databricks bundle destroy -t <target-name>
Remplacez <target-name> par le nom de la cible souhaitée dans le fichier databricks.yml, par exemple dev, test, staging ou prod.
Répondez aux invites à l'écran pour confirmer la suppression des ressources et artefacts précédemment déployés.