Partager via


Schéma d’entrée d’évaluation de l’agent

Important

Cette fonctionnalité est disponible en préversion publique.

Cet article explique le schéma d’entrée requis par l’évaluation de l’agent pour évaluer la qualité, le coût et la latence de votre application.

  • Pendant le développement, l’évaluation a lieu hors connexion et un jeu d’évaluation est une entrée requise pour l’évaluation de l’agent.
  • Lorsqu’une application est en production, toutes les entrées de l’évaluation de l’agent proviennent de vos tables d’inférence ou journaux de production.

Le schéma d’entrée est identique pour les évaluations en ligne et hors connexion.

Pour plus d’informations générales sur les jeux d’évaluation, consultez Jeux d’évaluation.

Schéma d’entrée d’évaluation

Le tableau suivant montre le schéma d’entrée de l’évaluation de l’agent. Les deux dernières colonnes de la table font référence à la façon dont l’entrée est fournie à l’appel mlflow.evaluate() . Découvrez comment fournir une entrée à une exécution d’évaluation pour plus d’informations.

Colonne Type de données Description Application passée en tant qu’argument d’entrée Sorties précédemment générées fournies
request_id string Identificateur unique de la requête. Facultatif Facultatif
requête Consultez Schéma pour la requête. Entrée dans l’application à évaluer, question ou requête de l’utilisateur. Par exemple, {'messages': [{"role": "user", "content": "What is RAG"}]} ou « Qu’est-ce que RAG ? ». Lorsqu’elle request est fournie sous forme de chaîne, elle sera transformée messages avant son passage à votre agent. Requis Requis
response string Réponse générée par l’application en cours d’évaluation. Générée par l’évaluation de l’agent facultatif. Si non disponible, alors dérivée de la Trace. Soit response ou trace est nécessaire.
expected_facts tableau de chaînes Liste des faits attendus dans la sortie du modèle. Consultez les instructions expected_facts. Facultatif Facultatif
expected_response string Réponse de référence (correcte) pour la requête d’entrée. Consultez les instructions expected_response. Facultatif Facultatif
expected_retrieved_context tableau Tableau d’objets contenant le contexte récupéré attendu pour la requête (si l’application inclut une étape de récupération). Schéma de tableau Facultatif Facultatif
retrieved_context tableau Résultats de récupération générés par le récupérateur dans la chaîne en cours d’évaluation. Si l’application contient plusieurs étapes de récupération, il s’agit des résultats de récupération de la dernière étape (chronologiquement dans la trace). Schéma de tableau Générée par l’évaluation de l’agent facultatif. Si non disponible, alors dérivée de la Trace fournie.
trace Chaîne JSON de Trace MLflow La trace MLflow de l’exécution de l’application sur la requête correspondante. Générée par l’évaluation de l’agent facultatif. Soit response ou trace est nécessaire.

Instructions expected_facts

Le expected_facts champ spécifie la liste des faits attendus dans une réponse de modèle correcte pour la demande d’entrée spécifique. Autrement dit, une réponse de modèle est jugée correcte si elle contient ces faits, quelle que soit la façon dont la réponse est formulée.

L’inclusion uniquement des faits requis et l’abandon des faits qui ne sont pas strictement requis dans la réponse permet à l’évaluation de l’agent de fournir un signal plus robuste sur la qualité de la sortie.

Vous pouvez spécifier au maximum l’un des éléments suivants expected_facts expected_response: Si vous spécifiez les deux, une erreur est signalée. Databricks recommande d’utiliser expected_facts, car il s’agit d’une directive plus spécifique qui aide le juge d’évaluation de l’agent plus efficacement à la qualité des réponses générées.

Instructions expected_response

Le expected_response champ contient une réponse entièrement formée qui représente une référence pour les réponses de modèle correctes. Autrement dit, une réponse de modèle est jugée correcte si elle correspond au contenu d’informations dans expected_response. En revanche, expected_facts répertorie uniquement les faits requis pour apparaître dans une réponse correcte et n’est pas une réponse de référence entièrement formée.

