17 天前

DSPy:将声明式 LLM 调用编译为自提升流水线

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
DSPy:将声明式 LLM 调用编译为自提升流水线
摘要

机器学习社区正迅速探索用于提示语言模型(Language Models, LMs)的技术,以及将多个模型堆叠为流水线以解决复杂任务的方法。然而,现有的语言模型流水线通常依赖于硬编码的“提示模板”——即通过反复试验获得的冗长字符串,这种方式缺乏系统性与可扩展性。为推动语言模型流水线的系统化开发与优化,我们提出了 DSPy,一种编程模型,将语言模型流水线抽象为文本变换图(text transformation graphs),即通过声明式模块调用语言模型的命令式计算图。DSPy 模块是参数化的,能够通过生成并收集示例(demonstrations)来学习如何组合运用提示工程、微调、数据增强和推理等技术。我们设计了一个编译器,可对任意 DSPy 流水线进行优化,以最大化指定的性能指标。我们开展了两项案例研究,结果表明:简洁的 DSPy 程序能够有效表达并优化复杂的语言模型流水线,实现对数学应用题的推理、多跳信息检索、复杂问题回答以及智能体循环控制等功能。在短短几分钟的编译时间内,仅需几行 DSPy 代码,即可使 GPT-3.5 和 llama2-13b-chat 自行构建出性能更优的流水线,其表现显著优于标准的少样本提示(分别提升超过 25% 和 65%),也优于由专家手工设计的示范提示流水线(分别提升 5%–46% 和 16%–40%)。此外,将 DSPy 程序编译至开源且参数量相对较小的模型(如 7.7 亿参数的 T5 和 llama2-13b-chat)后,其性能仍可与依赖专有 GPT-3.5 的专家编写提示链的方法相媲美。DSPy 已开源,项目地址为:https://github.com/stanfordnlp/dspy

DSPy:将声明式 LLM 调用编译为自提升流水线 | 最新论文 | HyperAI超神经