1. Motivation
大型语言模型(LLMs)如GPT-4、PaLM和LLaMA在各种推理任务中展现出了令人印象深刻的性能。除了通过扩大模型规模来提高推理性能外,还有更有效的提示 方法可以进一步增强LLMs的功能和性能。然而,现有的单查询推理 (single-query reasoning)和多查询推理(multi-query reasoning)方法都面临一些局限性,如缺乏普遍性和泛化能力、计算密集型、以及忽视从先前任务中提取一般性和高层次的指导思想或思维。为了解决这些限制,论文提出了一种新的方法。
- 单查询推理包括有:CoT(在输入查询后附加"Let's think step by step"),和few-shot Prompting(提供与任务相关的demonstrations来帮助生成答案)
- 多查询推理:利用多个 LLM 查询来得出不同的合理推理路径,从而将一个复杂的问题分解为一系列更简单的子问题。如Least-to-Most,ToT,GoT
2. Contribution
- 提出了一种新的方法:
Buffer of Thoughts (BoT)
来提高基于 LLM 的推理的准确性、效率和稳健性。 - 设计了元缓冲区
(meta-buffer)
来存储从不同问题中提取的信息丰富的高层思想(thought-template)
,并针对每个问题适应性地实例化这些思想模板。 - 设计了缓冲区管理器
(buffer-manager)
,用于从各种解决方案中提取思想模板,并随着解决更多任务而不断提升元缓冲区的能力。 - 对 10 项具有挑战性的推理密集型任务进行广泛的实验。与之前的 SOTA 方法相比, BoT 实现了显着的性能改进:在
Game of 24
上提高了 11%,在Geometric Shapes
上提高了 20%,在Checkmate-in-One
上提高了 51%,而平均成本仅为多查询提示方法的 12%。
3. Buffer of Thoughts
Overview
给定一个特定任务,利用问题蒸馏器(problem-distiller)来提取关键的特定于任务的信息并具有相关的约束条件。根据提炼的信息,在包含一系列高级思想(thought-template)的元缓冲区(meta-buffer)中进行搜索,并检索与任务最相关的思想模板(thought-template)。随后,用更多特定于任务的推理结构实例化检索到的思维模板并进行推理过程。最后,我们使用缓冲区管理器(buffer-manager)来总结整个问题解决过程,并提炼高层思想以增加元缓冲区的容量。
3.1 Problem Distiller
作者设计了一个元提示 φ 来首先提取和形式化任务信息。提取的任务信息可以表示为:
其中 x 是任务说明。
Problem Condensation and Translation
使用问题蒸馏器从输入任务中提取关键元素,重点关注:(1)解决问题的基本参数和变量; (2)输入任务的目标及其相应的约束。然后,将这些提炼出来的信息重新组织成清晰、易于理解的格式,以供后续推理阶段使用。然后将具体问题转化为高级概念和结构。这种翻译过程将复杂的现实问题(例如复杂的数学应用场景)分解为更简单的多步骤计算,从而更容易检索高级思想。
3.2 Thought-Augmented Reasoning with Meta Buffer
人类在解决问题时往往会总结并归纳出更高层次的指导方针,然后应用于相关问题。受此启发,作者提出了元缓冲区,这是一个轻量级库,其中包含一系列用于解决各种类型问题的高级思想(思想模板)。 BoT 旨在为各种任务提供通用的推理方法,因此相应地将思维模板分为六类:文本理解、创造性语言生成、常识推理、数学推理、代码编程和应用程序调度。这种思维模板的分类可以方便模板检索,以找到针对不同问题的最合适的解决方案。作者将思想模板、模板描述及其对应的类别表示为(Ti, DTi , Ck),其中i表示元模板的索引,k ∈ Z+且1 ≤ k ≤ 6,这意味着Ck属于六个中的一个类别,DTi是思维模板的描述。
Template Retrieval
对于每个任务, BoT 通过计算描述 DTi 和 xd 之间的嵌入相似度来检索与蒸馏问题 xd 高度相似的思想模板 Ti。检索过程可以表述为:
Instantiated Reasoning
对于每个特定任务,根据当前任务是否是新任务来讨论实例化推理的两种情况:
- 第一种情况是成功检索该任务的思维模板 Tj。在这种情况下,思想增强推理将通过我们设计的实例化提示自适应地实例化为合适的推理结构。
- 在第二种情况下,该任务被识别为新任务。为了实现正确的实例化推理,准备了三个通用的粗粒度思维模板以供使用。根据提取的任务信息 xd,我们的 BoT 会自动为推理过程分配合适的思维模板。
3.3 Buffer Manager
提出缓冲区管理器来总结从每个问题解决过程中获得的高级指南和思想。它可以将每个具体解决方案推广到更多问题,以思想模板的形式将关键的提炼知识存储在元缓冲区中。与为每个问题临时生成示例或指令的方法相比,缓冲区管理器可以确保基于 LLM 的推理的准确性、效率和稳健性方面的永久进步。
Template Distillation
为了提取通用的思维模板,提出了一个三步方法:(1)核心任务总结:识别和描述问题的基本类型和核心挑战; (2)解决步骤描述:总结解决问题的一般步骤; (3)通用答题模板:根据上述分析,提出可广泛应用于类似问题的解答模板或方法。此外,为了提高模板蒸馏的泛化能力和稳定性,精心设计了两种类型的上下文示例来生成思维模板------任务内示例和跨任务示例。跨任务意味着选择从一项任务中提炼出来的模板来解决其他任务的问题,例如用与代码相关的思维模板来解决数学问题。从输入任务 x 中提取的新模板用到的prompt:
Dynamic Update of Meta-Buffer
模板蒸馏后,需要考虑是否应该将蒸馏后的模板更新到元缓冲区中。如果初始化一个空的元缓冲区或遇到没有正确思想模板的问题,则蒸馏后的思想模板将直接存储在元缓冲区中。如果用检索到的思维模板来解决问题,那么在特定思维模板的实例化过程中可能会出现新的见解。因此,为了避免元缓冲区的冗余,同时保持新生成的信息思想,将计算 DTnew 和 {DTi }n i=0 的嵌入向量之间的相似度,并使用以下规则更新元缓冲区:
否则,这意味着元缓冲区已经拥有解决该任务所需的知识,不需要执行更新。这样的动态更新策略有效地减少了模板检索的计算负担,同时确保了元缓冲区的轻量级属性。
4. Experiments
在多个任务和数据集上的实验表明,BoT在各种复杂的基准测试中持续超越所有先前的提示方法,特别是在"24点游戏"和"一步棋"等复杂推理任务上取得了显著的准确性提升。
此外,BoT在推理效率上与单查询方法相当,远高于传统的多查询方法,并且具有更高的推理鲁棒性。
论文还分析了思想模板的分布和时间成本:
并探讨了模型大小与性能之间的权衡,发现配备BoT的较小模型能够展现出接近甚至超越较大模型的能力。