Model et Evaluation. Les API sont conçues pour faire le moins d’hypothèses possible, ce qui les rend flexibles pour un large éventail de cas d’usage.

Ce que vous allez apprendre
- Configurer un
Model. - Créer un jeu de données de référence pour tester les réponses d’un LLM.
- Définir une fonction de score pour comparer les sorties du modèle aux sorties attendues.
- Exécuter une évaluation qui teste le modèle sur le jeu de données à l’aide de la fonction de score et d’un scorer intégré supplémentaire.
- Afficher les résultats de l’évaluation dans l’interface Weave.
Prérequis
- Un compte W&B
- Python 3.10+ ou Node.js 18+
- Packages requis :
- Python:
pip install weave openai - TypeScript:
npm install weave openai
- Python:
- Une clé API OpenAI configurée comme variable d’environnement.
Importez les bibliothèques et les fonctions nécessaires
- Python
- TypeScript
Créer un Model
Models sont des objets qui capturent à la fois le comportement de votre modèle ou agent (logique, prompt, paramètres) et ses métadonnées versionnées (paramètres, code, micro-configuration), afin que vous puissiez le suivre, le comparer, l’évaluer et itérer dessus en toute fiabilité.
Lorsque vous instanciez un Model, Weave capture automatiquement sa configuration et son comportement, puis met à jour sa version lorsqu’il change. Vous pouvez ainsi suivre ses performances au fil du temps à mesure que vous l’améliorez.
Pour déclarer un Model, créez une sous-classe de Model et implémentez une fonction predict qui prend un exemple en entrée et renvoie la réponse.
Le modèle d’exemple suivant utilise OpenAI pour extraire les noms, les couleurs et les saveurs de fruits extraterrestres à partir de phrases d’entrée.
- Python
- TypeScript
ExtractFruitsModel hérite de weave.Model, ce qui permet à Weave de suivre l’objet instancié. @weave.op décore la fonction predict pour suivre ses entrées et ses sorties.
Vous pouvez instancier des objets Model comme ceci :
- Python
- TypeScript
Créer un jeu de données
Model défini, vous avez maintenant besoin d’un jeu de données pour l’évaluer. Un Dataset est une collection d’exemples stockée comme objet Weave. Publier le jeu de données dans Weave le versionne et le rend réutilisable dans plusieurs runs d’évaluation.
L’exemple de jeu de données suivant définit trois phrases d’entrée et leurs réponses correctes (labels), puis les met en forme dans un tableau JSON que les fonctions de scoring peuvent lire.
Cet exemple construit une liste d’exemples dans le code, mais vous pouvez aussi les journaliser une par une depuis votre application en cours d’exécution.
- Python
- TypeScript
weave.Dataset() et publiez-le :
- Python
- TypeScript
Définir des fonctions de score personnalisées
output du modèle à la cible attendue et produisent les métriques qu’une évaluation rapporte.
Lorsque vous utilisez les évaluations Weave, Weave s’attend à recevoir une target à comparer à output. La fonction de score suivante prend deux dictionnaires (target et output) et renvoie un dictionnaire de valeurs booléennes indiquant si la sortie correspond à la cible. Le décorateur @weave.op() permet à Weave de suivre l’exécution de la fonction de score.
- Python
- TypeScript
Scorer personnalisées. Par exemple, vous pouvez créer une classe LLMJudge standardisée avec des paramètres spécifiques (comme un modèle de chat ou un prompt), une logique de scoring par ligne spécifique et un calcul de score agrégé. Pour plus d’informations, voir le tutoriel sur la définition d’une classe Scorer dans l’évaluation des applications RAG basée sur des modèles.
Utiliser un évaluateur intégré et exécuter l’évaluation
weave.Evaluation() utilise la fonction fruit_name_score définie dans la section précédente ainsi que l’évaluateur intégré MultiTaskBinaryClassificationF1, qui calcule les scores F1.
L’exemple suivant exécute une évaluation de ExtractFruitsModel sur le jeu de données fruits à l’aide de ces deux fonctions de score et journalise les résultats dans Weave.
- Python
- TypeScript
Si vous exécutez ce code depuis un script Python, vous devrez utiliser
asyncio.run. En revanche, si vous l’exécutez dans un notebook Jupyter, vous pouvez utiliser directement await.Exemple complet
Pipeline d’évaluation complet dans un script unique :
Pipeline d’évaluation complet dans un script unique :
- Python
- TypeScript
Consultez les résultats de votre évaluation

En savoir plus sur les évaluations Weave
- Découvrez comment créer et utiliser des évaluateurs.
- Découvrez les fonctions de scoring intégrées de Weave.
- Découvrez l’Évaluation basée sur des modèles pour utiliser des LLM comme juges.