- DSPy (Declarative Self-improving Python) est un framework conçu pour contrôler les modèles de langage (LM) par la programmation
- Il permet de construire rapidement des systèmes d’IA modulaires, allant de classificateurs simples à des pipelines RAG complexes et des boucles d’agents, tout en fournissant des algorithmes pour optimiser les prompts et les poids
- Au lieu de prompts existants et instables, il permet d’écrire du code Python composable afin de construire rapidement des systèmes d’IA modulaires et d’entraîner les LM à produire des sorties de haute qualité
- Utiliser des Modules pour décrire le comportement de l’IA en code plutôt qu’avec des chaînes de caractères
- Pour construire des systèmes d’IA fiables, il faut itérer rapidement
- Mais maintenir des prompts est difficile, car il faut modifier des chaînes ou des données chaque fois que l’on change de LM, de métrique ou de pipeline
- DSPy a été développé pour séparer la définition des systèmes LM des choix complexes liés à un LM particulier ou à une stratégie de prompting
- L’approche de programmation de DSPy
- DSPy déplace l’attention de l’ajustement de chaînes de prompt vers une programmation structurée et déclarative à l’aide de modules en langage naturel
- Pour chaque composant IA du système, on spécifie le comportement d’entrée/sortie sous forme de signatures et on sélectionne des modules pour attribuer une stratégie d’appel au LM
- DSPy étend les signatures en prompts et parse des sorties typées, ce qui permet d’écrire des systèmes d’IA faciles à utiliser, portables et optimisables
- Un Optimizer ajuste les prompts et les poids des modules IA
- DSPy fournit des outils qui compilent du code de haut niveau avec des annotations en langage naturel en opérations de bas niveau, prompts ou mises à jour de poids
- Cela permet d’aligner les LM avec la structure du programme et les métriques
- Si le code ou les métriques changent, on peut simplement recompiler en conséquence
- Processus d’optimisation de DSPy
- Si vous disposez de quelques dizaines ou centaines d’entrées représentatives de la tâche et d’une métrique capable de mesurer la qualité des sorties du système, vous pouvez utiliser le DSPy Optimizer
dspy.BootstrapRS synthétise de bons exemples few-shot pour tous les modules
dspy.MIPROv2 propose de meilleures instructions en langage naturel pour tous les prompts et les explore intelligemment
dspy.BootstrapFinetune construit un jeu de données pour les modules et l’utilise pour affiner les poids LM du système
- L’écosystème DSPy fait progresser la recherche open source en IA
- Le paradigme modulaire de DSPy offre, par rapport aux grands modèles de langage, davantage d’occasions pour un plus grand nombre de chercheurs d’améliorer de manière distribuée les architectures de composition des programmes LM, les stratégies en temps d’inférence et les outils d’optimisation
- Cela donne aux utilisateurs de DSPy davantage de contrôle, les aide à itérer plus vite, et permet à leurs programmes d’évoluer au fil du temps en appliquant les derniers outils d’optimisation ou modules
- La recherche sur DSPy a commencé en février 2022 au Stanford NLP et s’appuie sur les leçons tirées du développement des premiers systèmes LM composés comme ColBERT-QA, Baleen et Hindsight
- Initialement lancé en décembre 2022 sous le nom de DSP, il a évolué en DSPy en octobre 2023 et, grâce à 250 contributeurs, a permis à des dizaines de milliers de personnes d’apprendre à construire et optimiser des programmes LM modulaires
- La communauté DSPy a produit de nombreux résultats de recherche sur des outils d’optimisation comme MIPROv2, BetterTogether et LeReT, ainsi que sur des architectures de programme comme STORM, IReRa et DSPy Assertions
- Elle compte aussi de nombreux cas d’application réussis à de nouveaux problèmes, comme PAPILLON, PATH, l’étude de cas de prompting de WangLab@MEDIQA et de l’UMD, ainsi que le programme de red teaming de Haize
- En outre, de nombreux projets open source, applications en production et autres cas d’usage démontrent la praticité de DSPy
Aucun commentaire pour le moment.