Démarrez avec MLflow 3 pour les modèles
Cet article se concentre sur les fonctionnalités de MLflow 3 pour les modèles de machine learning traditionnel et de deep learning. MLflow 3 offre également des fonctionnalités complètes pour le développement d'applications GenAI, y compris le traçage, l'évaluation et la collecte de retours humains. Consultez la documentation MLflow 3 pour GenAI pour plus de détails.
Cet article vous initie à MLflow 3 pour développer des Modèles de machine learning. Il décrit comment installer MLflow 3 pour les modèles et comprend plusieurs Notebooks de démonstration pour start. Il comprend également des liens vers des pages qui couvrent plus en détail les nouvelles fonctionnalités de MLflow 3 pour les modèles.
Qu'est-ce que MLflow 3 pour les modèles ?
MLflow 3 pour les modèles sur Databricks offre un suivi de pointe des expérimentations, l'évaluation des performances et la gestion de la production pour les modèles de machine learning. MLflow 3 introduit de nouvelles fonctionnalités importantes tout en préservant les concepts de suivi de base, rendant la migration de MLflow 2.x rapide et simple.
Qu'est-ce que MLflow 3 pour GenAI ?
Au-delà de MLflow 3 pour les modèles, MLflow 3 pour GenAI introduit une grande variété de nouvelles fonctionnalités et d'améliorations pour le développement d'applications d'agents et de GenAI. Pour un aperçu complet, consultez MLflow 3 pour GenAI.
Les fonctionnalités principales de MLflow 3 pour GenAI incluent :
- Traçage et observabilité — Observabilité de bout en bout pour les applications GenAI avec instrumentation automatique pour plus de 20 frameworks, y compris OpenAI, LangChain, LlamaIndex et Anthropic
- Évaluation et monitoring - Capacités complètes d’évaluation GenAI pour mesurer et améliorer la qualité du développement à la production. Comprend des juges LLM intégrés, des juges personnalisables, la gestion des datasets d'évaluation et le monitoring en temps réel.
- Collecte de feedback humain – Interface utilisateur de révision personnalisable pour la collecte de feedback d'experts du domaine et le test interactif d'agents, avec des sessions d'étiquetage structurées pour l'organisation et le suivi de la progression de la révision
- ** Prompt Registry ** — Versioning, gestion et tests A/B centralisés des prompts avec l'intégration Unity Catalog
En quoi MLflow 3 pour les modèles est-il différent de MLflow 2
MLflow 3 pour les modèles sur Databricks vous permet de :
- Suivez et analysez de manière centralisée les performances de vos modèles dans tous les environnements, des query interactives dans un Notebook de développement aux déploiements de service par batch ou en temps réel en production.
![]()
- Affichez et accédez aux métriques et paramètres du modèle depuis la page de version du modèle dans Unity Catalog et depuis l'API REST, à travers tous les workspaces et expérimentations.

- Orchestrez les workflows d'évaluation et de déploiement à l'aide d'Unity Catalog et accédez à des logs d'état complets pour chaque version de votre modèle.

