Skip to main content
Ceci est un notebook interactif. Vous pouvez l’exécuter localement ou utiliser les liens ci-dessous :
Synthétiser des documents techniques complexes sans perdre les détails essentiels est une tâche délicate. La technique de synthèse Chain of Density (CoD) répond à ce problème en affinant les synthèses de manière itérative pour les rendre plus concises et plus denses en informations. Ce guide montre comment implémenter CoD avec Weave pour assurer le suivi et l’évaluation de l’application.
Tableau de bord d’évaluation Weave affichant les résultats de synthèse Chain of Density, les métriques et les comparaisons de performances

Qu’est-ce que la synthèse Chain of Density ?

arXiv Chain of Density (CoD) est une technique de synthèse itérative qui produit des synthèses de plus en plus concises et riches en informations. Elle fonctionne comme suit :
  1. Partir d’une synthèse initiale
  2. Affiner la synthèse par itérations successives, en la rendant plus concise tout en conservant les informations clés
  3. Augmenter la densité d’entités et de détails techniques à chaque itération
Cette approche est particulièrement utile pour synthétiser des articles scientifiques ou des documents techniques, où il est essentiel de conserver les informations détaillées.

Pourquoi utiliser Weave

Dans ce tutoriel, vous allez utiliser Weave pour implémenter et évaluer un pipeline de synthèse Chain of Density appliqué à des articles ArXiv. Vous apprendrez à :
  • Suivre votre pipeline LLM : utilisez Weave pour consigner automatiquement les entrées, les sorties et les étapes intermédiaires de votre processus de synthèse.
  • Évaluer les sorties du LLM : créez des évaluations cohérentes de vos synthèses à l’aide des outils intégrés de Weave.
  • Concevoir des opérations composables : combinez et réutilisez des opérations Weave dans différentes parties de votre pipeline de synthèse.
  • Intégrer Weave à votre code existant : ajoutez Weave à votre code Python existant avec un minimum d’effort.
À la fin de ce tutoriel, vous aurez créé un pipeline de synthèse CoD qui tire parti des fonctionnalités de Weave pour la mise en service des modèles, l’évaluation et le suivi des résultats.

Configurer l’environnement

Commencez par configurer l’environnement et importer les bibliothèques nécessaires. Cette étape installe les dépendances requises par le pipeline, notamment Weave pour le suivi, Anthropic pour le LLM et PyPDF2 pour la lecture des PDF d’ArXiv.
Comme le pipeline appelle le modèle Claude d’Anthropic, vous aurez besoin d’une clé API Anthropic avant d’exécuter le code suivant.
Pour obtenir une clé API Anthropic :
  1. Créez un compte sur https://www.anthropic.com.
  2. Accédez à la section API dans les paramètres de votre compte.
  3. Générez une nouvelle clé API.
  4. Enregistrez la clé API de manière sécurisée dans votre fichier .env.
Ce code s’appuie sur Weave pour suivre l’expérience et sur le modèle Claude d’Anthropic pour la génération de texte. L’appel weave.init([PROJECT_NAME]) crée un nouveau projet Weave pour la tâche de synthèse.

Définir le modèle ArxivPaper

Une fois l’environnement prêt, l’étape suivante consiste à définir la structure de données que traite le pipeline. Créez une classe ArxivPaper pour représenter les données :
Cette classe encapsule les métadonnées et le contenu d’un article ArXiv, qui sert d’entrée au pipeline de synthèse.

Charger le contenu des PDF

Le modèle ArxivPaper contient des métadonnées et l’URL d’un PDF, mais le pipeline de synthèse a besoin du texte complet de l’article. Pour exploiter l’intégralité de l’article, ajoutez une fonction qui charge les PDF et en extrait le texte :

Implémenter la synthèse Chain of Density

Implémentez maintenant la logique principale de synthèse CoD à l’aide d’opérations Weave :
Visualisation de la trace Weave montrant l’exécution du pipeline de synthèse Chain of Density
Voici le rôle de chaque fonction :
  • summarize_current_summary : génère une seule itération de synthèse basée sur l’état actuel.
  • iterative_density_summarization : applique la technique CoD en appelant plusieurs fois summarize_current_summary.
  • chain_of_density_summarization : orchestre l’ensemble du processus de synthèse et renvoie les résultats.
