Référence des juges de l’évaluation de l’agent d’ia mosaïque
Important
Cette fonctionnalité est disponible en préversion publique.
Cet article décrit les détails de chacun des juges LLM intégrés à l’évaluation de l’agent d’ia mosaïque, y compris les entrées requises et les métriques de sortie. Il couvre également la sortie produite par les juges personnalisés.
Pour une présentation des juges LLM, consultez Comment la qualité, le coût et la latence sont évalués par l’évaluation de l’agent.
Juges de réponse
Les mesures de qualité des réponses évaluent la façon dont l’application répond à la requête d’un(e) utilisateur(-trice). Ces métriques évaluent des facteurs tels que la précision de la réponse par rapport à la vérité au sol, si la réponse est bien fondée en fonction du contexte récupéré (ou si le LLM est hallucinant) et si la réponse est sûre et exempte de langue toxique.
Dans l’ensemble, le LLM a-t-il donné une réponse précise ?
Le juge LLM correctness
permet d’obtenir une évaluation binaire et une justification écrite pour déterminer si la réponse générée par l’agent est factuellement exacte et sémantiquement similaire à la réponse de référence fournie.
Entrée requise pour correctness
La vérité de base expected_response
est requise.
Le jeu d’évaluation d’entrée doit avoir les colonnes suivantes :
request
expected_response
En outre, si vous n’utilisez pas l’argument model
dans l’appel de mlflow.evaluate()
, vous devez également fournir response
ou trace
.
Important
La vérité de base expected_response
doit uniquement comprendre l’ensemble minimal de faits nécessaires à une réponse exacte. Si vous copiez une réponse d’une autre source, modifiez la réponse pour supprimer tout texte qui n’est pas requis pour qu’une réponse soit considérée comme 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.
Sortie pour correctness
Les métriques suivantes sont calculées pour chaque question :
champ Données | Type | Description |
---|---|---|
response/llm_judged/correctness/rating |
string |
yes ou no . yes indique que la réponse générée est très précise et sémantiquement similaire à la vérité de base. Des omissions ou des inexactitudes mineures qui capturent toujours l’intention de la référence sont acceptables. no indique que la réponse ne répond pas aux critères. |
response/llm_judged/correctness/rationale |
string |
Raisonnement écrit du LLM pour yes ou no . |
response/llm_judged/correctness/error_message |
string |
S’il y a eu une erreur lors du calcul de cette métrique, les détails de l’erreur sont ici. S’il n’y a pas d’erreur, ceci est NULL. |
La métrique suivante est calculée pour l’ensemble du jeu d’évaluation :
Nom de métrique | Type | Description |
---|---|---|
response/llm_judged/correctness/rating/percentage |
float, [0, 1] |
Sur l’ensemble des questions, pourcentage où l’exactitude est jugée comme yes . |
La réponse est-elle pertinente à la requête ?
Le juge LLM relevance_to_query
détermine si la réponse est pertinente à la requête d’entrée.
Entrée requise pour relevance_to_query
La vérité de base n’est pas requise.
Le jeu d’évaluation d’entrée doit avoir la colonne suivante :
request
En outre, si vous n’utilisez pas l’argument model
dans l’appel de mlflow.evaluate()
, vous devez également fournir response
ou trace
.
Sortie pour relevance_to_query
Les métriques suivantes sont calculées pour chaque question :
champ Données | Type | Description |
---|---|---|
response/llm_judged/relevance_to_query/rating |
string |
yes si la réponse est jugée pertinente à la requête, no sinon. |
response/llm_judged/relevance_to_query/rationale |
string |
Raisonnement écrit du LLM pour yes ou no . |
response/llm_judged/relevance_to_query/error_message |
string |
S’il y a eu une erreur lors du calcul de cette métrique, les détails de l’erreur sont ici. S’il n’y a pas d’erreur, ceci est NULL. |
La métrique suivante est calculée pour l’ensemble du jeu d’évaluation :
Nom de métrique | Type | Description |
---|---|---|
response/llm_judged/relevance_to_query/rating/percentage |
float, [0, 1] |
Sur l’ensemble des questions, pourcentage où relevance_to_query/rating est jugée comme yes . |
La réponse est-elle une hallucination ou ancrée dans le contexte ?
Le juge LLM groundedness
retourne une évaluation binaire et une justification écrite pour déterminer si la réponse générée est factuellement cohérente avec le contexte récupéré.
Entrée requise pour groundedness
La vérité de base n’est pas requise.
Le jeu d’évaluation d’entrée doit avoir la colonne suivante :
request
En outre, si vous n’utilisez pas l’argument model
dans l’appel de mlflow.evaluate()
, vous devez également fournir trace
ou response
ainsi que retrieved_context[].content
.
Sortie pour groundedness
Les métriques suivantes sont calculées pour chaque question :
champ Données | Type | Description |
---|---|---|
response/llm_judged/groundedness/rating |
string |
yes si le contexte récupéré prend en charge toutes ou presque toutes les réponses générées, sinon no . |
response/llm_judged/groundedness/rationale |
string |
Raisonnement écrit du LLM pour yes ou no . |
response/llm_judged/groundedness/error_message |
string |
S’il y a eu une erreur lors du calcul de cette métrique, les détails de l’erreur sont ici. S’il n’y a pas d’erreur, ceci est NULL. |
La métrique suivante est calculée pour l’ensemble du jeu d’évaluation :
Nom de métrique | Type | Description |
---|---|---|
response/llm_judged/groundedness/rating/percentage |
float, [0, 1] |
Sur l’ensemble des questions, quel est le pourcentage où groundedness/rating est jugé comme yes . |
Existe-t-il du contenu nuisible dans la réponse de l’agent ?
Le juge LLM safety
retourne une évaluation binaire et une justification écrite pour savoir si la réponse générée contient du contenu nuisible ou toxique.
Entrée requise pour safety
La vérité de base n’est pas requise.
Le jeu d’évaluation d’entrée doit avoir la colonne suivante :
request
En outre, si vous n’utilisez pas l’argument model
dans l’appel de mlflow.evaluate()
, vous devez également fournir response
ou trace
.
Sortie pour safety
Les métriques suivantes sont calculées pour chaque question :
champ Données | Type | Description |
---|---|---|
response/llm_judged/safety/rating |
string |
yes si la réponse ne contient pas de contenu nuisible ou toxique, no sinon. |
response/llm_judged/safety/rationale |
string |
Raisonnement écrit du LLM pour yes ou no . |
response/llm_judged/safety/error_message |
string |
S’il y a eu une erreur lors du calcul de cette métrique, les détails de l’erreur sont ici. S’il n’y a pas d’erreur, ceci est NULL. |
La métrique suivante est calculée pour l’ensemble du jeu d’évaluation :
Nom de métrique | Type | Description |
---|---|---|
response/llm_judged/safety/rating/average |
float, [0, 1] |
Pourcentage de toutes les questions qui ont été jugées comme yes . |
Juges de récupération
Les métriques de qualité de récupération évaluent les performances du récupérateur dans la recherche des documents pertinents pour la demande d’entrée. Ces métriques évaluent les facteurs tels que : le récupérateur a-t-il trouvé les blocs pertinents ? Combien de documents pertinents connus ont-ils trouvés ? Les documents qu’il a trouvés suffisants pour produire la réponse attendue ?
Le récupérateur a-t-il trouvé des blocs pertinents ?
Le juge LLM chunk-relevance-precision
détermine si les blocs retournés par le récupérateur sont pertinents pour la requête d’entrée. La précision est calculée comme le nombre de blocs pertinents retournés divisé par le nombre total de blocs retournés. Par exemple, si le récupérateur retourne quatre blocs et que le juge LLM détermine que trois des quatre documents retournés sont pertinents pour la requête, alors la llm_judged/chunk_relevance/precision
est de 0,75.
Entrée requise pour llm_judged/chunk_relevance
La vérité de base n’est pas requise.
Le jeu d’évaluation d’entrée doit avoir la colonne suivante :
request
En outre, si vous n’utilisez pas l’argument model
dans l’appel de mlflow.evaluate()
, vous devez également fournir retrieved_context[].content
ou trace
.
Sortie pour llm_judged/chunk_relevance
Les métriques suivantes sont calculées pour chaque question :
champ Données | Type | Description |
---|---|---|
retrieval/llm_judged/chunk_relevance/ratings |
array[string] |
Pour chaque bloc, yes ou no , indiquant si le bloc récupéré est pertinent pour la requête d’entrée. |
retrieval/llm_judged/chunk_relevance/rationales |
array[string] |
Pour chaque bloc, le raisonnement du LLM pour l’évaluation correspondante. |
retrieval/llm_judged/chunk_relevance/error_messages |
array[string] |
Pour chaque bloc, s’il y a eu une erreur dans le calcul de la note, les détails de l’erreur sont ici, et les autres valeurs de sortie seront NULL. S’il n’y a pas d’erreur, ceci est NULL. |
retrieval/llm_judged/chunk_relevance/precision |
float, [0, 1] |
Calcule le pourcentage de blocs pertinents parmi tous les blocs récupérés. |
La métrique suivante est rapportée pour l’ensemble du jeu d’évaluation :
Nom de métrique | Type | Description |
---|---|---|
retrieval/llm_judged/chunk_relevance/precision/average |
float, [0, 1] |
Valeur moyenne de chunk_relevance/precision pour toutes les questions. |
Combien de documents pertinents connus le récupérateur a-t-il trouvé ?
document_recall
est calculé comme le nombre de documents pertinents retournés divisé par le nombre total de documents pertinents en fonction de la vérité de base. Par exemple, supposons que deux documents soient pertinents en fonction de la vérité de base. Si le récupérateur retourne l’un de ces documents, document_recall
est de 0,5. Cette métrique n’est pas affectée par le nombre total de documents retournés.
Cette métrique est déterministe et n’utilise pas de juge LLM.
Entrée requise pour document_recall
La vérité de base est requise.
Le jeu d’évaluation d’entrée doit avoir la colonne suivante :
expected_retrieved_context[].doc_uri
En outre, si vous n’utilisez pas l’argument model
dans l’appel de mlflow.evaluate()
, vous devez également fournir retrieved_context[].doc_uri
ou trace
.
Sortie pour document_recall
La métrique suivante est calculée pour chaque question :
champ Données | Type | Description |
---|---|---|
retrieval/ground_truth/document_recall |
float, [0, 1] |
Pourcentage des doc_uris de référence présents dans les blocs récupérés. |
La métrique suivante est calculée pour l’ensemble du jeu d’évaluation :
Nom de métrique | Type | Description |
---|---|---|
retrieval/ground_truth/document_recall/average |
float, [0, 1] |
Valeur moyenne de document_recall pour toutes les questions. |
Le récupérateur a-t-il trouvé des documents suffisants pour produire la réponse attendue ?
Le juge LLM context_sufficiency
détermine si le récupérateur a récupéré des documents suffisants pour produire la réponse attendue.
Entrée requise pour context_sufficiency
La vérité de base expected_response
est requise.
Le jeu d’évaluation d’entrée doit avoir les colonnes suivantes :
request
expected_response
En outre, si vous n’utilisez pas l’argument model
dans l’appel de mlflow.evaluate()
, vous devez également fournir retrieved_context[].content
ou trace
.
Sortie pour context_sufficiency
Les métriques suivantes sont calculées pour chaque question :
champ Données | Type | Description |
---|---|---|
retrieval/llm_judged/context_sufficiency/rating |
string |
yes ou no . yes indique que le contexte récupéré est suffisant pour produire la réponse attendue. no indique que la récupération doit être paramétrée pour cette question afin qu’elle renvoie les informations manquantes. La logique de sortie doit mentionner les informations manquantes. |
retrieval/llm_judged/context_sufficiency/rationale |
string |
Raisonnement écrit du LLM pour yes ou no . |
retrieval/llm_judged/context_sufficiency/error_message |
string |
S’il y a eu une erreur lors du calcul de cette métrique, les détails de l’erreur sont ici. S’il n’y a pas d’erreur, ceci est NULL. |
La métrique suivante est calculée pour l’ensemble du jeu d’évaluation :
Nom de métrique | Type | Description |
---|---|---|
retrieval/llm_judged/context_sufficiency/rating/percentage |
float, [0, 1] |
Pourcentage où la suffisance de contexte est jugée comme yes . |
Métriques des juges personnalisés
Vous pouvez créer un juge personnalisé pour effectuer des évaluations spécifiques à votre cas d’utilisation. Pour plus d’informations, consultez Créer des juges LLM.
La sortie produite par un juge personnalisé dépend de son assessment_type
, ANSWER
ou RETRIEVAL
.
Juge LLM personnalisé pour l’évaluation des RÉPONSES
Un juge LLM personnalisé pour l’évaluation des RÉPONSES évalue la réponse pour chaque question.
Sorties fournies pour chaque évaluation :
champ Données | Type | Description |
---|---|---|
response/llm_judged/{assessment_name}/rating |
string |
yes ou no . |
response/llm_judged/{assessment_name}/rationale |
string |
Raisonnement écrit du LLM pour yes ou no . |
response/llm_judged/{assessment_name}/error_message |
string |
S’il y a eu une erreur lors du calcul de cette métrique, les détails de l’erreur sont ici. S’il n’y a pas d’erreur, ceci est NULL. |
La métrique suivante est calculée pour l’ensemble du jeu d’évaluation :
Nom de métrique | Type | Description |
---|---|---|
response/llm_judged/{assessment_name}/rating/percentage |
float, [0, 1] |
Sur l’ensemble des questions, pourcentage où {assessment_name} est jugé comme yes . |
Juge LLM personnalisé pour l’évaluation de la RÉCUPÉRATION
Un juge LLM personnalisé pour l’évaluation de la RÉCUPÉRATION évalue chaque bloc récupéré sur l’ensemble des questions.
Sorties fournies pour chaque évaluation :
champ Données | Type | Description |
---|---|---|
retrieval/llm_judged/{assessment_name}/ratings |
array[string] |
Évaluation du juge personnalisé pour chaque bloc, yes ou no . |
retrieval/llm_judged/{assessment_name}/rationales |
array[string] |
Pour chaque bloc, le raisonnement écrit par LLM pour yes ou no . |
retrieval/llm_judged/{assessment_name}/error_messages |
array[string] |
Pour chaque bloc, s’il y a eu une erreur lors du calcul de cette mesure, les détails de l’erreur sont ici et les autres valeurs sont NULL. S’il n’y a pas d’erreur, ceci est NULL. |
retrieval/llm_judged/{assessment_name}/precision |
float, [0, 1] |
Pourcentage de tous les blocs récupérés que le juge personnalisé a évalué comme yes . |
Mesures rapportées pour l’ensemble du jeu d’évaluation :
Nom de métrique | Type | Description |
---|---|---|
retrieval/llm_judged/{assessment_name}/precision/average |
float, [0, 1] |
Valeur moyenne de {assessment_name}_precision pour toutes les questions. |