- Python
- TypeScript
Passez des évaluateurs à un objet
weave.Evaluation pendant l’évaluation. Weave prend en charge deux types d’évaluateurs :- évaluateurs basés sur des fonctions : fonctions Python décorées avec
@weave.op. - évaluateurs basés sur des classes : classes Python qui héritent de
weave.Scorerpour des évaluations plus complexes.
Créez vos propres évaluateurs
évaluateurs basés sur des fonctions
- Python
- TypeScript
Il s’agit de fonctions décorées avec Lorsque vous exécutez l’évaluation,
@weave.op qui renvoient un dictionnaire. Elles conviennent bien à des évaluations simples comme :evaluate_uppercase vérifie si le texte est entièrement en majuscules.évaluateurs basés sur des classes
- Python
- TypeScript
Pour des évaluations plus avancées, en particulier lorsque vous devez suivre des métadonnées supplémentaires associées au scorer, essayer différents prompts pour vos évaluateurs LLM ou effectuer plusieurs appels de fonction, utilisez la classe Cette classe évalue la qualité d’un résumé en le comparant au texte original.
Scorer.Exigences :- Héritez de
weave.Scorer. - Définissez une méthode
scoredécorée avec@weave.op. - La méthode
scoredoit renvoyer un dictionnaire.
Fonctionnement des évaluateurs
Arguments nommés des évaluateurs
- Python
- TypeScript
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 du jeu de données.Lorsqu’une Mapper les noms de colonnes avec
Il arrive que les noms des arguments de la méthode Désormais, l’argument
- Entrée : Si vous চান que votre évaluateur utilise des données de la ligne de votre jeu de données, comme une colonne
labeloutarget, ajoutez un argument nommélabeloutargetà la définition de votre évaluateur pour les lui rendre accessibles.
label de votre jeu de données, votre fonction d’évaluation (ou la méthode de classe score) doit avoir une liste de paramètres comme celle-ci :Evaluation Weave s’exécute, elle transmet la sortie du système d’IA au paramètre output. Evaluation essaie également automatiquement d’associer les noms des arguments supplémentaires de l’évaluateur aux colonnes de votre jeu de données. Si vous ne pouvez pas 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
outputdans la signature de la fonction de votre évaluateur pour accéder à la sortie du système d’IA.
Mapper les noms de colonnes avec column_map
Il arrive que les noms des arguments de la méthode score ne correspondent pas aux noms des colonnes de votre jeu de données. Vous pouvez corriger cela à l’aide de 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 des arguments de votre méthode score aux noms des colonnes du jeu de données, selon le format {scorer_keyword_argument: dataset_column_name}.Exemple :text de la méthode score reçoit les données de la colonne news_article du jeu de données.Remarques :- Une autre option équivalente pour mapper vos colonnes consiste à sous-classer
Scoreret à surcharger la méthodescoreafin d’associer explicitement les colonnes.
Accéder aux variables de vos ops dans les prompts de scoring
| Variable | Description |
|---|---|
{article} | La valeur de l’argument d’entrée article |
{max_length} | La valeur de l’argument d’entrée max_length |
{inputs} | Un dictionnaire JSON de tous les arguments d’entrée |
{output} | Le résultat renvoyé par votre op |
Résumé final du scorer
- Python
- TypeScript
Pendant l’évaluation, Weave calcule le scorer pour chaque ligne de votre jeu de données. Pour produire un score final pour 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 et fournir votre propre manière de calculer les scores finaux. La fonction summarize attend :- Un seul paramètre
score_rows: une liste de dictionnaires, où chaque dictionnaire contient les scores renvoyés par la méthodescorepour une ligne de votre jeu de données. - Elle renvoie un dictionnaire contenant les scores récapitulatifs.
Dans cet exemple, auto_summarize renverrait par défaut le nombre et la proportion de valeurs True.
Pour plus d’informations, voir l’implémentation de CorrectnessLLMJudge.Appliquer des évaluateurs à un appel
weave.Evaluation, vous pouvez les appliquer directement à un appel donné. Cela est utile lorsque vous souhaitez évaluer le trafic de production ou associer des métriques d’évaluation à une invocation d’op spécifique.
Pour appliquer des évaluateurs à vos ops Weave, utilisez la méthode .call(), qui vous donne accès à la fois au résultat de l’opération et à ses informations de suivi. Cela vous permet d’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 Calling Ops.
- Python
- TypeScript
Voici un exemple simple :Vous pouvez également appliquer plusieurs évaluateurs au même appel :Notes :
- 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.
Utiliser preprocess_model_input
preprocess_model_input pour modifier les exemples du jeu de données avant qu’ils n’atteignent votre modèle pendant l’évaluation.
Pour plus d’informations sur l’utilisation et pour un exemple, voir Utiliser preprocess_model_input pour mettre en forme les lignes du jeu de dataset avant l’évaluation.
Analyse des scores
Analyser les scores d’un appel unique
API pour un appel unique
get_call.
UI d’un appel unique

Analyser les scores de plusieurs appels
API des appels multiples
get_calls.
Interface des appels multiples

Analyser tous les appels évalués par un scorer spécifique
API de tous les appels par scorer
get_calls.
Tous les appels d’un Scorer dans l’UI