Les décorateurs @weave.op() garantissent que Weave suit les entrées, les sorties et l’exécution de ces fonctions.

Créer un Weave Model

Une fois les fonctions de synthèse en place, l’étape suivante consiste à les regrouper dans un Weave Model afin de suivre ensemble les runs, les paramètres et les versions. Encapsulez maintenant le pipeline de synthèse dans un Weave Model :
Interface de configuration d’un Weave Model pour la synthèse Chain of Density, avec les réglages et les paramètres du modèle
Cette classe ArxivChainOfDensityPipeline encapsule la logique de synthèse sous forme de Weave Model, ce qui présente plusieurs avantages clés :
  • Suivi automatique des expériences : Weave capture les entrées, les sorties et les paramètres de chaque run du modèle.
  • Gestion des versions : toute modification des attributs ou du code du modèle est automatiquement versionnée, ce qui fournit un historique clair de l’évolution de votre pipeline de synthèse au fil du temps.
  • Reproductibilité : grâce à la gestion des versions et au suivi, vous pouvez reproduire n’importe quel résultat ou n’importe quelle configuration antérieure de votre pipeline de synthèse.
  • Gestion des hyperparamètres : les attributs du modèle (comme model et density_iterations) sont clairement définis et suivis d’un run à l’autre, ce qui facilite l’expérimentation.
  • Intégration à l’écosystème Weave : weave.Model s’utilise avec les autres outils Weave, comme les évaluations et les fonctionnalités de mise en service.

Implémenter des métriques d’évaluation

Maintenant que le pipeline produit des synthèses, il vous faut un moyen de mesurer systématiquement leur qualité. Pour évaluer la qualité des synthèses, implémentez des métriques d’évaluation simples :
Ces fonctions d’évaluation utilisent le modèle Claude pour juger de la qualité des synthèses générées selon trois critères : pertinence, concision et précision technique.

Créer un dataset Weave et exécuter l’évaluation

Maintenant que la fonction de score est définie, il ne reste plus qu’à l’appliquer à des exemples d’entrées et à exécuter l’évaluation. Pour évaluer le pipeline, créez un dataset Weave et lancez une évaluation :
Interface de configuration d’un dataset Weave pour l’évaluation, avec la sélection du dataset et les options de configuration
Pour l’évaluation, utilisez une approche de type LLM-as-a-judge (LLM en tant que juge). Cette technique consiste à utiliser un modèle de langage pour évaluer la qualité des sorties générées par un autre modèle ou système. Elle s’appuie sur les capacités de compréhension et de raisonnement du LLM pour fournir des évaluations nuancées, en particulier pour les tâches où les métriques traditionnelles peuvent s’avérer insuffisantes. arXiv
Tableau de bord d’évaluation Weave présentant les résultats de synthèse Chain of Density, les métriques et les comparaisons de performances
Ce code crée un dataset contenant l’article ArXiv d’exemple, définit un scorer de qualité et lance une évaluation du pipeline de synthèse.

Conclusion

Cet exemple a montré comment implémenter un pipeline de synthèse Chain of Density pour des articles ArXiv à l’aide de Weave. Vous avez appris à :
  • Créer des opérations Weave pour chaque étape du processus de synthèse
  • Encapsuler le pipeline dans un Weave Model pour le suivi et l’évaluation
  • Implémenter des métriques d’évaluation personnalisées à l’aide d’opérations Weave
  • Créer un dataset et lancer une évaluation du pipeline
Weave suit les entrées, les sorties et les étapes intermédiaires tout au long du processus de synthèse, ce qui facilite le débogage, l’optimisation et l’évaluation de votre application LLM. Vous pouvez étendre cet exemple pour traiter des datasets plus volumineux, implémenter des métriques d’évaluation plus avancées ou l’intégrer à d’autres flux de travail LLM. Voir le rapport complet sur W&B
Dernière modification le 30 septembre 2026