Aller au contenu principal

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.

remarque

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.

  1. 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, par https://dbc-a1b2345c-d6e7.cloud.databricks.com exemple.

    Bash
    databricks auth login --host <workspace-url>
  2. La CLI Databricks vous invite à enregistrer les informations que vous avez saisies en tant que profil de configuration Databricks. Appuyez sur Enter pour 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 commande databricks auth env --profile <profile-name>.

  3. Dans votre navigateur web, suivez les instructions à l'écran pour vous connecter à votre Databricks Workspace.

  4. 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 --host et -p ensemble pour aider le CLI Databricks à trouver les informations de jeton OAuth correspondantes correctes.

Étape 2 : Créez le projet de bundle

  1. 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 :

    Bash
    databricks bundle init mlops-stacks
  2. 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.

  3. 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.md

    data scientist

    Commencez à écrire du code ML pour un tout nouveau projet.

    <project-name>/README.md

    data 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.md

    data 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.md

    MLOps/DevOps

    Configurez le CI/CD pour le projet ML actuel.

    docs/mlops-setup.md

    Rôle

    Objectif

    Documents

    Première utilisation de ce repository

    Comprenez le pipeline de ML et la structure du code dans ce repository.

    README.md

    data scientist

    Commencez à écrire du code ML pour un tout nouveau projet.

    <project-name>/README.md

    data 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.md

    data 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.md

    MLOps/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.

astuce

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 :

Bash
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 :

Bash
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 :

Bash
databricks bundle run -t <target-name> <job-name>
  • Remplacez <target-name> par le nom de la cible souhaitée dans le fichier databricks.yml où le Job a été déployé, par exemple dev, test, staging ou prod.
  • Remplacez <job-name> par le nom du Job dans l'un des .yml fichiers de <project-name>/databricks-resources, par exemple batch_inference_job, write_feature_table_job ou model_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 :

Bash
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.