Skip to main content
Ceci est un notebook interactif. Vous pouvez l’exécuter localement ou utiliser les liens suivants :
BIG-bench (Beyond the Imitation Game Benchmark) est un benchmark collaboratif qui évalue les grands modèles de langage et extrapole leurs capacités futures sur plus de 200 tâches. BIG-Bench Hard (BBH) regroupe les 23 tâches BIG-Bench les plus difficiles, que la génération actuelle de modèles de langage peut avoir du mal à résoudre. Ce tutoriel montre comment améliorer les performances d’un flux de travail LLM appliqué à la tâche de jugement causal du benchmark BIG-bench Hard, et comment évaluer différentes stratégies de prompting. Vous utiliserez DSPy pour implémenter le flux de travail LLM et optimiser la stratégie de prompting, ainsi que Weave pour suivre le flux de travail LLM et évaluer les stratégies de prompting. À la fin de ce tutoriel, vous aurez créé un programme DSPy de référence pour le raisonnement causal, vous l’aurez évalué avec Weave, vous aurez appliqué un optimiseur DSPy pour améliorer sa stratégie de prompting, puis comparé le programme optimisé à la référence. Ce tutoriel s’adresse aux praticiens qui souhaitent appliquer l’optimisation des prompts à leurs propres flux de travail LLM et utiliser Weave pour suivre et comparer les résultats.

Installer les dépendances

Avant de commencer, installez les bibliothèques utilisées tout au long du tutoriel. Ce tutoriel utilise les bibliothèques suivantes :
  • DSPy pour créer et optimiser le flux de travail LLM.
  • Weave pour suivre le flux de travail LLM et évaluer différentes stratégies de prompting.
  • datasets pour accéder au dataset BIG-Bench Hard depuis le Hugging Face Hub.
Ce tutoriel utilisant l’API OpenAI comme fournisseur de LLM, vous avez également besoin d’une clé API OpenAI. Pour obtenir votre propre clé API, vous pouvez vous inscrire sur la plateforme OpenAI.

Activer le suivi avec Weave

Cette section configure Weave afin que les appels DSPy effectués dans la suite du tutoriel soient automatiquement tracés et consultables dans l’interface utilisateur de Weights & Biases. Weave s’intègre à DSPy. Il suffit d’ajouter weave.init au début de votre code pour tracer automatiquement vos fonctions DSPy, que vous pourrez ensuite explorer dans l’interface utilisateur de Weights & Biases. Pour plus d’informations, voir la documentation de l’intégration Weave pour DSPy.
Ce tutoriel utilise une classe de métadonnées qui hérite de weave.Object pour gérer les métadonnées.
Gestion des versions des objets : les objets Metadata sont automatiquement versionnés et tracés dès lors que les fonctions qui les utilisent sont tracées.

Charger le dataset BIG-Bench Hard

Une fois le suivi Weave activé, l’étape suivante consiste à préparer les données qui serviront à entraîner et à évaluer le programme DSPy. Chargez ce dataset depuis le HuggingFace Hub, divisez-le en ensembles d’entraînement et de validation, puis publiez-les sur Weave. La publication vous permet de versionner les datasets, mais aussi d’utiliser weave.Evaluation pour évaluer votre stratégie de prompting.
Interface de chargement du dataset DSPy, avec les étapes de préparation du dataset et la structure des données

Le programme DSPy

Une fois le dataset publié dans Weave, vous pouvez définir le programme DSPy de référence que vous évaluerez et optimiserez par la suite. DSPy est un framework qui éloigne la création de nouveaux pipelines de LM de la manipulation de chaînes de caractères libres pour la rapprocher de la programmation (composition d’opérateurs modulaires pour construire des graphes de transformation de texte), un compilateur générant automatiquement, à partir d’un programme, des stratégies d’invocation de LM et des prompts optimisés. Utilisez dspy.LM pour configurer le modèle de langage et dspy.configure pour le définir comme modèle par défaut.

Écrire la signature de raisonnement causal

Une signature est une spécification déclarative du comportement d’entrée/sortie d’un module DSPy. Les modules DSPy sont des composants qui s’adaptent à la tâche (à la manière des couches d’un réseau de neurones) et qui abstraient une transformation de texte donnée.
Testez le flux de travail LLM (c’est-à-dire le CausalReasoningModule) sur un exemple tiré du sous-ensemble de raisonnement causal de BIG-Bench Hard.
Résultats d’évaluation du programme DSPy de référence, avec les métriques de performances et des exemples de sorties

Évaluer le programme DSPy

Maintenant que vous disposez d’une stratégie de prompting de référence, évaluez-la sur l’ensemble de validation à l’aide de weave.Evaluation, avec une métrique qui compare la réponse prédite à la vérité terrain. Weave prend chaque exemple, le transmet à votre application et évalue la sortie à l’aide de plusieurs fonctions de score personnalisées. Vous obtenez ainsi une vue d’ensemble des performances de votre application, ainsi qu’une interface riche pour examiner en détail chaque sortie et chaque score. Commencez par créer une fonction de score qui détermine si la réponse prédite correspond à la vérité terrain. Les fonctions de score Weave reçoivent la valeur de retour du modèle dans output, ainsi que, sous forme d’arguments supplémentaires, toutes les clés correspondantes de l’exemple du dataset. Ici, answer provient du dataset et output est le dict renvoyé par CausalReasoningModule.forward.
Ensuite, encapsulez le module dans une fonction tracée que weave.Evaluation peut appeler. Les noms des arguments du wrapper doivent correspondre aux noms des colonnes du dataset exploitées par le modèle.
Vous pouvez maintenant définir l’évaluation et l’exécuter.
Tableau de bord d’évaluation Weave affichant les métriques de performances du programme DSPy, les traces et les résultats de comparaison
Si vous exécutez le code à partir d’un script Python, vous pouvez utiliser le code suivant pour lancer l’évaluation :
L’exécution de l’évaluation sur le dataset de raisonnement causal coûte environ 0,24 $ en crédits OpenAI.

Optimiser le programme DSPy

Une fois les performances de référence mesurées, vous pouvez appliquer un optimiseur DSPy et comparer le résultat à la référence. Maintenant que vous disposez d’un programme DSPy de référence, améliorez ses performances en raisonnement causal à l’aide de l’optimiseur BootstrapFewShot, qui peut ajuster les paramètres d’un programme DSPy afin de maximiser les métriques spécifiées.
Interface du processus d’optimisation du programme DSPy, avec la configuration du teleprompter et la progression de l’optimisation
L’exécution de l’évaluation sur le dataset de raisonnement causal coûte environ 0,04 $ en crédits OpenAI.
Maintenant que vous disposez du programme optimisé (c’est-à-dire de la stratégie de prompting optimisée), évaluez-le de nouveau sur l’ensemble de validation et comparez-le au programme DSPy de référence.
Résultats de l’évaluation du programme DSPy optimisé, avec des métriques de performances et une qualité de sortie améliorées
En comparant l’évaluation du programme de référence à celle du programme optimisé, on constate que ce dernier répond avec une meilleure précision aux questions de raisonnement causal.

Conclusion

Dans ce tutoriel, vous avez appris à utiliser DSPy pour l’optimisation des prompts, en association avec Weave pour le suivi et l’évaluation, afin de comparer le programme d’origine et le programme optimisé.
Dernière modification le 30 septembre 2026