Agent Evaluation (MLflow 2)
Databricks recommande d’utiliser MLflow 3 pour l’évaluation et le monitoring des applications GenAI. Cette page décrit MLflow 2 Agent Evaluation.
- Pour une introduction à l'évaluation et au monitoring sur MLflow 3, consultez Évaluer et surveiller les agents d'IA.
- Pour en savoir plus sur la migration vers MLflow 3, consultez Migration vers MLflow 3 depuis Agent Evaluation.
- Pour plus d'informations sur MLflow 3 à ce sujet, consultez Évaluer et surveiller les agents IA.
Cet article donne un aperçu de la façon de travailler avec l'Agent Evaluation, basée sur MLflow 2.
Comment utiliser Agent Evaluation ?
Le code suivant montre comment appeler et tester Agent Evaluation sur des sorties générées précédemment. Elle renvoie un dataframe avec des scores d'évaluation calculés par des juges LLM qui font partie d'Agent Evaluation. Consultez Example notebooks pour un notebook de démarrage rapide contenant un code similaire que vous pouvez exécuter dans votre workspace Databricks.
Vous pouvez copier et coller ce qui suit dans votre Notebook Databricks existant :
%pip install mlflow==2.21.0 databricks-agents==0.16.0
dbutils.library.restartPython()
import mlflow
import pandas as pd
examples = {
"request": [
{
# Recommended `messages` format
"messages": [{
"role": "user",
"content": "Spark is a data analytics framework."
}],
},
# SplitChatMessagesRequest format
{
"query": "How do I convert a Spark DataFrame to Pandas?",
"history": [
{"role": "user", "content": "What is Spark?"},
{"role": "assistant", "content": "Spark is a data processing engine."},
],
}
# Note: Using a primitive string is discouraged. The string will be wrapped in the
# OpenAI messages format before being passed to your agent.
],
"response": [
"Spark is a data analytics framework.",
"This is not possible as Spark is not a panda.",
],
"retrieved_context": [ # Optional, needed for judging groundedness.
[{"doc_uri": "doc1.txt", "content": "In 2013, Spark, a data analytics framework, was open sourced by UC Berkeley's AMPLab."}],
[{"doc_uri": "doc2.txt", "content": "To convert a Spark DataFrame to Pandas, you can use toPandas()"}],
],
"expected_response": [ # Optional, needed for judging correctness.
"Spark is a data analytics framework.",
"To convert a Spark DataFrame to Pandas, you can use the toPandas() method.",
]
}
global_guidelines = {
"english": ["The response must be in English"],
"clarity": ["The response must be clear, coherent, and concise"],
}
result = mlflow.evaluate(
data=pd.DataFrame(examples), # Your evaluation set
# model=logged_model.model_uri, # If you have an MLFlow model. `retrieved_context` and `response` will be obtained from calling the model.
model_type="databricks-agent", # Enable Agent Evaluation
evaluator_config={
"databricks-agent": {"global_guidelines": global_guidelines}
}
)
# Review the evaluation results in the MLFLow UI (see console output), or access them in place:
display(result.tables['eval_results'])
Entrées et sorties d'Agent Evaluation
Entrées
Pour plus de détails sur l'entrée attendue pour Agent Evaluation, y compris les noms de champ et les types de données, consultez le schéma d'entrée. Voici quelques-uns des champs :
- Query de l'utilisateur (
request) : Entrée de l'agent (question ou query de l'utilisateur). Par exemple, « Qu'est-ce que le RAG ? ». - Réponse de l’agent (
response) : réponse générée par l’agent. Par exemple, « la génération augmentée de récupération est… ». - Réponse attendue (
expected_response) : (Facultatif) Une réponse de vérité terrain (correcte). - Trace MLflow (
trace) : (Facultatif) La trace MLflow de l’agent, à partir de laquelle Agent Evaluation extrait les sorties intermédiaires telles que le contexte récupéré ou les appels d’outils. Vous pouvez également fournir ces sorties intermédiaires directement. - Directives (
guidelines) : (Facultatif) Liste de directives ou de directives nommées auxquelles la sortie du modèle est censée adhérer.
Sorties
Basée sur ces entrées, l'Agent Evaluation produit deux types de sorties :
-
« **Résultats de l'évaluation (par ligne) :** Pour chaque ligne fournie en entrée, l'Agent Evaluation produit une ligne de sortie correspondante qui contient une évaluation détaillée de la qualité, du coût et de la latence de votre agent. »
-
Les juges LLM vérifient différents aspects de la qualité, tels que l'exactitude ou le bien-fondé, en produisant un score oui/non et une justification écrite pour ce score. Pour plus de détails, consultez Comment la qualité, le coût et la latence sont évalués par Agent Evaluation (MLflow 2).
-
Les évaluations des juges LLM sont combinées pour produire une note globale qui indique si cette ligne « passe » (est de haute qualité) ou « échoue » (a un problème de qualité).
- Pour toutes les lignes défaillantes, une cause première est identifiée. Chaque cause première correspond à une évaluation spécifique du juge LLM, ce qui vous permet d'utiliser la logique du juge pour identifier les solutions potentielles.
-
Le coût et la latence sont extraits de la trace MLflow. Pour plus de détails, consultez Comment le coût et la latence sont évalués.
-
-
**Métriques (scores agrégés) :** Scores agrégés qui résument la qualité, le coût et la latence de votre agent sur toutes les lignes d'entrée. Celles-ci incluent des métriques telles que le pourcentage de bonnes réponses, le nombre moyen de jetons, la latence moyenne, et plus encore. Pour plus de détails, consultez Comment les coûts et la latence sont évalués et Comment les métriques sont agrégées au niveau d'une exécution MLflow pour la qualité, le coût et la latence.
Développement (évaluation hors ligne) et production (monitoring en ligne)
Agent Evaluation est conçu pour être cohérent entre vos environnements de développement (hors ligne) et de production (en ligne). Cette conception permet une transition fluide du développement à la production, vous permettant d’itérer, d’évaluer, de déployer et de surveiller rapidement des applications agentiques de haute qualité.
La principale différence entre le développement et la production est qu'en production, vous n'avez pas d'étiquettes de vérité terrain, alors qu'en développement, vous pouvez éventuellement utiliser des étiquettes de vérité terrain. L'utilisation d'étiquettes de vérité terrain permet à Agent Evaluation de calculer des métriques de qualité supplémentaires.
Développement (hors ligne)
En développement, vos requests et expected_responses proviennent d’un jeu d’évaluation . Un jeu d’évaluation est une collection d’entrées représentatives que votre agent devrait pouvoir gérer avec précision. Pour plus d'informations sur les jeux d’évaluation, consultez Jeux d’évaluation (MLflow 2).
Pour obtenir response et trace, Agent Evaluation peut appeler le code de votre agent afin de générer ces sorties pour chaque ligne du jeu d'évaluation. Vous pouvez également générer ces résultats vous-même et les transmettre à l'Agent Evaluation. Consultez Comment fournir une entrée à une exécution d'évaluation pour plus d'information.
Production (en ligne)
Pour des informations sur le monitoring en production, consultez Surveiller les applications GenAI en production. Cette fonctionnalité MLflow 3 est compatible avec les expérimentations MLflow 2. Pour activer le monitoring sur l’Experimentation MLflow 2, utilisez le SDK MLflow 3, en installant mlflow>=3.1.
Établir une référence de qualité avec un ensemble d'évaluation
Pour mesurer la qualité d’une application d’IA en développement (hors ligne), vous devez définir un ensemble d’évaluation, c’est-à-dire un ensemble de questions représentatives et de réponses optionnelles de vérité terrain. Si l'application implique une étape de récupération, comme dans les workflows RAG, vous pouvez éventuellement fournir des documents justificatifs sur lesquels la réponse est censée se baser.
- Pour plus de détails sur les jeux d'évaluation, y compris les dépendances métriques et les meilleures pratiques, consultez Jeux d'évaluation (MLflow 2).
- Pour le schéma requis, consultez le schéma d'entrée de l'Agent Evaluation (MLflow 2).
- Pour des informations sur la manière de générer de manière synthétique un ensemble d'évaluation de haute qualité, consultez Synthétiser des ensembles d'évaluation.
Exécutions d'évaluation
Pour plus de détails sur la façon d'exécuter une évaluation, consultez Exécuter une évaluation et afficher les résultats (MLflow 2). L'Agent Evaluation prend en charge deux options pour fournir la sortie de la chaîne :
- Vous pouvez exécuter l'application dans le cadre de l'exécution d'évaluation. L'application génère des résultats pour chaque entrée dans le jeu d'évaluation.
- Vous pouvez fournir la sortie d'une exécution précédente de l'application.
Pour plus de détails et des explications sur quand utiliser chaque option, consultez Fournir des entrées à une exécution d'évaluation.
Obtenez un retour humain sur la qualité d'une application d'IA générative
L'application d'évaluation Databricks facilite la collecte des commentaires sur la qualité d'une application d'IA auprès d'examinateurs humains. Pour plus de détails, consultez Utiliser l'application d'évaluation pour les examens humains d'une application d'IA générative (MLflow 2).
Disponibilité Geo de l'Agent Evaluation
Agent Evaluation est un service désigné qui utilise Geos pour gérer la résidence des données lors du traitement du contenu client. Pour en savoir plus sur la disponibilité de l’Agent Evaluation dans différentes zones géographiques, consultez les Services Désignés Databricks.
Tarifs
Pour plus d'informations sur les Tarifs, consultez Tarifs Agent Evaluation.
Informations sur les modèles qui alimentent les juges LLM
- Les juges LLM peuvent utiliser des services tiers pour évaluer vos applications GenAI, y compris Azure OpenAI exploité par Microsoft.
- Pour Azure OpenAI, Databricks s'est désabonné du monitoring des abus, de sorte qu'aucune invite ou réponse n'est stockée avec Azure OpenAI.
- Lorsque le cross-Geo processing est désactivé, les juges LLM traitent le contenu dans le Databricks Geo du workspace. Si aucun modèle in-Geo éligible n'est disponible, le juge renvoie une erreur de restriction géographique. Lorsque le cross-Geo processing est activé, les juges LLM peuvent traiter le contenu dans d'autres Geos.
- La désactivation des fonctionnalités d’IA optimisées par des partenaires empêche le juge LLM d'appeler des modèles optimisés par des partenaires. Vous pouvez toujours utiliser les juges LLM en fournissant votre propre modèle.
- Les juges LLM sont destinés à aider les clients à évaluer leurs agents/applications GenAI, et les résultats des juges LLM ne doivent pas être utilisés pour entraîner, améliorer ou affiner un LLM.
Exemples de notebooks
Les Notebooks suivants illustrent l'utilisation de l'Agent Evaluation.