最新ReWOO框架直指Auto-GPT和LangChain代理的冗杂性,提出轻量级LLM与工具的交互范式
随着大语言模型(LLM) 的爆火,社区和学者们逐渐把目光投到LLM的弱点, 比如LLM对大数字数理推断的不足, 或者无法获取预训练数据外的最新数据。为了弥补LLM的不足,近期逐渐兴起了LLM与外界工具 (如搜索引擎,计算器,API接口等)交互的浪潮。ReAct 是目前最常见和通用的增强式语言模型(Augmented LM)范式,它启发于传统强化学习,通过提示词构造“想法”(Thought),“行动”(Action),“观察”(Observation)的思维链, 逐步启发大语言模型根据当前工具的输出产生观察,从而进一步产生下次推理。这种范式被广泛应用在近期爆火的 Auto-GPT 和 LangChain 等项目中。
然而,最近的研究ReWOO (Reasoning WithOut Observation)指出,基于ReAct的增强式语言模型存在普遍的冗杂(Redundancy)问题,从而导致过大的计算开销和过长的词元(Token)使用。相比之下,ReWOO通过模块化解耦(Decouple)大语言模型的“预见性推理”(Foreseeable Reasoning) 和工具的执行,从而实现在HotpotQA等任务上数倍的词元效率(Token Efficiency), 并且提高了模型表现以及复杂环境下的鲁棒性。
论文题目:
ReWOO: Decoupling Reasoning from Observations for Efficient Augmented Language Models
论文链接:
https://arxiv.org/abs/2305.18323
项目链接:
https://github.com/billxbf/ReWOO
方法概览
增强式语言模型通过鼓励LLM与工具交互来实现信息获取或影响环境,如果把大预言模型比作人类大脑,增强式语言模型就给其提供了手脚。下图(a)展示了当前通用的ReAct范式, 当用户输入任务后,上下文提示词(Context)以及可能的样本(Exemplar)被一起传导进LLM,从而产生一个想法(T) ,行动(A),然后调用工具产生观察(O) 。由于LLM是无状态的(stateless), 所有之前的提示词,样本,任务,以及T,A,O历史会被叠加起来输入下一个LLM,从而迭代的产生新推理。一旦推理的步数变大,或者某个步骤中词元很长,就会导致下一次调用LLM时过长的输入词元,以及高度重复带来的额外计算支出。
相比之下, (b) 展示了 ReWOO的设计范式,由一个计划器(Planner)将任务分解成一个调用工具的蓝图,在获得所有工具的输出后,计划(P)和线索(E)被传导到一个解释器(Solver)进行总结并输出。这个过程中没有对工具输出的重复词元提示, 且仅需要调用两次LLM。
下图用一个具体的例子展示了ReWOO范式通过上下文学习,指示计划器生成互相依赖的计划和工具“蓝图”,也是一个有向无环图(DAG)。工具根据蓝图被调用,同时把结果寄存为“线索”(Evidence),最后依靠一个解释器输出最终结果。
实验分析
作者在多个NLP benchmark上对比了ReWOO与ReAct的开销与性能差距,并发现不管是在零样本(0-shot)还是小样本(few-shot)学习的情况下, ReWOO都成倍的缩减了使用的词元开销。另外,与直觉相悖的是,即使没有通过当前的工具观察启发下一步的思考,ReWOO框架下的LLM甚至普遍产生了更高性能表现。作者进一步的案例分析表示,这个原因在于过长的上下文以及可能的工具错误、无关信息给LLM产生了更大的推理负荷,并且容易误导LLM产生错误思考甚至忘记原本任务。
为了验证这个猜想, 当作者让所有的工具输出全部报错,并进一步对比两种范式的表现, 发现即使在这样的极端环境下, ReWOO依然能保持部分的准确性 (因为解释器可以自我回答部分问题)。然而ReAct在这种情况下几乎完全瘫痪而陷入死循环,无法完成仍和一个问题的回答。这侧面展现了ReWOO在复杂真实环境下相对的鲁棒性。
此外,由于工具种类的多样以及输出的不确定性,近期在LLM中被广泛使用的指令微调(Instruction Tuning)在增强式语言模型中很难倾泻(offload)可泛化性的工具使用能力到小模型上。在ReAct中, 指令微调不可避免的会导致小模型“背住”训练集中的工具输出。然而,ReWOO由于将显式的工具输出跟模型的推理步骤分离, 可以因此借由指令微调使其学会具有泛化性的“预见性推理”能力。这个过程被称为“专一化”(Specialization)。作者通过专一化尝试将预见性推理从1750亿参数的GPT3.5 倾泻到 70亿参数的LLaMa上, 并看到了不错的效果。由于篇幅原因,这里不进一步讨论,有兴趣的小伙伴可阅读原文。此外所有实验用到的模型,参数和数据都在Github中开源。
总结
这篇工作开创新的提出了一种新范式,从而高效的解决了增强式语言模型中计算复杂度高,部署困难且昂贵的问题。其部分的理论依据在于通过庞大的预训练,LLM对于绝大对数工具的输出有一定的“模糊预期”,比如使用Google搜索“Elon Musk Age” 会获得与他年龄相关的结果,从而可以提取出他现在的“年龄”,而这个年龄可以被用来放入一个计算器来运算。因此,这样的预见性推理可以被加以利用,从而减少迭代式的逐步推理产生的冗杂性。这个优势在多步复杂问题中(Multi-hop Tasks) 尤其突出。
另外,作者在文中对于增强式语言模型的上下文学习(ICL)以及工具的泛化性分析也是值得思考的。在Future Work中,作者提到了一种结合线性思考和图思考的模块化解决方案,或许给未来可部署的轻量级增强模型指出了方向。
扫描二维码添加小助手微信
关于我们
微信扫码关注该文公众号作者