Partager via


Évaluation de l’agent d’IA de Mosaïque (MLflow 2)

Importante

Cette page décrit l’utilisation de la version 0.22 d’évaluation de l’agent avec MLflow 2. Databricks recommande d’utiliser MLflow 3, qui est intégré à l’évaluation de l’agent >1.0. Dans MLflow 3, les API d’évaluation de l’agent font désormais partie du mlflow package.

Pour plus d’informations sur cette rubrique, consultez Évaluer et surveiller.

Cet article donne une vue d’ensemble de l’utilisation de Mosaic AI Agent Evaluation. L’évaluation de l’agent aide les développeurs à évaluer la qualité, le coût et la latence des applications d’IA agentique, y compris les applications et les chaînes RAG. Agent Evaluation est conçu pour identifier les problèmes de qualité et déterminer la cause racine de ces problèmes. Les fonctionnalités d’Agent Evaluation sont unifiées dans les phases de développement, de préproduction et de production du cycle de vie des MLOps. Toutes les métriques et données d’évaluation sont journalisées dans les exécutions MLflow.

Agent Evaluation intègre des techniques d’évaluation avancées et soutenues par la recherche dans un SDK convivial et une interface utilisateur qui est intégrée à votre lakehouse, MLflow et aux autres composants databricks Data Intelligence Platform. Développée en collaboration avec la recherche Mosaic AI, cette technologie propriétaire offre une approche complète pour analyser et améliorer les performances des agents.

Diagramme LLMOps montrant l’évaluation

Les applications d'IA agentique sont complexes et impliquent de nombreux composants différents. L’évaluation des performances de ces applications n’est pas aussi simple que l’évaluation des performances des modèles ML traditionnels. Les mesures qualitatives et quantitatives utilisées pour évaluer la qualité sont intrinsèquement plus complexes. Agent Evaluation comprend des juges LLM et des mesures d’agent propriétaires pour évaluer la qualité de la recherche et des requêtes ainsi que des mesures de performance globales comme la latence et le coût des jetons.

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 notebooks d'exemple pour accéder à un notebook de démarrage rapide avec du code similaire que vous pouvez exécuter dans votre espace de travail Databricks.

Vous pouvez copier et coller ce qui suit dans votre notebook 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

Le diagramme suivant présente une vue d’ensemble des entrées acceptées par Agent Evaluation et des sorties correspondantes produites par Agent Evaluation.

agent_eval_data_flows

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 :

  1. 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.
  2. 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)

agent_eval_overview_dev

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)

agent_eval_overview_prod

En production, toutes les entrées d'Agent Evaluation proviennent de vos journaux de production.

Si vous utilisez Mosaïque AI Agent Framework pour déployer votre application IA, l’évaluation de l’agent peut être configurée pour collecter automatiquement ces entrées à partir des agents déployés par Monitor et mettre à jour en permanence une table de surveillance. Pour plus d’informations, consultez Surveiller les applications déployées à l’aide d’Agent Framework (MLflow 2).

Si vous déployez votre agent en dehors d’Azure Databricks, vous pouvez également utiliser l’analyse de l’agent. Consultez Surveiller les applications déployées en dehors d’Azure Databricks (MLflow 2).

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

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.
  • Désactiver les fonctionnalités d’assistance d’IA‭ d'Azure AI empêche le juge LLM d’appeler les modèles Azure basés sur l’IA.
  • 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.

Notebook de démarrage rapide avec Mosaic AI Agent Evaluation

Obtenir le notebook

Carnet de notes sur l’évaluation de l’agent, les métriques personnalisées, les directives et les labels d’expert du domaine.

Obtenir le notebook