Passer au contenu principal
W&B Weave propose plusieurs évaluateurs prédéfinis pour évaluer vos applications d’IA, comme la détection des hallucinations et la qualité des résumés. Ils peuvent être utiles pour définir rapidement une évaluation et attribuer un score aux sorties de votre application. Cette page décrit chaque évaluateur intégré, ce qu’il mesure et comment l’utiliser dans une évaluation.
Les évaluateurs locaux sont disponibles uniquement pour le SDK Python de Weave. Ils ne sont pas encore disponibles pour le SDK TypeScript de Weave.Pour utiliser les évaluateurs Weave en TypeScript, voir les évaluateurs basés sur des fonctions.

Installation

Pour utiliser les évaluateurs prédéfinis de Weave, installez certaines dépendances supplémentaires :
Évaluateurs LLM Les évaluateurs prédéfinis qui utilisent des LLM s’intègrent automatiquement à litellm. Vous n’avez pas besoin de passer un client LLM. Définissez plutôt model_id. Voir les modèles pris en charge.

HallucinationFreeScorer

Ce scorer vérifie si la sortie de votre système d’IA contient des hallucinations, sur la base des données d’entrée.
Personnalisation
  • Personnalisez les champs system_prompt et user_prompt du scorer pour définir ce que signifie « hallucination » dans votre cas.
Remarques
  • La méthode score attend une colonne d’entrée nommée context. Si votre dataset utilise un autre nom, utilisez l’attribut column_map pour associer context à la colonne du dataset.
L’exemple suivant utilise HallucinationFreeScorer dans le cadre d’une évaluation :

SummarizationScorer

Utilisez un LLM pour comparer une synthèse au texte d’origine et en évaluer la qualité.
Fonctionnement Ce scorer évalue les synthèses de deux manières :
  1. Densité d’entités : vérifie le ratio entre les entités uniques (telles que des noms, des lieux ou des objets) mentionnées dans la synthèse et le nombre total de mots qu’elle contient afin d’estimer sa “densité d’information”. Il utilise un LLM pour extraire les entités. Cette approche est similaire à la manière dont la densité d’entités est utilisée dans l’article Chain of Density.
  2. Évaluation de la qualité : un évaluateur LLM classe la synthèse comme poor, ok ou excellent. Ces évaluations sont ensuite converties en scores (0.0 pour poor, 0.5 pour ok et 1.0 pour excellent) pour l’évaluation agrégée des performances.
Personnalisation
  • Ajustez summarization_evaluation_system_prompt et summarization_evaluation_prompt pour personnaliser le processus d’évaluation.
Notes
  • Le scorer utilise litellm en interne.
  • La méthode score suppose que le texte original (le texte à synthétiser) est présent dans la colonne input. Utilisez l’attribut column_map si votre dataset utilise un autre nom.
L’exemple suivant utilise SummarizationScorer dans le cadre d’une évaluation :

OpenAIModerationScorer

Le OpenAIModerationScorer utilise l’API Moderation d’OpenAI pour vérifier si la sortie du système d’IA contient du contenu non autorisé, comme des discours haineux ou du contenu explicite.
Fonctionnement
  • Envoie la sortie de l’IA au point de terminaison OpenAI Moderation et renvoie une réponse structurée indiquant si le contenu a été signalé.
L’exemple suivant utilise OpenAIModerationScorer dans le cadre d’une évaluation :

EmbeddingSimilarityScorer

EmbeddingSimilarityScorer calcule la similarité cosinus entre les embeddings de la sortie du système d’IA et un texte cible de votre jeu de données. Utilisez-le pour mesurer le degré de similarité entre la sortie de l’IA et un texte de référence.
Paramètres
  • threshold (float) : Le score minimal de similarité cosinus (entre -1 et 1) requis pour considérer que les deux textes sont similaires (valeur par défaut : 0.5).
L’exemple suivant utilise EmbeddingSimilarityScorer dans le cadre d’une évaluation :

ValidJSONScorer

Le ValidJSONScorer vérifie si la sortie du système d’IA est un JSON valide. Ce scorer est utile lorsque vous attendez une sortie au format JSON et devez en vérifier la validité.
L’exemple suivant utilise ValidJSONScorer dans le cadre d’une évaluation :

ValidXMLScorer

Le ValidXMLScorer vérifie si la sortie du système d’IA est un document XML valide. Utilisez-le lorsque vous attendez des sorties au format XML.
L’exemple suivant utilise ValidXMLScorer dans le cadre d’une évaluation :

PydanticScorer

Le PydanticScorer valide la sortie du système d’IA par rapport à un modèle Pydantic afin de garantir qu’elle respecte un schéma ou une structure de données donnés.

RAGAS - ContextEntityRecallScorer

Le ContextEntityRecallScorer estime le rappel du contexte en extrayant les entités à la fois de la sortie du système d’IA et du contexte fourni, puis en calculant le score de rappel. Il s’appuie sur la bibliothèque d’évaluation Retrieval Augmented Generation Assessment (RAGAS).
Fonctionnement
  • Utilise un LLM pour extraire les entités uniques de la sortie et du contexte, puis calcule le rappel.
  • Le rappel indique la proportion d’entités importantes du contexte présentes dans la sortie.
  • Renvoie un dictionnaire contenant le score de rappel.
Notes

RAGAS - ContextRelevancyScorer

Le ContextRelevancyScorer évalue la pertinence du contexte fourni par rapport à la sortie du système d’IA. Il est basé sur la bibliothèque d’évaluation RAGAS.
Fonctionnement
  • Utilise un LLM pour évaluer la pertinence du contexte par rapport à la sortie sur une échelle de 0 à 1.
  • Renvoie un dictionnaire contenant le relevancy_score.
Remarques
  • Nécessite une colonne context dans votre dataset. Utilisez l’attribut column_map si le nom de la colonne est différent.
  • Personnalisez relevancy_prompt pour définir la manière dont la pertinence est évaluée.
L’exemple suivant utilise ContextEntityRecallScorer et ContextRelevancyScorer ensemble dans le cadre d’une évaluation :
Remarque : Les évaluateurs intégrés sont calibrés à l’aide de modèles OpenAI, tels que openai/gpt-4o et openai/text-embedding-3-small. Pour utiliser un autre fournisseur, mettez à jour le champ model_id. Par exemple, pour utiliser un modèle Anthropic :