Ces capacités simplifient et rationalisent le développement, l’évaluation et le déploiement en production des modèles de machine learning.
Modèles enregistrés
Une grande partie de la nouvelle fonctionnalité de MLflow 3 découle du nouveau concept d'un LoggedModel. Pour les modèles d'apprentissage profond et de modèle de machine learning traditionnels, LoggedModels élève le concept de modèle produit par une exécution d'entraînement, l'établissant comme un objet dédié pour suivre le cycle de vie du modèle à travers différentes exécutions d'entraînement et d'évaluation.
LoggedModels capturer les métriques, les paramètres et les traces à travers les phases de développement (formation et évaluation) et les environnements (développement, test et production). Lorsqu'un LoggedModel est promu dans Unity Catalog en tant que version de modèle, toutes les données de performance du LoggedModel original deviennent visibles sur la page de la version de modèle UC, offrant une visibilité sur tous les workspaces et expérimentations. Pour plus de détails, consultez Suivre et comparer les modèles à l'aide des modèles enregistrés MLflow.
Jobs de déploiement
MLflow 3 introduit également le concept d'un Job de déploiement. Les jobs de déploiement utilisent les Lakeflow Jobs pour gérer le cycle de vie du modèle, y compris des étapes telles que l'évaluation, l'approbation et le déploiement. Ces workflows de modèle sont régis par Unity Catalog, et tous les événements sont enregistrés dans un journal d'activité qui est disponible sur la page de version du modèle dans Unity Catalog.
Migration depuis MLflow 2.x
Bien qu'il existe de nombreuses nouvelles fonctionnalités dans MLflow 3, les concepts fondamentaux des expérimentations et des runs, ainsi que leurs métadonnées telles que les paramètres, les tags et les métriques, restent les mêmes. La migration de MLflow 2.x vers 3.0 est très simple et ne devrait nécessiter que des modifications de code minimes dans la plupart des cas. Cette section met en évidence certaines différences clés de MLflow 2.x et ce dont vous devez être conscient pour une transition transparente.
Enregistrement des modèles
Lors de l’enregistrement des modèles en 2.x, le parameter artifact_path est utilisé.
with mlflow.start_run():
mlflow.pyfunc.log_model(
artifact_path="model",
python_model=python_model,
...
)
Dans MLflow 3, utilisez name à la place, ce qui permet au modèle d'être recherché ultérieurement par son nom. Le paramètre artifact_path est toujours pris en charge mais a été déprécié. De plus, MLflow n'exige plus qu'une exécution soit active lors de l'enregistrement d'un modèle, car les modèles sont devenus des citoyens de première classe dans MLflow 3. Vous pouvez directement enregistrer un modèle sans démarrer une exécution au préalable.
mlflow.pyfunc.log_model(
name="model",
python_model=python_model,
...
)
Artefacts de modèle
Dans MLflow 2.x, les artefacts de modèle sont stockés en tant qu’artefacts d’exécution sous le chemin d’artefact de l’exécution. Dans MLflow 3, les artefacts de modèle sont maintenant stockés à un emplacement différent, sous le chemin d'artefact du modèle.
# MLflow 2.x
experiments/
└── <experiment_id>/
└── <run_id>/
└── artifacts/
└── ... # model artifacts are stored here
# MLflow 3
experiments/
└── <experiment_id>/
└── models/
└── <model_id>/
└── artifacts/
└── ... # model artifacts are stored here
Il est recommandé de charger les modèles avec mlflow.<model-flavor>.load_model en utilisant l'URI du modèle renvoyé par mlflow.<model-flavor>.log_model pour éviter tout problème. Cet URI de modèle est au format models:/<model_id> (plutôt qu’au format runs:/<run_id>/<artifact_path> comme dans MLflow 2.x) et peut également être construit manuellement si seul l’ID de modèle est disponible.
Registre des modèles
Dans MLflow 3, l'URI de registre par default est désormais databricks-uc, ce qui signifie que le MLflow Model Registry dans Unity Catalog sera utilisé (voir Gérer le cycle de vie des modèles dans Unity Catalog pour plus de détails). Les noms des modèles enregistrés dans Unity Catalog sont de la forme <catalog>.<schema>.<model>. Lors de l'appel d'APIs qui nécessitent un nom de modèle enregistré, tel que mlflow.register_model, ce nom complet à trois niveaux est utilisé.
Pour les Workspaces ayant Unity Catalog activé et dont le default catalogue se trouve dans Unity Catalog, vous pouvez également utiliser <model> comme nom et le catalogue et le schéma par défaut seront déduits (aucun changement de comportement par rapport à MLflow 2.x). Si votre Workspace a Unity Catalog activé mais que son catalogue par default n'est pas configuré pour être dans Unity Catalog, vous devrez spécifier le nom complet à trois niveaux.
Databricks recommande d'utiliser le MLflow Model Registry dans Unity Catalog pour gérer le cycle de vie de vos modèles.
Si vous souhaitez continuer à utiliser le Workspace Model Registry (hérité), utilisez l'une des méthodes suivantes pour définir l'URI du registre sur databricks:
- Utilisez
mlflow.set_registry_uri("databricks"). - Définissez la variable d'environnement MLFLOW_REGISTRY_URI.
- Pour définir la variable d'environnement pour l'URI du registre à l'échelle, vous pouvez utiliser des scripts d'initialisation. Ceci nécessite un compute polyvalent.
Autres modifications importantes
- Les clients MLflow 3 peuvent charger toutes les exécutions, tous les modèles et toutes les traces Logs avec les clients MLflow 2.x. Toutefois, l’inverse n’est pas nécessairement vrai, de sorte que les modèles et les traces Logs avec les clients MLflow 3 peuvent ne pas pouvoir être chargés avec des versions clientes 2.x plus anciennes.
- L'API
mlflow.evaluatea été dépréciée. Pour les modèles de ML traditionnels ou de deep learning, utilisezmlflow.models.evaluatequi maintient une compatibilité totale avec l'APImlflow.evaluated'origine. Pour les LLM ou les applications GenAI, utilisez plutôt l'APImlflow.genai.evaluate. - L'attribut
run_uuida été supprimé de l'objetRunInfo. Utilisezrun_idà la place dans votre code.
Installer MLflow 3
Pour utiliser MLflow 3, vous devez mettre à jour le package pour utiliser la version correcte (>= 3.0). Les lignes de code suivantes doivent être exécutées chaque fois qu'un Notebook est exécuté :
%pip install mlflow>=3.0 --upgrade
dbutils.library.restartPython()
Exemples de Notebooks
Les pages suivantes illustrent le workflow de suivi des modèles MLflow 3 pour le ML traditionnel et l'apprentissage profond. Chaque page comprend un exemple de notebook.
Limitation
Bien que la journalisation des modèles Spark (mlflow.spark.log_model) continue de fonctionner dans MLflow 3, elle n'utilise pas le nouveau concept LoggedModel. Les modèles enregistrés à l'aide de la journalisation des modèles Spark continuent d'utiliser les exécutions et les artefacts d'exécution MLflow 2.x.
Ressources supplémentaires
Pour en savoir plus sur les nouvelles fonctionnalités de MLflow 3, consultez les articles suivants :