P

DSPy : Définition et Exemples

DSPy est un framework Python développé par Stanford NLP qui permet de programmer et d'optimiser automatiquement les pipelines de modèles de langage (LLM) en remplaçant le prompt engineering manuel par une approche déclarative et compilée.

Définition complète

DSPy (Declarative Self-improving Python) est un framework open source créé par l'équipe Stanford NLP, conçu pour transformer la manière dont les développeurs interagissent avec les modèles de langage. Plutôt que d'écrire manuellement des prompts fragiles et difficiles à maintenir, DSPy propose une approche programmatique où l'on définit des signatures (entrées/sorties attendues) et des modules composables, puis le framework optimise automatiquement les prompts sous-jacents.

Le cœur de DSPy repose sur trois concepts fondamentaux : les signatures, qui décrivent ce qu'un module doit faire (par exemple "question -> réponse") ; les modules, qui encapsulent des stratégies de prompting comme ChainOfThought ou ReAct ; et les optimiseurs (anciennement appelés téléprompters), qui ajustent automatiquement les prompts et les exemples few-shot pour maximiser une métrique définie par l'utilisateur.

Concrètement, DSPy fonctionne comme un compilateur pour LLM : le développeur écrit un programme déclaratif en Python, fournit un jeu de données d'entraînement et une métrique d'évaluation, puis l'optimiseur explore différentes combinaisons de prompts, d'exemples et de stratégies pour trouver la configuration la plus performante. Cette approche élimine le besoin de tâtonner manuellement avec des formulations de prompts.

L'intérêt majeur de DSPy est sa modularité et sa portabilité. Un pipeline DSPy peut être transféré d'un modèle à un autre (par exemple de GPT-4 à Claude ou Llama) simplement en relançant l'optimisation, sans réécrire les prompts. Cela rend les applications LLM plus robustes, reproductibles et maintenables à long terme.

Étymologie

Le nom DSPy est un acronyme de "Declarative Self-improving Python". Il fait un clin d'œil à PyTorch et à l'idée de compiler des programmes de langage naturel de la même manière qu'on compile des réseaux de neurones. Le "D" souligne l'approche déclarative (on décrit quoi faire, pas comment), le "S" l'auto-amélioration via l'optimisation automatique, et "Py" l'ancrage dans l'écosystème Python.

Exemples concrets

Création d'un système de questions-réponses avec raisonnement en chaîne

class QA(dspy.Module):
    def __init__(self):
        self.generate = dspy.ChainOfThought('question -> answer')
    def forward(self, question):
        return self.generate(question=question)

Optimisation automatique d'un pipeline RAG (Retrieval-Augmented Generation)

teleprompter = dspy.BootstrapFewShot(metric=exact_match)
optimized_rag = teleprompter.compile(rag_pipeline, trainset=train_examples)

Remplacement d'un prompt manuel fragile par une signature déclarative portable entre modèles

Usage pratique

En prompt engineering, DSPy est particulièrement utile lorsque vous devez maintenir des pipelines LLM complexes en production. Au lieu de peaufiner manuellement chaque prompt, vous définissez vos modules et vos métriques de succès, puis laissez l'optimiseur trouver les meilleurs prompts. Adoptez DSPy quand vos prompts deviennent trop fragiles, que vous changez fréquemment de modèle, ou que vous avez besoin de résultats reproductibles et mesurables.

Concepts liés

Prompt EngineeringFew-Shot LearningChain of ThoughtRAG (Retrieval-Augmented Generation)

FAQ

Quelle est la différence entre DSPy et le prompt engineering classique ?
Le prompt engineering classique consiste à rédiger manuellement des instructions pour un LLM et à les ajuster par essais-erreurs. DSPy automatise ce processus : vous définissez ce que le modèle doit accomplir (signature) et une métrique de succès, puis le framework optimise automatiquement les prompts, les exemples few-shot et les stratégies de raisonnement. C'est comparable à la différence entre coder un réseau de neurones à la main et utiliser PyTorch avec un optimiseur.
Faut-il des connaissances en machine learning pour utiliser DSPy ?
Non, DSPy est conçu pour être accessible aux développeurs Python sans expertise poussée en ML. Les concepts de base (signatures, modules, optimiseurs) sont intuitifs. Cependant, une compréhension des principes du prompting et du fonctionnement des LLM aide à mieux concevoir ses pipelines et à choisir les bonnes métriques d'évaluation.
DSPy fonctionne-t-il avec tous les modèles de langage ?
Oui, DSPy est compatible avec la plupart des grands modèles de langage, notamment les modèles OpenAI (GPT-4, GPT-4o), Anthropic (Claude), les modèles open source via Ollama ou HuggingFace, et bien d'autres via des adaptateurs. L'un des avantages majeurs de DSPy est justement cette portabilité : un pipeline optimisé pour un modèle peut être ré-optimisé pour un autre sans réécrire le code.

Voir aussi

Recevez de nouveaux prompts chaque semaine

Rejoignez notre newsletter.

DSPy : Définition et Exemples | Prompt Guide