Skip to main content
Dans Weave, les évaluateurs évaluent les sorties d’IA et renvoient des métriques d’évaluation. Ils reçoivent la sortie de l’IA, l’analysent et renvoient un dictionnaire de résultats. Si nécessaire, les évaluateurs peuvent s’appuyer sur vos données d’entrée comme référence et produire des informations supplémentaires, comme des explications ou le raisonnement ayant conduit à l’évaluation. Ce guide s’adresse aux développeurs qui souhaitent mesurer la qualité des sorties de leur système d’IA. Il explique comment les évaluateurs s’intègrent aux évaluations Weave, comment créer vos propres évaluateurs, comment les appliquer à des appels individuels et comment analyser les scores obtenus.
Transmettez des évaluateurs à un objet weave.Evaluation lors de l’évaluation. Weave prend en charge deux types d’évaluateurs :
  1. Évaluateurs basés sur des fonctions : fonctions Python décorées avec @weave.op.
  2. Évaluateurs basés sur des classes : classes Python qui héritent de weave.Scorer, destinées aux évaluations plus complexes.
Les évaluateurs doivent renvoyer un dictionnaire et peuvent renvoyer plusieurs métriques, des métriques imbriquées ainsi que des valeurs non numériques, comme le texte produit par un LLM évaluateur pour expliquer son raisonnement.

Créer vos propres évaluateurs

Les évaluateurs personnalisés vous permettent de définir des critères d’évaluation propres à votre cas d’usage, au-delà de ce que couvrent les évaluateurs intégrés. Les sections suivantes décrivent les deux façons de définir un évaluateur : sous forme de fonction, ou sous forme de classe pour une logique plus complexe.
Évaluateurs prêts à l’emploi Ce guide explique comment créer des évaluateurs personnalisés, mais Weave propose également des évaluateurs prédéfinis et des évaluateurs SLM locaux utilisables immédiatement, notamment :

Évaluateurs basés sur des fonctions

Les évaluateurs basés sur des fonctions sont des fonctions décorées avec @weave.op qui renvoient un dictionnaire. Ils sont bien adaptés aux évaluations simples, comme celle-ci :
Lorsque vous exécutez l’évaluation, evaluate_uppercase vérifie si le texte est entièrement en majuscules.

Évaluateurs basés sur des classes

Pour des évaluations plus avancées, notamment lorsque vous devez suivre des métadonnées supplémentaires de l’évaluateur, tester différents prompts pour vos évaluateurs LLM ou effectuer plusieurs appels de fonctions, utilisez la classe Scorer.Exigences :
  1. Héritez de weave.Scorer.
  2. Définissez une méthode score décorée avec @weave.op.
  3. La méthode score doit renvoyer un dictionnaire.
Exemple :
Cette classe évalue la qualité d’une synthèse en la comparant au texte original.

Fonctionnement des évaluateurs

Cette section explique comment les évaluateurs reçoivent les données de votre évaluation, comment mapper les colonnes du jeu de données aux arguments des évaluateurs, comment faire référence aux variables d’un op dans les prompts d’évaluation, et comment Weave agrège les scores de chaque ligne en un résultat final.

Arguments nommés des évaluateurs

Les évaluateurs peuvent accéder à la fois à la sortie de votre système d’IA et aux données d’entrée de la ligne de jeu de données.
  • Entrée : si vous souhaitez que votre évaluateur utilise des données de votre ligne de jeu de données, comme une colonne label ou target, mettez-les à sa disposition en ajoutant un argument nommé label ou target à la définition de votre évaluateur.
Par exemple, si vous souhaitez utiliser une colonne label de votre jeu de données, votre fonction d’évaluation (ou la méthode de classe score) aura une liste de paramètres de ce type :
Lorsqu’une Evaluation Weave s’exécute, elle transmet la sortie du système d’IA au paramètre output. L’Evaluation tente également de faire correspondre automatiquement les autres noms d’arguments de l’évaluateur aux colonnes de votre jeu de données. S’il n’est pas possible de personnaliser les arguments de votre évaluateur ou les colonnes de votre jeu de données, vous pouvez utiliser le mappage de colonnes. Voir la section suivante.
  • Sortie : incluez un paramètre output dans la signature de votre fonction d’évaluation pour accéder à la sortie du système d’IA.

Mapper les noms de colonnes avec column_map

Il arrive que les noms d’arguments de la méthode score ne correspondent pas aux noms de colonnes de votre jeu de données. Vous pouvez résoudre ce problème à l’aide d’un column_map.Si vous utilisez un évaluateur basé sur une classe, transmettez un dictionnaire à l’attribut column_map de Scorer lors de l’initialisation de votre classe d’évaluateur. Ce dictionnaire associe les noms d’arguments de votre méthode score aux noms de colonnes du jeu de données, sous la forme {scorer_keyword_argument: dataset_column_name}.Exemple :
L’argument text de la méthode score reçoit désormais les données de la colonne news_article du jeu de données.Remarques :
  • Pour mapper vos colonnes, vous pouvez également créer une sous-classe de Scorer et surcharger la méthode score en mappant explicitement les colonnes.

