微信扫码
添加专属顾问
随着语言模型(LMs)的出现,研究人员能够在更高的抽象层次和更低的数据需求下构建自然语言处理(NLP)系统。这推动了“提示”技术和轻量级微调技术的快速发展,这些技术用于使LMs适应新任务、从LMs中引出系统性推理以及通过检索来源或工具增强LMs。然而,现有的LM管道通常使用硬编码的“提示模板”来实现,这些模板是通过试错发现的长字符串。这种方法虽然普遍,但可能脆弱且不可扩展。因为它不能很好地泛化到不同的管道、语言模型、数据领域或输入。
本文介绍了DSPy,这是一种新的编程模型,即声明式自改进语言程序。其强调编程而非Prompt,并将构建基于LM的管道从操作prompt转移到更贴近编程。其用于构建由预训练语言模型(LMs)和其他工具组成的人工智能系统。DSPy通过将语言模型调用抽象成文本转换图来优化它们的使用,这些图是命令式的计算图,其中语言模型是通过声明性模块被调用的。DSPy模块是参数化的,意味着它们可以通过创建和收集示例来学习如何应用提示、微调、增强和推理技术的组合。此外,设计了一个编译器来优化任何DSPy管道,以最大化给定的度量标准。
为了克服这些限制,本文提出了DSPy,它将构建新的语言模型管道的过程从操纵自由形式的字符串转变为更接近编程的方式——组合模块化操作符构建文本转换图。在这种方式中,编译器自动从程序生成优化的语言模型调用策略和提示。DSPy的设计灵感来自于神经网络抽象的共识,其中包括两个关键概念:(1) 许多通用层可以在任何复杂架构中模块化组合;(2) 模型权重可以使用优化器进行训练,而不是手工调整。
DSPy模型首先将基于字符串的提示技术转换为带有自然语言类型签名的声明性模块。这些模块是任务自适应组件,类似于神经网络层,它们抽象了任何特定的文本转换,例如回答问题或总结文章。然后,通过参数化每个模块,使其能够通过在管道内迭代自举有用的示例来学习其期望的行为。受PyTorch抽象的直接启发,DSPy模块通过表达式定义的运行时计算图来使用。管道通过声明所需的模块和使用这些模块在任何逻辑控制流中逻辑连接模块来表达。
接着,本文开发了DSPy编译器,它可以优化任何DSPy程序以提高质量或降低成本。编译器的输入包括程序、一些可选标签的训练输入以及验证度量。编译器在输入上模拟程序的版本,并自举每个模块的示例跟踪以进行自我改进,使用它们构建有效的少次提示或微调小语言模型以实现管道的步骤。在DSPy中,优化是高度模块化的:它由teleprompters进行,这些是通用的优化策略,确定模块应如何从数据中学习。通过这种方式,编译器自动将声明性模块映射到提示、微调、推理和增强的高质量组合。其核心概念如下:
签名(Signatures):使用自然语言定义函数的输入和输出,而不是具体实现细节。
模块(Modules):封装了特定的文本转换功能,如问答或文本摘要,并可以学习适应不同任务。
优化器(Teleprompters):用于改进DSPy程序的质量或成本,通过选择最佳的提示或微调策略。
DSPy通过两个案例研究展示了其有效性:数学文字问题和复杂问题回答。
本文使用流行的GSM8K数据集对小学数学问题进行评估(Cobbe等人,2021)。本文从官方训练集中抽取了200个和300个问题-答案对,分别用于训练和开发。本文的最终评估使用官方测试集中的1.3k个例子。为了避免在测试集上过拟合,本文在开发集上报告了广泛的比较。按照GSM8K上先前的工作,本文评估了LM输出中出现的最终数值的准确性。
对于这项任务,本文考虑了三个简单的DSPy程序:一步式Predict模块(vanilla)、两步式ChainOfThought模块(CoT),以及最后是多阶段ComparerOfThoughts模块(ThoughtReflection)。这些程序完全由以下代码定义:
在reflection中,从语言模型中抽取了五个推理链及其答案,并通过内置的MultiChainComparison模块并行比较它们,以生成新的综合答案。
DSPy程序可以编译成新的优化程序。本文评估了程序的零样本(无编译)以及多种编译策略。例如,LabeledFewShot编译如下:
这里,program可以是任何DSPy模块。编译器从训练集中随机抽取8个示例,用于训练示例和签名共有的字段,例如问题和答案。
接下来,本文还考虑了使用随机搜索来引导少样本示例:
这个过程会为训练集中的例子生成示例链,并优化选择这些示例的过程,使用随机搜索,将选择示例视为一个需要优化的参数。
此外,本文可以在DSPy中嵌套自举过程。具体来说,本文可以使用优化后的自举程序本身来进一步引导另一个程序。这在原始零样本程序表现相对较差时强相关。
最后,本文还考虑了将这些自举程序集成在一起:
GSM8K包含了人类推理链。在上面的trainset中,本文没有包括这些推理链。本文还评估了包括人类推理链的trainset,这通过在trainset中添加人类的推理字符串来扩展例子。这两个数据集可以作为trainset参数的值互换使用。本文注意到,编译通常只需要几分钟(或几十分钟),即使是更昂贵的设置也只需要运行程序几千次(例如,在150-300个验证例子上进行10-20次试验),并且可以并行进行。
在这项研究中,本文探索了使用HotPotQA数据集的多跳问题回答任务,在开放域的“fullwiki”设置中。对于检索,使用了HotPotQA官方2017年“摘要”转储的搜索索引。搜索是通过ColBERTv2检索器进行的。HotPotQA的测试集是隐藏的,因此本文保留官方验证集用于本文的测试,并抽取了1000个例子用于此。本文在训练集(和验证集)中只保留了原始数据集中标记为“困难”的例子,这与官方验证集和测试集的指定相符。在训练和报告开发结果时,本文分别抽取了200个和300个例子。
最简单的基线是上文中在GSM8K上使用的“question -> answer”签名的vanilla程序,它在适当编译时适用于此任务(以及许多其他任务)。
本文将看到,这个程序在HotPotQA上并不出色,这激发了本文评估两个多跳程序的动机。
为此,本文首先测试了ReAct,这是一个用于工具使用的多步骤代理,它在DSPy中作为内置模块实现。在最简单的情况下,可以像下面这样在DSPy中声明特定签名的ReAct模块:
本文还测试了以下自定义程序,它模拟了Baleen和IRRR中的信息流,并且与IRCoT有相似之处:
本文还考虑了本文的teleprompters的两种组合。对于ReAct,本文考虑从ReAct程序的早期自举开始使用BootstrapFewShotWithRandomSearch进行自举。对于简单的多跳程序,本文还考虑了从该程序的早期自举开始使用T5-Large进行微调。
表1中总结了结果,包括开发集的结果以及在测试集上对每种方法有前景的代表的评估。首先,vanilla程序的结果显示,GPT-3.5和llama2-13b-chat在没有使用推理链的情况下,直接预测数学文字问题的答案存在困难。然而,通过使用bootstrap编译和迭代这个过程,可以显著提高性能。CoT程序在专家人类推理链的辅助下表现更好,但即使没有这些推理链,通过bootstrap也能匹配或超越这种性能。ThoughtReflection程序虽然代码更长,但表现最佳。通过组合DSPy模块和teleprompters,不同LMs的准确率从4-20%提高到49-88%。
与现有文献中的其他方法相比,即使没有使用人类推理链,也能与使用更大模型的结果竞争。这表明DSPy通过自动编译程序,减少了对手工制作提示的依赖,提高了系统的模块化和可复现性。
表2总结了结果。与vanilla少样本提示相比,思维链和检索增强生成(CoT RAG)程序可以通过DSPy自举显著提高答案的精确匹配(EM)。然而,这完全依赖于ColBERTv2检索器直接从原始问题中找到相关段落,限制了其段落召回。这在react和multihop程序中得到了解决,它们将为检索器在多个迭代的“跳数”中生成查询。确实,总的来说,一个简单的多跳程序表现最佳,并且一般而言,自举再次被证明非常有效,可以提高其相对于其少样本变体的质量,无论是对于哪种LM。
特别是,我们可以看到自举(和/或自举×2)可以超越多跳的少样本提示(对于multihop)和专家人类推理(对于react;从Yao等人(2022)稍微调整以适应我们的检索设置)。也许最重要的是,我们可以通过简单地编译我们的程序,使llama2-13b-chat与GPT-3.5竞争。
为了评估DSPy的微调能力,本文还评估了上述定义的编译器multihop t5,它产生了一个T5-Large(770M参数)模型。该程序在开发集上的得分为39.3%的答案EM和46.0%的段落准确率,仅使用了200个标记输入和800个未标记问题。对于编译,本文使用了一个由两个multihop和llama2-13b-chat组成的集成(联合)作为教师程序。考虑到其极小的尺寸和本地可用性,与像GPT-3.5这样的专有LM相比,使用T5-Large的编译程序将带来几个数量级的低成本推理。
本文介绍了DSPy,这是用于设计使用预训练语言模型(LMs)和其他工具的人工智能系统的新编程模型。本文展示了这个抽象中引入的三个新概念(DSPy签名、模块和teleprompters),并在两个非常不同的案例研究中表明,它支持使用相对较小的LMs快速开发高效的系统。作者已经维护了这个框架的开源版本将近一年。在这段时间里,作者见证了许多程序通过DSPy编译成高质量的系统,涵盖了从信息提取到低资源合成数据生成等任务。由于篇幅和本文合理范围的考虑,我们将在后续工作中报告这些任务在受控实验条件下的表现。尽管上下文学习在过去2-3年的LM研究中证明了其变革性,本文认为,这种新兴范式中真正的表达能力在于构建复杂的文本转换图,其中可组合的模块和优化器(teleprompters)以更系统和可靠的方式结合在一起,利用LMs。
53AI,企业落地大模型首选服务商
产品:场景落地咨询+大模型应用平台+行业解决方案
承诺:免费POC验证,效果达标后再合作。零风险落地应用大模型,已交付160+中大型企业
2026-07-02
不改一行代码,看透 AI Agent 的每一次调用
2026-07-02
AI 不缺智商缺纪律:一场 Harness 工程化实践
2026-07-02
天工 3.2 重磅升级:Skywork Tags 上线,给 Agent 一张工牌,邀其加入你的工作群聊
2026-07-02
Context Infra 会是 AI 领域的下一个热点
2026-07-01
一文了解|SkillScan 智能体技能安全扫描最佳实践
2026-07-01
协作的逆向演进:从 Agent 逻辑重构团队管理
2026-07-01
港科大郭毅可谈Agentic AI时代的核心命题:人机共生,人不可能退场
2026-07-01
Sonnet 5终于来了,然而Opus 4.8现在有点尴尬
2026-04-15
2026-04-07
2026-04-07
2026-04-24
2026-04-17
2026-04-05
2026-04-05
2026-04-14
2026-04-24
2026-04-22
欢迎您使用【53AI 官方网站】(以下简称“本网站”或“我们”)。本《会员服务协议》(以下简称“本协议”)是您(以下简称“会员”或“用户”)与【深圳市博思协创网络科技有限公司】之间关于注册、登录及使用本网站会员服务所订立的法律协议。
在您注册或登录前,请务必审慎阅读、充分理解各条款内容,特别是免除或限制责任的条款、知识产权条款、争议解决条款等。此类条款将以加粗形式提示您注意。 当您通过微信公众号授权、手机验证码验证或其他方式成功登录本网站时,即视为您已完全理解并同意接受本协议的全部内容。
一、 定义
本网站:指由【深圳市博思协创网络科技有限公司】运营的,域名为【53ai.com】的网站及相关移动端页面。
会员服务:指本网站向注册会员提供的知识库文章查阅、内容检索及其他相关增值服务。
知识库内容:指本网站发布的包括但不限于文字、图表、数据、研究报告、行业分析等数字化内容资源。
二、 账号注册与登录
登录方式:本网站支持以下登录方式,您可根据实际情况选择:
微信公众号授权登录:您同意将您的微信OpenID信息授权给本网站,用于创建或关联会员账号。
手机验证码登录:您需提供真实有效的手机号码,并通过短信验证码完成身份验证与登录/注册。
账号安全:您的账号仅限您本人使用,禁止赠与、借用、租用、转让或售卖。因您保管不善导致的账号被盗、密码泄露等损失,由您自行承担。
实名认证:根据相关法律法规要求,我们可能要求您在特定功能下完成实名认证。如您拒绝提供,可能无法使用部分或全部服务。
未成年人保护:若您未满18周岁,请在法定监护人的陪同下阅读本协议,并在征得监护人同意后使用本服务。
三、 服务内容与规范
知识库查阅权限:会员登录后,有权按照其会员等级对应的权限范围,在线浏览、检索本网站知识库中的相关文章及内容。
服务变更:我们有权根据业务发展需要,调整、变更或终止部分服务内容,并将以网站公告、公众号消息等方式提前通知。
禁止行为:您在使用服务时不得实施以下行为:
利用技术手段批量爬取、下载、转存知识库内容;
将知识库内容用于商业目的或未经授权地向第三方传播;
干扰本网站正常运行或侵犯其他用户合法权益;
发布违法违规信息或从事违反公序良俗的活动。
四、 知识产权声明
权利归属:本网站知识库中的排版设计、软件代码等内容的知识产权均归【公司全称】或原权利人所有,受《中华人民共和国著作权法》等法律保护。
有限许可:本网站授予会员一项非独占、不可转让、不可转授权的普通许可,仅限于个人学习、研究之目的在线查阅知识库内容。
侵权追责:未经书面许可,任何单位或个人不得以任何形式复制、转载、摘编、镜像、汇编或以其他方式使用上述内容。一经发现,我们保留追究其法律责任的权利。
五、 个人信息保护
我们重视对您个人信息的保护。关于我们如何收集、使用、存储和保护您的个人信息,请单独阅读 《隐私政策》。
您通过微信公众号授权或手机号验证所提供的信息,我们将严格按照《个人信息保护法》的规定处理,仅用于身份识别、服务提供及安全验证等必要用途。
您可以随时通过网站设置或联系客服行使查阅、更正、删除个人信息及撤回授权同意的权利。
六、 免责声明
内容准确性:知识库内容仅供参考,不构成专业建议。我们不对其完整性、准确性、时效性作任何明示或暗示的保证,您应自行判断并承担使用风险。
不可抗力:因自然灾害、政策法规变化、网络故障、第三方平台接口异常(如微信接口维护、运营商短信通道故障)等不可抗力导致的服务中断或延迟,我们不承担违约责任。
第三方链接:本网站可能包含指向第三方网站的链接,该等网站的内容和服务不受我们控制,请您自行甄别风险。
七、 违约责任
如您违反本协议约定,我们有权视情节采取警告、限制功能、暂停服务、注销账号等措施,并保留要求赔偿损失的权利。
如因您的违约行为导致我们遭受行政处罚、第三方索赔或商誉损失,您应承担全部赔偿责任(包括但不限于罚款、赔偿金、律师费、公证费等)。
八、 法律适用与争议解决
本协议的订立、执行和解释均适用中华人民共和国大陆地区法律。
因本协议产生的或与本协议有关的任何争议,双方应友好协商解决;协商不成的,任何一方均可向【公司所在地】有管辖权的人民法院提起诉讼。
九、 其他
本协议构成双方就本服务达成的完整协议,取代此前任何口头或书面约定。
本协议任一条款被认定为无效或不可执行的,不影响其他条款的效力。
我们对本协议享有最终解释权,并在法律允许的范围内保留随时修改的权利。修改后的协议一经公布即生效,继续使用服务即视为同意修订内容。