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.
Importante
Databricks recommande d’utiliser MLflow 3 pour évaluer et surveiller les applications GenAI. Cette page décrit l’évaluation de l’agent MLflow 2.
- Pour une introduction à l’évaluation et à la surveillance sur MLflow 3, consultez Évaluer et surveiller les agents IA.
- Pour plus d’informations sur la migration vers MLflow 3, consultez Migrer vers MLflow 3 à partir de l’évaluation de l’agent.
- Pour plus d’informations sur MLflow 3 sur cette rubrique, consultez Évaluer et surveiller les agents IA.
Cet article fournit un aperçu de la façon de travailler avec l’évaluation de l’agent d’IA Mosaic AI, basée sur MLflow 2.
Comment utiliser Agent Evaluation ?
Le code suivant montre comment appeler et tester Agent Evaluation sur les sorties générées précédemment. Il retourne un DataFrame avec des scores d’évaluation calculés par des juges LLM qui font partie d’Agent Evaluation. Consultez les exemples de notebooks pour un notebook de démarrage rapide contenant du code similaire que vous pouvez exécuter dans votre espace de travail Azure Databricks.
Vous pouvez copier et coller les éléments suivants dans votre notebook Azure Databricks existant :
%pip install mlflow databricks-agents
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 Mosaic AI 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 d’informations sur l’entrée attendue pour Agent Evaluation, y compris les noms de champs et les types de données, consultez le schéma d’entrée. Voici quelques-uns des champs suivants :
-
Requête de l’utilisateur (
request) : entrée à l’agent (question ou requête de l’utilisateur). Par exemple, « Qu’est-ce que la 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) Réponse de vérité de terrain (correcte). -
Trace MLflow (
trace) : (Facultatif) La trace MLflow de l’agent à partir de laquelle l’Évaluation de l’Agent extrait des sorties intermédiaires telles que le contexte récupéré ou les appels d’outils. Vous pouvez également fournir ces sorties intermédiaires directement. -
Recommandations (
guidelines) : (facultatif) Une liste de directives ou de directives nommées auxquelles la sortie du modèle est censée adhérer.
Sorties
En fonction de ces entrées, Agent Evaluation produit deux types de sorties :
-
Résultats de l’évaluation (par ligne) : Pour chaque ligne fournie comme entrée, l’évaluation de l’agent 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 le caractère correct ou conforme à la vérité du terrain, la sortie d’un score oui/non et la justification écrite de ce score. Pour plus d’informations, consultez l’évaluation de la qualité, du coût et de la latence par l’évaluation de l’agent (MLflow 2).
- Les évaluations des juges LLM sont combinées pour produire un score global 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 racine est identifiée. Chaque cause racine correspond à l’évaluation d’un juge LLM spécifique, ce qui vous permet d’utiliser la justification du juge pour identifier les correctifs potentiels.
- Les coûts et la latence sont extraits de la trace MLflow. Pour plus d’informations, consultez Comment les coûts et la latence sont évalués.
- Mesures (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. Il s’agit notamment des mesures telles que le pourcentage de réponses correctes, le nombre moyen de jetons, la latence moyenne, etc. Pour plus d’informations, consultez Comment les coûts et la latence sont évalués et Comment les mesures sont agrégées au niveau d’une exécution MLflow pour la qualité, le coût et la latence.
Développement (évaluation hors connexion) et production (supervision en ligne)
Agent Evaluation est conçu pour être cohérent entre vos environnements de développement (hors connexion) et de production (en ligne). Cette conception permet une transition fluide du développement à la production, ce qui vous permet 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 que dans la production, vous n’avez pas d’étiquettes de vérité de terrain, tandis que dans le développement, vous pouvez éventuellement en utiliser. L’utilisation d’étiquettes de vérité de terrain permet à Agent Evaluation de calculer des mesures de qualité supplémentaires.
Développement (hors connexion)
En cours de développement, vos requests et expected_responses viennent d'un jeu d’évaluation. Un jeu d’évaluation est une collection d’entrées représentatives que votre agent doit être en mesure de 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, l'Agent Evaluation peut appeler le code de votre agent afin de générer ces sorties pour chaque ligne dans l'ensemble d'évaluation. Vous pouvez également générer ces sorties vous-même et les transmettre à Agent Evaluation. Découvrez comment fournir une entrée à une exécution d’évaluation pour plus d’informations.
Production (en ligne)
Pour plus d’informations sur la surveillance en production, consultez Monitor GenAI en production. Cette fonctionnalité MLflow 3 est compatible avec les expériences MLflow 2. Pour activer la surveillance sur l’expérience MLflow 2, utilisez le SDK MLflow 3, en installant mlflow>=3.1.
Établir un benchmark de qualité avec un jeu d’évaluation
Pour mesurer la qualité d’une application IA en développement (hors connexion), vous devez définir un jeu d’évaluation, c’est-à-dire un ensemble de questions représentatives et des réponses de vérité de terrain facultatives. Si l’application implique une étape de récupération, comme dans les flux de travail RAG, vous pouvez éventuellement fournir des documents de référence sur lesquels vous attendez que la réponse soit basée.
- Pour plus d’informations sur les jeux d’évaluation, notamment les dépendances de métriques et les meilleures pratiques, consultez Jeux d’évaluation (MLflow 2).
- Pour le schéma requis, consultez Le schéma d’entrée d’évaluation de l’agent (MLflow 2).
- Pour savoir comment générer synthétiquement un ensemble d’évaluation de haute qualité, consultez Synthétiser des ensembles d'évaluation.
Exécutions d’évaluation
Pour plus d’informations sur l’exécution d’une évaluation, consultez Exécuter une évaluation et afficher les résultats (MLflow 2). 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 d’informations et d’explications sur l’utilisation de chaque option, consultez Fournir des entrées à une exécution d’évaluation.
Obtenir des commentaires humains sur la qualité d’une application IA générative
L’application de révision Databricks facilite la collecte de commentaires sur la qualité d’une application IA auprès de réviseurs humains. Pour plus d’informations, consultez Utiliser l’application de révision pour les révisions humaines d’une application IA gen (MLflow 2).
Disponibilité géographique de l'évaluation de l'agent d'IA Mosaic
Mosaic AI Agent Evaluation est un service désigné qui utilise Geos pour gérer la résidence des données lors du traitement du contenu des clients. Pour en savoir plus sur la disponibilité d'Agent Evaluation dans différentes zones géographiques, consultez Services désignés Databricks.
Tarification
Pour plus d’informations sur la tarification, consultez Tarification Mosaic AI 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 (géré par Microsoft).
- En ce qui concerne Azure OpenAI, Databricks a choisi de ne pas participer à la surveillance des abus. Aucun prompt ou réponse n’est donc stocké dans Azure OpenAI.
- Pour les espaces de travail de l’Union européenne (UE), les juges LLM utilisent des modèles hébergés dans l’UE. Toutes les autres régions utilisent des modèles hébergés aux États-Unis.
- La désactivation des fonctionnalités IA optimisées par partenaires empêche le juge LLM d’appeler des modèles optimisés par partenaires. Vous pouvez toujours utiliser des juges LLM en fournissant votre propre modèle.
- Les juges LLM sont destinés à aider les clients à évaluer leurs agents/applications GenAI, et les sorties des juges LLM ne doivent pas être utilisées pour former, améliorer ou affiner un LLM.
Exemples de notebooks
Les notebooks suivants illustrent comment utiliser Mosaic AI Agent Evaluation.