人工智能咨询培训老师叶梓 转载标明出处
大模型(LLMs)在处理复杂问题时,往往需要借助外部工具来获取现实世界知识,例如网络搜索、数学和物理规则等。然而现有的工具辅助语言模型在多步推理问题中调用工具时存在效率和准确性的挑战。为了解决这一问题,来自EPFL和Meta FAIR的研究团队提出了一种新的方法——Chain-of-Abstraction(CoA)推理。CoA方法通过训练LLMs先生成包含抽象占位符的推理链,然后调用特定领域的工具来填充这些占位符,从而实现对推理链的具体化。这种方法不仅提高了模型对领域知识的鲁棒性,还允许模型在生成推理链的同时并行调用外部工具,从而显著提高了推理速度。
![](https://i-blog.csdnimg.cn/direct/4066eccc0a17443097b9ec8770b2a453.png)
展示了给定一个领域问题(绿色卷轴),LLM如何首先生成一个抽象的多步推理链(蓝色气泡),然后调用外部工具用特定领域的知识来实现这个推理链(橙色标签)。最终答案(黄色气泡)是基于实现后的推理链获得的
方法
图2阐释了构建微调数据集的核心步骤,即如何将已有的标准答案转化为包含抽象变量的推理链。在这一过程中,首先选取领域相关问题及其正确答案。然后,利用大型语言模型(LLM)将答案改写,引入抽象变量形成推理链。这些抽象变量作为占位符,将在后续步骤中被实际数据替代。关键的一步是使用专业工具来验证重写后的推理链,确保它能通过具体化过程得到正确答案。如果验证成功,该推理链便被确认为有效,可以用于训练LLM进行CoA推理。这个过程不仅提高了数据质量,也加强了模型的泛化能力。
![](https://i-blog.csdnimg.cn/direct/f94037ce63a547e389b2f430ce85f164.png)
CoA推理方法的创新之处在于它巧妙地将大型语言模型的推理过程拆分成了两个独立的阶段,这种设计极大地提高了模型处理多步推理问题时的效率和准确性。在第一阶段,模型被微调以生成抽象的推理链,这些推理链中包含了抽象的占位符,如y1、y2、y3等。这些占位符的作用是暂时代表那些在推理过程中需要用到但尚未确定的具体知识点或计算结果。例如,在解决一个数学问题时,如果需要计算20加35的结果,CoA方法会让模型首先生成一个包含占位符y1的推理链,表示这个计算步骤,但不会立即进行计算。
在CoA推理的第二阶段,这些抽象的占位符将被具体化的知识点所替代。这一过程通过调用外部工具来实现,这些工具可以是计算器、搜索引擎或其他任何能够提供必要信息的API。继续上面的例子,模型会在第二阶段调用计算器工具来计算20加35的结果,并将这个具体的结果填充到推理链中的相应占位符y1的位置。如果推理链中还有其它占位符,如y2或y3,模型也会重复这一过程,直到所有的占位符都被具体的知识或数据所替代。
通过这种分离策略,CoA推理方法使LLMs能够更加专注于学习如何构建有效的推理链,而不是被具体知识的获取和计算所干扰。这不仅提高了模型的推理能力,也使得模型在面对不同领域知识的变动时,能够保持较高的鲁棒性。另外这种分离还允许模型在生成推理链的同时并行地调用外部工具,从而显著提高了推理过程的效率。例如,当模型在生成下一个推理链时,可以同时让工具去填充前一个推理链中的占位符,这样的并行处理机制大幅度减少了等待外部响应的时间,加快了整个推理过程。
CoA推理方法的优势在于其对学习策略的通用性以及并行处理能力。这种通用性意味着LLMs不必针对特定的实例生成详细的知识点,而是可以掌握更为广泛的推理模式和策略。这样的学习方式让模型能够适应各种不同的问题场景,而不仅仅局限于训练数据中的具体案例。这大大提升了模型的泛化能力,使其能够在面对新的、未见过的问题时,也能够运用已学到的推理策略来找到解决方案。
CoA推理的并行处理能力是其另一个显著优势。通过将通用推理与领域特定知识的获取解耦,LLMs能够在生成推理链的同时,并行地调用API来获取所需知识。这种并行机制允许模型在等待一个API调用的响应时,继续处理其他任务,从而显著提高了推理过程的效率。例如,在处理一个包含多个步骤的复杂问题时,模型可以在第一个API调用等待结果的同时,开始生成下一个推理步骤的抽象链。这样一来,整个推理过程的时间消耗就大大减少,因为不同步骤的等待时间被有效利用起来了。
在微调数据构建方面,研究团队采取了一种创新的方法来训练CoA推理。他们从现有的开源QA数据集中收集了大量的问题和答案样本,并利用LLaMa-70B模型对这些样本的答案进行重写。这一过程首先涉及到标注知识操作,即识别出答案中那些需要通过外部工具来获取的具体知识点,并将其标记出来。接着,模型会使用这些标注的信息来重写答案,将具体的操作结果替换为抽象的占位符,形成CoA痕迹。例如,如果原始答案中包含了“20加35”的计算,重写后的答案就会是“[20 + 35 = y1]”,其中y1是一个占位符,代表这个计算步骤的结果。
为了确保重写后的数据依然准确无误,研究团队还采用了领域特定的工具来验证每个CoA推理迹线。这一步骤是至关重要的,因为它保证了模型在训练过程中所使用的数据是正确和可靠的。只有当工具能够成功地将占位符填充为正确的结果时,相应的问题和答案才会被保留下来用于训练。这种方法不仅提高了模型学习的质量,也确保了CoA推理方法在实际应用中的有效性和准确性。通过这种方式构建的微调数据,为LLMs提供了丰富的学习材料,使其能够更好地掌握CoA推理的技能。
论文提供了数学领域正确重写的推理链的推理步骤分布表(表1)。例如,GSM8K数据集中有8个问题需要1个推理步骤解决,而有1540个问题需要2个推理步骤解决,以此类推。ASDiv数据集中有677个问题仅需要一个推理步骤。
通过这种方法,CoA推理不仅提高了模型在多步推理任务中的准确性和效率,还为大型语言模型的训练和应用提供了新的思路。
实验
在数学推理领域,研究团队的目标是让问答系统生成自然语言解决方案,并包含逐步的算术推导。这要求系统能够识别并应用特定领域的知识操作,如数学计算,并将这些操作结果用抽象占位符来表示,例如"[20 + 35 = y1]"。
为了构建微调CoA数据,研究者们重写了GSM8K数据集的7473个语言多样化的小学数学问题。由于GSM8K集中于多步推理,缺乏单步算术问题的覆盖,研究者们还额外重写了ASDiv数据集中的691个单步数学问题。在这些重写数据集中,大约76.6%的CoA推理迹线由LLaMa-70B生成并通过方程求解器验证。
研究者们使用了一个方程求解器来执行数学领域所需的算术推导。该求解器首先提取CoA推理中标记的推导,例如"[20 + 35 = y1]"和"[90 − y1 = y2]",并将所有推导组合成一个方程组。然后,使用SymPy工具箱来解决这个方程组,得到每个变量的真实值(即抽象占位符的值)。最后,方程求解器通过将所有变量替换为它们解决得到的真值来返回具体化的推理链。
在Wiki QA领域,模型需要首先识别与问题相关的Wikipedia文章,然后基于这些参考文章中的关键知识进行推理以回答问题。在这个领域,领域特定知识操作被假定为检索相关的Wikipedia文章和重要的命名实体,这些操作被重写为Wikipedia搜索(WikiSearch)和命名实体识别(NER)查询。
研究者们使用HotpotQA数据集来构建Wiki QA领域的微调CoA数据。HotpotQA包含113K个多跳QA示例,每个示例都标记有两个提供支持知识的Wikipedia文章。在90447个训练QA对中,72991个被识别为桥接QA对,这些QA对需要识别一个中间实体来将答案与问题联系起来。剩下的17456个是对比QA对,它们比较两个实体的属性。研究者们提示LLaMa-70B将这些训练QA重写为带有WikiSearch和NER查询的CoAs,并使用领域工具验证每个CoA的正确性。
![](https://i-blog.csdnimg.cn/direct/3d08132e829046ee906391164d03fba0.png)
它展示了一个问题、答案和CoA追踪的示例,包括使用Wikipedia搜索和命名实体识别(NER)查询
Wiki QA所需的领域特定工具包括一个Wikipedia搜索引擎来检索参考文章,以及一个NER工具包来提取连接多步搜索查询的实体。研究者们实现了一个BM25检索器作为Wikipedia搜索引擎,并使用Sentence-BERT嵌入余弦相似度对搜索结果进行重排,选择与问题最相似的文章作为最终搜索结果。SpaCy工具包被用作NER工具,以简化实体识别过程。
![](https://i-blog.csdnimg.cn/direct/585d9fc3d44a43e1bab53edfb2e532f4.png)
研究者们将CoA推理方法应用于7B和70B LLaMa模型,并测试了包括最初的LLaMa版本以及更先进的LLaMa-2和LLaMa-2-Chat版本。他们将CoA方法与几种基线进行了比较,包括使用少量样本提示的原始链式思考数据(CoT-FSP)、使用原始链式思考数据进行微调(CoT-FT),以及Toolformer,后者在CCNet文本上进行微调,这些文本通过API调用进行了增强。在Wiki QA评估中,他们还将CoA方法与FireAct进行了比较,FireAct是在从GPT-4中提取的HotpotQA ReAct轨迹上微调LLMs。
表4展示了在GSM8K和ASDiv数据集上,LLaMa-2和LLaMa-2-Chat模型的评估结果。CoA方法在这些数据集上超越了少量样本提示(CoT-FSP)和常规微调(CoT-FT)基线,证明了CoA微调结合工具增强对于适应多步推理任务的高效性。
- CoT-FSP(少量样本提示)在GSM8K数据集上的准确率为16.38%,在ASDiv数据集上的准确率为47.85%。
- CoT-FT(常规微调)在GSM8K数据集上的准确率为35.33%,在ASDiv数据集上的准确率为57.18%。
- Toolformer(一种工具增强的LLM)在GSM8K数据集上的准确率为17.59%,在ASDiv数据集上的准确率为48.55%。
- CoA在GSM8K数据集上的准确率为37.83%,在ASDiv数据集上的准确率为57.61%。
另外当在分布外数据集SVAMP和MAWPS上评估时,CoA同样持续超越基线方法。特别是对于7B模型,CoT-FT在这些数据集上的表现与CoA的差距更大,表明CoA推理在分布上更为稳健。
消融研究进一步验证了CoA方法在鲁棒性泛化性能上的优势不仅仅来自于使用额外的工具。通过微调另一个LLM来解决方程(而不是调用方程求解器),并将其表示为CoA (no Tool),研究发现CoA (no Tool)在所有数据集上的表现一致不如CoA,这证实了使用专业工具使LLM能够进行更精确的操作。
推理步骤的分析表明,当问题需要更长的推理链来解决时,CoA推理的优势最为明显。例如,在GSM8K数据集上,与CoT-FSP相比,CoA生成的推理链更常匹配金标准推理链的长度,并且在需要超过3个推理步骤的问题上,CoA的表现尤为突出。
![](https://i-blog.csdnimg.cn/direct/d94c82bcf590498eaff7be2950b7da5c.png)
人工评估通过让评估者判断模型对200个随机抽样的GSM8K测试问题的答案是否包含算术错误或与数学推导无关的推理错误,来全面验证CoA在提高知识操作(即使用工具进行算术)和推理准确性方面的改进。结果表明,CoA有效将算术错误降低到零,并在推理错误上也比基线方法更少,这证实了CoA微调指导模型通过抽象推理链的整体规划学习更准确的推理。
![](https://i-blog.csdnimg.cn/direct/169e6ea97c254d17a80f85cc81623a89.png)
推理效率方面,CoA推理的性能提升并没有以增加计算成本为代价。在GSM8K数据集上,CoA和基线代理(使用LLaMa2-Chat-7B)回答每个问题所需的平均时间(秒)显示,与CoT-FSP相比,CoA需要的时间更少,CoT-FSP的生成需要附加的样本条件。然而,CoA在推理效率上略低于CoT-FT,可能是由于抽象陈述的额外解码令牌(例如"["和"]")。
![](https://i-blog.csdnimg.cn/direct/dd7f776fe29f405e8f3652fc1b2127f8.png)
表6展示了使用LLaMa-2-Chat模型在Wiki QA上的结果。与数学推理类似,CoA在HotpotQA数据集上实现了比基线更高的精确匹配率,特别是在更具挑战性的桥接型QA上,其中涉及Wikipedia知识的两个推理步骤是连续交织的。与FireAct微调相比,CoA在桥接和比较QA上也实现了更好的性能,而且不需要来自封闭源GPT-4的数据。
CoA在回答HotpotQA问题时的推理效率也优于Toolformer和FireAct代理。CoA不需要像CoT-FSP和CoT-FT那样需要少量样本作为额外输入,也不需要生成长篇的Wiki文章,这些由搜索引擎提供。最后,在其他Wiki QA数据集上的零样本泛化实验中,CoA在NaturalQuestions和TriviaQA上超越了所有基线方法,并在WebQuestions上与最佳基线相当。
这些结果表明CoA方法不仅在数学推理任务上表现出色,而且在基于Wikipedia的问答任务中也展现了其有效性,证明了CoA方法在不同领域推理任务中的泛化能力和效率。
论文链接:https://arxiv.org/abs/2401.17464