Partager via


Qu’est-ce que l’évaluation de l’agent Mosaic AI ?

Important

Cette fonctionnalité est disponible en préversion publique.

Cet article donne une vue d’ensemble de l’utilisation de l’évaluation de l’agent Mosaic AI. 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 es chaînes RAG. L’évaluation de l’agent est conçue 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 opérations d’apprentissage automatique. Toutes les métriques et données d’évaluation sont journalisées dans les exécutions MLflow.

L’évaluation de l’agent intègre des techniques d’évaluation avancées et soutenues par la recherche dans un KIT DE développement logiciel (SDK) convivial et une interface utilisateur qui est intégré à votre lakehouse, MLflow et aux autres composants databricks Data Intelligence Platform. Développée en collaboration avec la recherche de l’IA De Mosaïque, 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 IA agentiques 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 métriques qualitatives et quantitatives utilisées pour évaluer la qualité sont intrinsèquement plus complexes. L’évaluation de l’agent comprend des juges LLM et des mesures d’agent protégés 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 l’évaluation de l’agent ?

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.

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."
        }],
      },
      # Primitive string format
      # Note: Using a primitive string is discouraged. The string will be wrapped in the
      # OpenAI messages format before being passed to your agent.
      "How do I convert a Spark DataFrame to Pandas?"
    ],
    "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.",
    ]
}

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
)

# Review the evaluation results in the MLFLow UI (see console output), or access them in place:
display(result.tables['eval_results'])

Vous pouvez également importer et exécuter le notebook suivant dans votre espace de travail Databricks :

Exemple de notebook Mosaic AI Agent Evaluation

Obtenir le notebook

Entrées et sorties d’évaluation de l’agent

Le diagramme suivant présente une vue d’ensemble des entrées acceptées par l’évaluation de l’agent et des sorties correspondantes produites par l’évaluation de l’agent.

agent_eval_data_flows

Entrées

Pour plus d’informations sur l’entrée attendue pour l’évaluation de l’agent, 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 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 base (correcte).
  • Trace MLflow () : (tracefacultatif) 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’outil. Vous pouvez également fournir ces sorties intermédiaires directement.

Outputs

En fonction de ces entrées, l’évaluation de l’agent produit deux types de sorties :

  1. Résultats d’évaluation (par ligne) : pour chaque ligne fournie en 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 l’exactitude ou la justesse, la sortie d’un score oui/non et la justification écrite de ce score. Pour plus d’informations, consultez Comment la qualité, le coût et la latence sont évalués par l’évaluation de l’agent.
    • 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. 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. Il s’agit notamment des métriques 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 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 connexion) et production (supervision en ligne)

L’évaluation de l’agent est conçue pour être cohérente 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 base, tandis que dans le développement, vous pouvez éventuellement utiliser des étiquettes de vérité de base. L’utilisation d’étiquettes de base permet à l’évaluation de l’agent de calculer des métriques de qualité supplémentaires.

Développement (hors connexion)

agent_eval_overview_dev

En cours de développement, votre requests jeu expected_responses d’évaluation vient de votre ensemble 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.

Pour obtenir response et trace, l’évaluation de l’agent peut appeler le code de votre agent pour générer ces sorties pour chaque ligne dans le jeu d’évaluation. Vous pouvez également générer ces sorties vous-même et les transmettre à l’évaluation de l’agent. 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 de l’évaluation de l’agent 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 tables d’inférence améliorées de l’agent et mettre à jour continuellement un tableau de bord de surveillance. Pour plus d’informations, consultez Comment surveiller la qualité de votre agent sur le trafic de production.

Si vous déployez votre agent en dehors d’Azure Databricks, vous pouvez etL vos journaux sur le schéma d’entrée requis et configurer de même un tableau de bord de surveillance.

É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 base 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. Pour le schéma requis, consultez Le schéma d’entrée d’évaluation de l’agent.

Exécutions d’évaluation

Pour plus d’informations sur l’exécution d’une évaluation, consultez Comment exécuter une évaluation et afficher les résultats. L’évaluation de l’agent 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 Comment fournir une entrée à une exécution d’évaluation.

Obtenir des commentaires d’humains sur la qualité d’une application GenAI

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 de détails, consultez Obtenir des commentaires sur la qualité d’une application agentique.

Disponibilité géographique des fonctionnalités de l’Assistant

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é de l’évaluation des agents dans différentes zones géographiques, consultez Services désignés Databricks.

Tarification

Pour plus d’informations sur la tarification, consultez la tarification de l’évaluation de l’agent d’IA de Mosaïque.

Limitation

L’évaluation des agents n’est pas disponible dans les espaces de travail compatibles HIPAA.

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.
  • Pour Azure OpenAI, Databricks a choisi de ne pas participer à la surveillance des abus. Aucun prompt ou réponse n’est donc stocké avec 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 d’assistance basées sur l’IA‭ alimentée par Azure empêche le juge LLM d’appeler les modèles Azure basés sur l’IA.
  • Les données envoyées au juge LLM ne sont pas utilisées pour l’entraînement de modèles.
  • Les juges LLM sont destinés à aider les clients à évaluer leurs requêtes RAG, et les sorties des juges LLM ne doivent pas être utilisés pour entraîner, améliorer ou affiner un LLM.