Accéder aux variables de vos ops dans les prompts d’évaluation

Dans les prompts d’évaluation des évaluateurs LLM-as-a-judge, vous pouvez faire référence aux variables de votre op. Weave extrait automatiquement ces valeurs lors de l’exécution de l’évaluateur. Par exemple, pour une fonction comme celle-ci :
Les variables suivantes sont disponibles : Exemple de prompt d’évaluation :

Synthèse finale de l’évaluateur

Pendant l’évaluation, Weave calcule l’évaluateur pour chaque ligne de votre jeu de données. Pour obtenir un score final de l’évaluation, Weave exécute auto_summarize en fonction du type de retour de la sortie.Vous pouvez redéfinir la méthode summarize de la classe Scorer pour fournir votre propre méthode de calcul des scores finaux. La fonction summarize attend :
  • Un seul paramètre score_rows : une liste de dictionnaires, dans laquelle chaque dictionnaire contient les scores renvoyés par la méthode score pour une ligne de votre jeu de données.
  • Elle renvoie un dictionnaire contenant les scores synthétisés.
Quel intérêt ?Cette approche est utile lorsque vous devez évaluer toutes les lignes avant de déterminer la valeur finale du score pour le jeu de données.
Dans cet exemple, la fonction auto_summarize par défaut renverrait le nombre et la proportion de valeurs True.
Pour plus d’informations, voir l’implémentation de CorrectnessLLMJudge.

Appliquer des évaluateurs à un appel

En plus d’exécuter des évaluateurs dans le cadre d’une weave.Evaluation, vous pouvez les appliquer directement à un appel individuel. C’est utile lorsque vous souhaitez évaluer le trafic de production ou joindre des métriques d’évaluation à une invocation d’op précise. Pour appliquer des évaluateurs à vos ops Weave, utilisez la méthode .call(), qui donne accès à la fois au résultat de l’opération et à ses informations de suivi. Vous pouvez ainsi associer les résultats des évaluateurs à des appels spécifiques dans la base de données de Weave. Pour plus d’informations sur l’utilisation de la méthode .call(), consultez le guide Appeler des ops.
Voici un exemple de base :
Vous pouvez également appliquer plusieurs évaluateurs au même appel :
Remarques :
  • Weave stocke automatiquement les résultats des évaluateurs dans sa base de données.
  • Les évaluateurs s’exécutent de manière asynchrone une fois l’opération principale terminée.
  • Vous pouvez consulter les résultats des évaluateurs dans l’interface utilisateur ou les interroger via l’API.
Pour plus de détails sur l’utilisation des évaluateurs comme garde-fous ou moniteurs, notamment les bonnes pratiques en production et des exemples complets, consultez le guide Garde-fous et moniteurs.

Utiliser preprocess_model_input

Vous pouvez utiliser le paramètre preprocess_model_input pour modifier les exemples du jeu de données avant qu’ils ne soient transmis à votre modèle pendant l’évaluation. Pour en savoir plus sur son utilisation et consulter un exemple, voir Utiliser preprocess_model_input pour formater les lignes du jeu de données avant l’évaluation.

Analyse des scores

Une fois vos évaluateurs exécutés, vous aurez souvent besoin d’examiner les scores qu’ils ont produits pour comprendre le comportement du modèle ou comparer des versions. Les sections suivantes expliquent comment analyser les scores d’un appel unique, d’appels multiples et de tous les appels évalués par un évaluateur spécifique, à la fois avec l’API et dans l’interface utilisateur de Weights & Biases.

Analyser les scores d’un appel unique

API d’appel unique

Pour récupérer un appel unique, utilisez la méthode get_call.

Interface d’un appel unique

Onglet Scores de l’appel
Le panneau des détails de l’appel affiche les scores d’un appel donné dans l’onglet Scores.

Analyser les scores d’appels multiples

API d’appels multiples

Pour récupérer plusieurs appels, utilisez la méthode get_calls.

Interface pour plusieurs appels

Onglet Appels multiples
Le tableau des traces affiche les scores de plusieurs appels dans la colonne Scores.

Analyser tous les appels évalués par un évaluateur spécifique

API de tous les appels par évaluateur

Pour récupérer tous les appels évalués par un évaluateur spécifique, utilisez la méthode get_calls.

Tous les appels par évaluateur dans l’interface utilisateur

Enfin, pour voir tous les appels évalués par un évaluateur, accédez à l’onglet Évaluateurs dans l’interface utilisateur, puis sélectionnez l’onglet Programmatic évaluateur. Cliquez sur votre évaluateur pour ouvrir sa page de détails.
Page de détails de l’évaluateur
Cliquez ensuite sur le bouton View Traces sous Scores pour afficher tous les appels évalués par votre évaluateur.
Appels filtrés par version de l’évaluateur
Par défaut, les résultats sont filtrés sur la version sélectionnée de l’évaluateur. Supprimez le filtre de version pour voir tous les appels évalués par n’importe quelle version de l’évaluateur.
Appels filtrés par nom de l’évaluateur
Dernière modification le 30 septembre 2026