作者: 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
提交日期: 2023年10月5日
摘要:
机器学习社区正在积极探索提示语言模型(LMs)以及将它们堆叠成解决复杂任务的流水线的方法。然而,现有的LM流水线通常使用硬编码的“提示模板”来实现,即通过试错发现的冗长字符串。为了开发与优化LM流水线提供一种更系统的方法,我们引入了DSPy。DSPy是一种编程模型,它将LM流水线抽象为文本转换图,即通过声明式模块调用LM的命令式计算图。DSPy模块是参数化的,这意味着它们可以学习(通过创建和收集演示)如何应用提示、微调、增强和推理技术的组合。我们设计了一个编译器,可以优化任何DSPy流水线以最大化给定的评估指标。我们进行了两个案例研究,表明简洁的DSPy程序可以表达和优化复杂的LM流水线,这些流水线能够推理数学应用题、处理多跳检索、回答复杂问题以及控制智能体循环。在编译后的几分钟内,几行DSPy代码就能让GPT-3.5和llama2-13b-chat自举出优于标准少样本提示(通常分别超过25%和65%)以及优于专家创建演示的流水线(分别高达5-46%和16-40%)。此外,编译到开放且相对较小的LM(如770M参数的T5和llama2-13b-chat)的DSPy程序,其性能与依赖专家编写提示链的专有GPT-3.5方法相当。DSPy可在 https://github.com/stanfordnlp/dspy 获取。
主题/分类:
- 计算与语言(cs.CL)
- 人工智能(cs.AI)
- 信息检索(cs.IR)
- 机器学习(cs.LG)