# DSPy: Compiling Declarative Language Model Calls into Self-Improving Pipelines

**Authors:** Omar Khattab, Arnav Singhvi, Paridhi Maheshwari, Zhiyuan Zhang, Keshav Santhanam, Sri Vardhamanan, Saiful Haq, Ashutosh Sharma, Thomas T. Joshi, Hanna Moazam, Heather Miller, Matei Zaharia, Christopher Potts  
**arXiv:** [2310.03714](https://arxiv.org/abs/2310.03714)  
**Date:** 2023-10-05  
**Summary page:** https://www.summarizepaper.com/fr/paper/2310.03714v1/

## Key points

- La communauté de l'apprentissage automatique explore activement des techniques pour intégrer des modèles de langage (ML) et les combiner dans des pipelines qui résolvent des tâches complexes.
- Les pipelines de ML existants sont généralement implémentés à l'aide de "modèles d'invite" codés en dur, ce qui signifie qu'ils sont découverts par essais et erreurs.
- DSPy est un modèle de programmation qui abstrait les pipelines ML sous forme de graphes computationnels impératifs où les ML sont invoqués à travers des modules déclaratifs.
- Les modules DSPy sont paramétrables et peuvent apprendre comment appliquer des compositions de techniques d'invite, d'affinage, d'augmentation et de raisonnement en créant et en collectant des démonstrations.
- Un compilateur est conçu pour optimiser n’importe quel pipeline DSPy afin de maximiser une métrique donnée.
- Deux études de cas montrent que les programmes DSPy concis peuvent exprimer et optimiser efficacement des pipelines sophistiqués ML qui résolvent divers problèmes mathématiques, abordent la recherche multi-sauts, répondent à des questions complexes et contrôlent les boucles d’un agent.
- Quelques lignes DSPy permettent à GPT-3.5 et llama2-13b-chat d’autogénérer rapidement des pipelines qui surpassent l’utilisation classique d’invites ainsi que les pipelines avec des démonstrations créées par des experts.
- Les programmes DSPy compilés pour T5 avec 770 millions de paramètres ouverts ainsi que llama2-13b-chat sont compétitifs par rapport aux approches reposant sur la chaîne invite codée par un expert pour GPT-3.5 propriétaire.
- DSPy est disponible sur https://github.com/stanfordnlp/dspy.

## Summary

La communauté de l'apprentissage automatique explore activement des techniques pour intégrer des modèles de langage (ML) et les combiner dans des pipelines qui résolvent des tâches complexes. Malheureusement, les pipelines de ML existants sont généralement implémentés à l'aide de "modèles d'invite" codés en dur, ce qui signifie qu'ils sont découverts par essais et erreurs. Afin d'adopter une approche plus systématique pour le développement et l'optimisation des pipelines de ML, nous présentons DSPy, un modèle de programmation qui abstrait les pipelines ML sous forme de graphes computationnels impératifs où les ML sont invoqués à travers des modules déclaratifs. Les modules DSPy sont paramétrables et peuvent apprendre comment appliquer des compositions de techniques d'invite, d'affinage, d'augmentation et de raisonnement en créant et en collectant des démonstrations. Nous concevons également un compilateur qui optimise n’importe quel pipeline DSPy pour maximiser une métrique donnée. Nous menons également deux études de cas montrant que les programmes DSPy concis peuvent exprimer et optimiser efficacement des pipelines sophistiqués ML qui résolvent divers problèmes mathématiques, abordent la recherche multi-sauts, répondent à des questions complexes et contrôlent les boucles d’un agent. De plus, quelques lignes DSPy permettent à GPT-3.5 et llama2-13b-chat d’autogénérer rapidement des pipelines qui surpassent l’utilisation classique d’invites en quelques exemples (généralement supérieurs à 25% et 65%, respectivement) ainsi que les pipelines avec des démonstrations créées par des experts (jusqu’à 5-46% et 16-40%, respectivement). Les programmes DSPy compilés pour T5 avec 770 millions de paramètres ouverts ainsi que llama2-13b-chat sont également compétitifs par rapport aux approches reposant sur la chaîne invite codée par un expert pour GPT-3.5 propriétaire. DSPy est disponible sur https://github.com/stanfordnlp/dspy.
