Partager via


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.