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.
Important
Cette fonctionnalité est disponible en préversion publique.
Remarque
Les travaux de déploiement n’ont pas besoin d’être utilisés avec les clients MLflow 3 ou le suivi des modèles, et peuvent être activés sur des modèles anciens et existants dans le catalogue Unity. Toutefois, il est recommandé d’utiliser MLflow 3.
Cet article explique comment utiliser des travaux de déploiement MLflow dans le cadre de votre flux de travail Machine Learning pour gérer le cycle de vie complet des modèles ML.
Qu’est-ce que les travaux de déploiement ?
Les travaux de déploiement vous permettent d’automatiser des tâches telles que l’évaluation, l’approbation et le déploiement chaque fois qu’une nouvelle version de modèle est créée, en intégrant en toute transparence les modèles de catalogue Unity et les travaux Lakeflow. Ces tâches simplifient la configuration des pipelines de déploiement de modèles, intègrent des approbations impliquant des humains et fournissent des flux de travail régis avec une visibilité claire sur la progression et le contexte chronologique de chaque version de modèle.
Avec les travaux de déploiement, le processus est entièrement automatisé ; ils se déclenchent automatiquement chaque fois qu’une nouvelle version de modèle est créée, affichant l’état d’exécution du travail de déploiement directement sur les pages de version du modèle et du modèle. Les informations historiques sur chaque exécution du travail de déploiement sont facilement suivies dans le journal d’activité, ce qui garantit la transparence et la facilité de gestion.
Intégration à MLflow 3 Model Tracking
Databricks recommande d’utiliser le suivi MLflow 3 pour inscrire des modèles et effectuer une évaluation dans le travail de déploiement. Le nouveau client journalise automatiquement les métriques à partir de la partie d’évaluation du travail de déploiement, qui sera visible dans l’interface utilisateur de la version du modèle catalogue Unity. Cela permet aux utilisateurs d’utiliser les métriques, paramètres et traces centralisés sur la page de version du modèle pour prendre des décisions éclairées sur la progression du modèle dans le cycle de vie des travaux de déploiement.
Intégration avec Unity Catalog : CRÉER UNE VERSION DE MODÈLE ACL
Les tâches de déploiement s'intègrent naturellement à l'ACL de création de version de modèle du Catalogue Unity nouvellement publiée pour compléter votre stratégie MLOps. Plus précisément, un utilisateur peut se voir attribuer la permission CREATE MODEL VERSION ACL pour enregistrer de nouvelles versions du modèle. Une fois que l’utilisateur estime qu’un modèle est suffisant pour la production, il inscrit cette version dans le modèle catalogue Unity, ce qui lance le travail de déploiement pour évaluer automatiquement le modèle. À ce stade, un approbateur peut approuver manuellement cette version pour être déployée ou la rejeter.
Important
Le travail de déploiement se déclenche automatiquement à l’aide des informations d’identification du propriétaire du modèle. Cela signifie que l’octroi d’une autorisation utilisateur CREATE MODEL VERSION sur le modèle catalogue Unity permet à l’utilisateur d’exécuter du code arbitraire dans le cadre du travail. Pour cette raison, Databricks vous recommande de configurer le travail de déploiement à l’aide d’un principal de service avec des autorisations minimales pour empêcher l’escalade des privilèges.
Exemples de travaux de déploiement
Voici quelques exemples de travaux de déploiement qui reflètent les cas d’usage courants. Notez qu’il ne s’agit que d’exemples et peut être personnalisé si nécessaire.
Un exemple simple de travail de déploiement se compose de 3 étapes : évaluation, approbation et déploiement. Appels d’évaluation mlflow.evaluate pour produire des métriques de validation sur la version du modèle entrée. L’approbation permet à un utilisateur privilégié de déterminer si ces métriques sont satisfaisantes et, le cas échéant, approuver le modèle. Enfin, Deployment déploie la version du modèle sur un point de terminaison Databricks Model Serving.
L'image ci-dessous montre les tâches Lakeflow qui composent cette tâche de déploiement simple, comprenant des tâches d'évaluation, d'approbation et de déploiement.
Vous pouvez également créer un travail de déploiement plus complexe. Par exemple, vous pouvez effectuer un déploiement intermédiaire avec une étape de collecte de métriques dans le cadre du flux de travail. Pour créer ce travail de déploiement, vous pouvez ajouter des tâches supplémentaires après la tâche d’approbation pour déployer le modèle sur 1%, déployer le modèle sur 10%, collecter et vérifier les métriques, décider s’il faut continuer ou restaurer, et enfin déployer le modèle sur 100% ou restaurer le modèle. L’image ci-dessous montre ce que peut ressembler ce travail de déploiement plus complexe :
Créer une tâche de déploiement
Les travaux de déploiement vous permettent de gérer le cycle de vie d’une version de modèle. Pour utiliser des travaux de déploiement, vous avez d’abord besoin de versions de modèle créées dans un modèle inscrit. Consultez les notebooks d'exemples de MLflow 3 pour des approches recommandées pour l'apprentissage et l'enregistrement des modèles.
Databricks recommande de définir le champ Exécuter en tant que sur un principal de service avec des permissions minimales. De plus, pour la tâche d’approbation, Databricks vous recommande de désactiver les nouvelles tentatives , car la tâche est censée échouer au début. Cela empêche une attente plus longue et plusieurs logs d’erreurs enregistrés.
Un travail de déploiement doit avoir deux paramètres de travail : model_name et model_version. Databricks recommande également de définir le nombre maximal d'exécutions simultanées sur 1 (valeur par défaut) pour éviter les conflits de déploiement.
Il existe deux façons de créer un travail de déploiement : par programmation à l’aide d’un notebook de déploiement ou à l’aide de l’interface utilisateur. Dans les deux cas, vous devez fournir chacune de vos tâches en tant que bloc-notes.
Créer une tâche de déploiement de manière programmatique à l'aide d'un bloc-notes (recommandé)
Il est recommandé d'utiliser un notebook de déploiement pour créer le travail de déploiement de manière programmatique, car il utilise le SDK Databricks. Ainsi, toutes les configurations se font facilement, la source de vérité étant dans le code. Cette méthode vous permet également de déployer facilement plusieurs travaux et d’autres ressources sur plusieurs espaces de travail.
Pour obtenir les instructions ci-dessous, un exemple simple de modèle est utilisé pour configurer le travail de déploiement avec des tâches d’évaluation, d’approbation et de déploiement de base.
- Créez et inscrivez un modèle de catalogue Unity. Par exemple, consultez l’exemple de flux de travail ML traditionnel MLflow 3 .
- Créez un notebook qui définit la tâche d’évaluation. Par exemple, importez le bloc-notes d’évaluation pour ml classique pour évaluer le modèle créé à partir de l’exemple ML traditionnel . Le notebook d’évaluation pour GenAI fournit un exemple d’évaluation d’un modèle externe GenAI. Mettez à jour les éléments OBLIGATOIREs si nécessaire. Pour d’autres modèles, utilisez ce notebook comme modèle et personnalisez-le pour évaluer votre modèle selon les besoins de votre cas unique.
- Créez un notebook qui définit la tâche d’approbation. Par exemple, importez le bloc-notes d’approbation dans votre espace de travail. Pour plus d’informations sur le fonctionnement de ce notebook, consultez la section Approbations . Vous pouvez également utiliser ce notebook comme modèle et le mettre à jour pour répondre à vos besoins.
- Créez un notebook qui définit la tâche de déploiement. Par exemple, importez le bloc-notes de déploiement ci-dessous dans votre espace de travail. Vous pouvez également utiliser ce notebook comme modèle et le mettre à jour pour répondre à vos besoins.
- Créez un bloc-notes qui crée et orchestre la tâche de déploiement. Par exemple, importez le carnet de déploiement dans votre environnement de travail. Ce bloc-notes crée la tâche Databricks qui devient la tâche de déploiement. Veillez à mettre à jour les éléments OBLIGATOIREs dans le notebook pour définir correctement votre travail, à l’aide de votre modèle catalogue Unity et des tâches appropriées. Vous pouvez également utiliser ce notebook comme modèle et le mettre à jour pour répondre à vos besoins. Par exemple, vous pouvez inclure davantage de tâches si vous avez un plan de déploiement plus complexe.
- Exécutez le bloc-notes de tâche de déploiement pour créer votre tâche de déploiement.
Créer un travail de déploiement à l’aide de l’interface utilisateur travaux
Les travaux peuvent également être créés à l’aide de l’interface utilisateur, au lieu d’utiliser le Kit de développement logiciel (SDK) dans le modèle ci-dessus. Toutefois, pour chaque tâche de bloc-notes, les blocs-notes doivent toujours être créés manuellement et enregistrés quelque part dans votre espace de travail. Pour le modèle d’instructions, un flux de travail de déploiement simple, avec des tâches d’évaluation, d’approbation et de déploiement, est supposé. Personnalisez les instructions en ajoutant d’autres tâches si vous disposez d’un workflow de déploiement plus complexe.
Créez et inscrivez un modèle de catalogue Unity. Par exemple, consultez l’exemple de flux de travail ML traditionnel MLflow 3 .
Créez un notebook qui définit la tâche d’évaluation. Par exemple, importez le bloc-notes d’évaluation pour ml classique pour évaluer le modèle créé à partir de l’exemple ML traditionnel . Le notebook d’évaluation pour GenAI fournit un exemple d’évaluation d’un modèle externe GenAI. Mettez à jour les éléments OBLIGATOIREs si nécessaire. Pour d’autres modèles, utilisez ce notebook comme modèle et personnalisez-le pour évaluer votre modèle selon les besoins de votre cas unique.
Créez un notebook qui définit la tâche d’approbation. Par exemple, importez le bloc-notes d’approbation dans votre espace de travail. Pour plus d’informations sur le fonctionnement de ce notebook, consultez la section Approbations . Vous pouvez également utiliser ce notebook comme modèle et le mettre à jour pour répondre à vos besoins.
Créez un notebook qui définit la tâche de déploiement. Par exemple, importez le bloc-notes de déploiement ci-dessous dans votre espace de travail. Vous pouvez également utiliser ce notebook comme modèle et le mettre à jour pour répondre à vos besoins.
Créez la tâche de déploiement dans l'interface des tâches Lakeflow :
Dans le volet de navigation gauche, cliquez sur + Nouveau > travail pour créer un travail.
Configurez chaque tâche. Par exemple, pour la tâche de déploiement :
- Nom de la tâche : Déploiement
- Type : Ordinateur portable
- Source : Espace de travail
- Chemin d'accès :
/Workspace/Users/<user.name@email.com>/deployment - Calcul : sans serveur
Pour plus d’informations sur la configuration, consultez Tâches bloc-notes pour les tâches.
Une fois que vous avez terminé de créer chaque tâche, ajoutez vos paramètres de travail. Dans le volet droit, cliquez sur Modifier les paramètres. Ajoutez
model_nameetmodel_version.- Remarque : Une erreur courante consiste à ajouter ces paramètres en tant que paramètres au niveau des tâches. Veillez à les ajouter en tant que paramètres de niveau d'emploien utilisant le panneau de droite.
Voici un exemple de création du travail de modèle ci-dessus à l’aide de l’interface utilisateur :
Connecter le travail de déploiement à un modèle
Après avoir créé le modèle de catalogue Unity et la tâche de déploiement, vous devez connecter la tâche au modèle en tant que tâche de déploiement. Vous pouvez utiliser l’interface utilisateur ou le faire par programmation dans le notebook de déploiement.
Une fois qu’une tâche de déploiement a été connectée à un modèle, elle est liée sur la page du modèle.
Connecter le travail de déploiement à un modèle à l’aide de l’interface utilisateur
Dans la page du modèle, sous l’onglet Vue d’ensemble , sous Tâche de déploiement, cliquez sur Connecter le travail de déploiement.
Sélectionnez votre travail de déploiement dans la liste déroulante. Vous pouvez également utiliser la barre de recherche pour rechercher des travaux par leur nom ou leur ID. Cliquez sur Save changes.
Connecter le travail de déploiement à un modèle à l’aide du client MLflow
La principale façon de connecter le travail de déploiement par programmation consiste à utiliser le client MLflow. Pour ce faire, vous pouvez le faire lorsque vous créez un modèle inscrit en appelant client.create_registered_model(model_name, deployment_job_id=<your-created-job-id>)ou lorsque vous mettez à jour un modèle inscrit en appelant client.update_registered_model(model_name, deployment_job_id=<your-created-job-id>).
La principale façon de déconnecter le travail de déploiement par programmation est également d’utiliser le client MLflow. Pour ce faire, spécifiez une chaîne "" vide et appelez la mise à jour avec celle-ci (par exemple). client.update_registered_model(model_name, deployment_job_id="")
Utilisez du code similaire à ce qui suit dans votre bloc-notes de déploiement :
import mlflow
from mlflow.tracking.client import MlflowClient
client = MlflowClient(registry_uri="databricks-uc")
# model_name specifies the location of a model in Unity Catalog
# model_name should be in the format <catalog>.<schema>.<model>
try:
if client.get_registered_model(model_name):
client.update_registered_model(model_name, deployment_job_id=created_job.job_id)
except mlflow.exceptions.RestException:
client.create_registered_model(model_name, deployment_job_id=created_job.job_id)
Autorisations requises
Les autorisations suivantes sont requises pour connecter et déclencher des travaux de déploiement :
- GÉRER ou PROPRIÉTAIRE sur le modèle pour connecter la tâche de déploiement
- Le propriétaire du modèle doit disposer d'autorisations CAN MANAGE RUN ou supérieures sur la tâche de déploiement pour établir la connexion.
- REMARQUE : Ce champ de travail de déploiement peut également être mis à jour sur le modèle par une personne disposant d’autorisations MANAGE ou supérieures. Dans ce cas, le responsable de la mise à jour et le propriétaire du modèle doivent disposer des autorisations CAN MANAGE RUN ou supérieures sur le travail de déploiement pour le connecter.
Déclencher la tâche de déploiement
Le travail de déploiement est automatiquement déclenché sur toutes les nouvelles versions de modèle créées, et il peut également être déclenché manuellement sur les versions existantes et précédemment déployées sur la page de version du modèle en cliquant sur Démarrer le travail de déploiement.
Le travail peut également être déclenché directement à partir de l’interface utilisateur de travaux ou de l’API. Le nom et la version appropriés du modèle doivent être spécifiés dans les paramètres du travail.
Autorisations requises
Les autorisations suivantes sont requises pour déclencher des travaux de déploiement :
- Pour déclencher ou réparer manuellement la tâche de déploiement à l'aide de l'interface utilisateur de version du modèle, l'utilisateur doit avoir des autorisations ACL PEUT GÉRER L'EXÉCUTION ou supérieures sur la tâche de déploiement (les mêmes ACL nécessaires pour déclencher une tâche à l'aide de l'interface utilisateur des tâches).
- Étant donné que le travail se déclenche automatiquement lorsqu’une nouvelle version est créée et utilise les informations d’identification du propriétaire du modèle, le propriétaire du modèle doit avoir CAN MANAGE RUN ou des ACL ultérieures sur le travail de déploiement.
Approuver la tâche de déploiement (expérimental)
Databricks fournit un mécanisme d’approbation expérimental pour les tâches de déploiement, ce qui permet un processus humain dans la boucle pour les pipelines ML. Une fois qu’un travail de déploiement a été déclenché, les métriques de l’exécution d’évaluation s’affichent sur la page de version du modèle. Après avoir examiné ces métriques, un approbateur peut approuver la version du modèle dans l’interface utilisateur en cliquant sur Approuver. Cette fonctionnalité utilise des balises de catalogue Unity pour déterminer si la tâche d’approbation doit réussir ou échouer. Les tâches d’approbation sont identifiées par les noms de tâches commençant par « approbation » (sans distinction de casse) et sont validées lorsque la balise du catalogue Unity est définie sur Approved (soit en cliquant sur le bouton Approbation dans l'interface utilisateur, soit en les définissant manuellement).
Voici comment fonctionne le processus d’approbation :
- Exécution initiale : la première exécution du travail de déploiement échoue toujours sur une tâche d’approbation, car la version du modèle n’a pas encore été approuvée et n’a donc pas la balise de catalogue Unity requise.
- Évaluation de l’approbation : l’approbateur examine la version du modèle et ses métriques d’évaluation, qui sont affichées sur la page de version du modèle. Cela permet à l’approbateur d’évaluer la qualité et la préparation de la version du modèle.
- Action d’approbation : si l’approbateur estime que la version du modèle est satisfaisante, ils cliquent sur le bouton Approuver dans la section de la barre latérale du travail de déploiement dans la page version du modèle.
Cette action répare automatiquement l’exécution de la tâche et ajoute une balise de catalogue Unity à la version du modèle, où :
- La clé de balise correspond au nom de la tâche d’approbation. Par exemple, dans le cahier d'approbation d'exemple, il s’agit de
Approval_Check. - La valeur de la balise est définie sur
Approved.
- Continuité du travail : le processus de déploiement réparé reprend automatiquement à partir de l’étape d’approbation. Cette fois, il passe parce que la balise de catalogue Unity requise est maintenant présente. Il passe ensuite aux tâches suivantes, telles que le déploiement.
Autorisations requises
Les autorisations suivantes sont requises pour ajouter des étiquettes de catalogue Unity et déclencher des travaux de déploiement :
- APPLIQUER UNE BALISE sur le modèle de catalogue Unity.
- PEUT GÉRER L'EXÉCUTION sur la tâche de déploiement.
Tags régulés pour des approbations avancées
Vous pouvez également spécifier qui a l’autorisation d’approuver et d’appliquer des balises à l’aide d’une stratégie de balise régie pour un certain nom de balise. Lorsque vous utilisez une stratégie de balise régie et que vous spécifiez APPLY_TAG des autorisations pour un utilisateur ou un groupe, vous pouvez :
- Avoir plusieurs groupes d’approbation indépendants dans un travail de déploiement.
- Par exemple, vous pouvez avoir deux balises distinctes pour des approbations de groupe distinctes comme :
Approval_LegaletApproval_Securityoù vous :- Créez une stratégie de balise régie, de sorte que seule l’équipe juridique puisse définir la
Approval_Legalbalise. - Créez une stratégie de balise régie supplémentaire, de sorte que seule l’équipe de sécurité peut définir la
Approval_Securitybalise. - Disposez de deux tâches d’approbation dans votre travail de déploiement correspondant aux approbations légales et de sécurité.
- Accordez aux deux équipes
APPLY_TAGsur le modèle pour qu’elles puissent définir la balise, mais elles ne peuvent approuver que leurs vérifications respectives.
- Créez une stratégie de balise régie, de sorte que seule l’équipe juridique puisse définir la
- Par exemple, vous pouvez avoir deux balises distinctes pour des approbations de groupe distinctes comme :
- Définissez une politique de balises pour empêcher le propriétaire du modèle d'approuver la tâche, afin de vérifier qu'il y a une seconde approbation par une autre personne.
- Normaliser les vérifications d’approbation dans le metastore, le catalogue et le schéma avec des stratégies de balise et des noms de balises cohérents.
Afficher l’état du travail de déploiement et le journal d’activité
Une fois les travaux de déploiement déclenchés sur les versions de modèle, l’état actuel de ces déploiements peut être affiché sur la page du modèle sous l’onglet Vue d’ensemble . Sous l’état, vous pouvez voir l’activité historique dans le journal d’activité. Le journal d’activité est également affiché sur la page de version du modèle.
Autorisations requises
Les autorisations suivantes sont requises pour afficher les travaux de déploiement et le journal d’activité (identiques à l’affichage du modèle) :
- EXÉCUTER sur le modèle de catalogue Unity.
Exemple de bloc-notes de modèles de tâches de déploiement
Les exemples de notebooks suivants peuvent être utilisés comme modèle pour créer un travail de déploiement simple composé des tâches d’évaluation, d’approbation et de déploiement. Assurez-vous de fournir les valeurs REQUIRED dans les notebooks pour configurer le travail de déploiement pour votre modèle.
Bloc-notes d’évaluation pour GenAI
Exemple de notebook d’évaluation pour GenAI
Obtenir un ordinateur portable
Bloc-notes d’évaluation pour ML classique
Exemple de notebook d’évaluation pour l'apprentissage automatique classique
Obtenir un ordinateur portable
Bloc-notes d’approbation
Exemple de cahier d'approbation
Obtenir un ordinateur portable
Bloc-notes de déploiement
Exemple de notebook de déploiement
Obtenir un ordinateur portable
Créer un bloc-notes de travail de déploiement
Exemple de cahier pour créer un travail de déploiement
Obtenir un ordinateur portable
Étapes suivantes
Pour en savoir plus sur les nouvelles fonctionnalités de MLflow 3 et commencer, consultez l’article suivant :