Similaire à expected_facts, expected_response ne doit contenir que l’ensemble minimal de faits requis pour une réponse correcte. Inclure uniquement les informations nécessaires et laisser de côté celles qui ne sont pas strictement requises dans la réponse permet à l’évaluation des agents de fournir un signal plus solide sur la qualité de la sortie.

Vous pouvez spécifier au maximum l’un des éléments suivants expected_facts expected_response: Si vous spécifiez les deux, une erreur est signalée. Databricks recommande d’utiliser expected_facts, car il s’agit d’une directive plus spécifique qui aide le juge d’évaluation de l’agent plus efficacement à la qualité des réponses générées.

Schéma pour la requête

Le schéma de requête peut être l’un des suivants :

  • Schéma d’achèvement de conversation OpenAI. Le schéma d’achèvement de conversation OpenAI doit avoir un tableau d’objets en tant que messages paramètre. Le messages champ peut encoder la conversation complète.
  • Si l’agent prend en charge le schéma d’achèvement de conversation OpenAI, vous pouvez passer une chaîne simple. Ce format prend uniquement en charge les conversations à tour unique. Les chaînes simples sont converties au messages format avant "role": "user" d’être passées à votre agent. Par exemple, une chaîne "What is MLflow?" simple est convertie en {"messages": [{"role": "user", "content": "What is MLflow?"}]} avant d’être passée à votre agent.
  • SplitChatMessagesRequest. Un champ de chaîne query pour la demande la plus récente et un champ history facultatif qui encode les tours précédents de la conversation.

Pour les applications de conversation multitours, utilisez la deuxième ou la troisième option ci-dessus.

L’exemple suivant montre les trois options de la même colonne request du jeu de données d’évaluation :

import pandas as pd

data = {
  "request": [

      # Plain string. Plain strings are transformed to the `messages` format before being passed to your agent.
      "What is the difference between reduceByKey and groupByKey in Spark?",

      # OpenAI chat completion schema. Use the `messages` field for a single- or multi-turn chat.
      {
          "messages": [
              {
                  "role": "user",
                  "content": "How can you minimize data shuffling in Spark?"
              }
          ]
      },

      # SplitChatMessagesRequest. Use the `query` and `history` fields for a single- or multi-turn chat.
      {
          "query": "Explain broadcast variables in Spark. How do they enhance performance?",
          "history": [
              {
                  "role": "user",
                  "content": "What are broadcast variables?"
              },
              {
                  "role": "assistant",
                  "content": "Broadcast variables allow the programmer to keep a read-only variable cached on each machine."
              }
          ]
      }
  ],

  "expected_response": [
    "expected response for first question",
    "expected response for second question",
    "expected response for third question"
  ]
}

eval_dataset = pd.DataFrame(data)

Schéma pour les tableaux dans l’entrée d’évaluation

Le schéma des tableaux expected_retrieved_context et retrieved_context est présenté dans le tableau suivant :

Colonne Type de données Description Application passée en tant qu’argument d’entrée Sorties générées précédemment fournies
content string Contenu du contexte récupéré. Chaîne dans n’importe quel format, tel que HTML, texte brut ou Markdown. Facultatif Facultatif
doc_uri string Identificateur unique (URI) du document parent d’où provient le bloc. Requis Requis

Métriques calculées

Les colonnes du tableau suivant indiquent les données incluses dans l’entrée et indiquent que la métrique est prise en charge lorsque ces données sont fournies.

Pour plus d’informations sur la mesure de ces métriques, consultez Comment la qualité, le coût et la latence sont évalués par l’évaluation de l’agent.

Mesures calculées request request et expected_response request, expected_response et expected_retrieved_context request et expected_retrieved_context
response/llm_judged/relevance_to_query/rating
response/llm_judged/safety/rating
response/llm_judged/groundedness/rating
retrieval/llm_judged/chunk_relevance_precision
agent/total_token_count
agent/input_token_count
agent/output_token_count
response/llm_judged/correctness/rating
retrieval/llm_judged/context_sufficiency/rating
retrieval/ground_truth/document_recall