Meta推出新型LLM推理方法,可显著提升推理效率和决策质量。对AI应用开发的性能优化有实战指导意义。
大语言模型(LLM)已经展现出令人难以置信的推理能力,渗透到我们生活中越来越多的领域。这些模型通过在大量人类语言数据上进行预训练来实现这些能力。从这些模型中提取最准确响应的一个常见而强大的方法叫做思维链(Chain-of-Thought,CoT),我们通过鼓励模型逐步生成解决方案来进行,为到达最终答案的推理过程提供说明。然而,LLM 的推理必须用文字生成,这对模型施加了根本的约束。
神经影像学研究表明,人脑负责语言理解和表达的区域在推理任务期间基本上保持不活跃。这表明语言是为交流优化的,而不一定是为复杂的问题解决而优化。如果人类在推理过程中不总是把思想转化为文字,为什么 AI 应该这样做呢?
在这篇文章中,我们深入探讨了 Meta 的一篇引人入胜的论文,标题为:"在连续潜在空间中训练大语言模型进行推理"。这篇论文旨在通过允许 LLM 使用一种新的方法(称为 COCONUT,Chain of Continuous Thought 的缩写)在连续潜在空间中进行推理,来摆脱基于文字推理的约束。
让我们开始描述 Chain of Continuous Thought 方法如何工作。我们将使用论文中的以下图表,该图表比较了 Chain-of-Thought 方法与 Chain of Continuous Thought 方法。我们先从简短描述 Chain-of-Thought 开始,然后描述 Coconut 方法。
在上面图表的左侧,我们看到了 Chain of Thought 方法如何工作的说明。最初,我们从一个问题开始,该问题被嵌入到输入令牌中以馈送到 LLM。然后我们接收响应中的第一个令牌,这是模型推理轨迹的开始。该令牌从模型的最后隐藏状态中检索,这是骨干 Transformer 的最后一层的输出。然后我们重复进行更多模型的前向传递,每次为其提供问题和我们迄今为止生成的推理过程令牌。一旦模型生成了整个推理轨迹,我们继续进行前向传递以生成最终答案。
现在我们已准备好理解新 Coconut 方法中的差异。使用 Coconut 方法,LLM 在语言模式和潜在思维模式之间交替。在语言模式下,模型作为标准语言模型操作,生成下一个令牌。在潜在模式下,它使用最后的隐藏状态作为下一步的输入。这个最后隐藏状态代表当前推理状态,称为"连续思维"。
在上面图表的右侧,我们看到我们从一个问题开始,以及一个特殊的 <bot> 令牌,它标记潜在思维模式的开始。模型处理问题并产生最后隐藏状态,之前我们将其转译为语言令牌,但现在我们不这样做。相反,我们将该隐藏状态作为输入嵌入反馈给模型,跟在问题和特殊令牌的嵌入之后。我们以迭代方式进行此过程,其中在每个阶段,我们都有更多在输入中使用的思维令牌。最后,我们有另一个特殊的 <eot> 令牌,它标记潜在思维模式的结束和语言模式的开始。从这里开始,模型作为标准语言模型操作,生成最终答案的令牌。
现在让我们继续描述 Chain of Continuous Thought 方法的训练程序。此过程旨在教授大语言模型如何在连续潜在空间中进行推理。我们将使用论文中的以下图表,该图表显示了训练程序的阶段。
研究人员利用现有的语言 Chain-of-Thought 数据,其中每个样本包括一个问题、推理步骤和最终答案。在第 0 阶段,模型不生成任何思维令牌,只是被训练为在 Chain-of-Thought 样本上产生推理轨迹和正确答案。在随后的阶段,在每个阶段,我们从样本中删除一个推理步骤,并相反添加思维令牌。在上面的图表中,在每个阶段中添加单个思维令牌而不是单个推理步骤,但这由超参数"c"控制。
在这些阶段中的每一个上,损失仅在剩余的推理步骤和答案上计算,而不是在思维令牌上。提议的连续思维是完全可微分的,允许反向传播。当多个潜在思维被安排在当前训练阶段时,执行多个前向传递,用每个传递计算新的潜在思维,最后在剩余的文本序列上获得损失。
一个重要的注意是,损失目标不鼓励连续思维压缩被删除的语言思维,而是促进未来推理的预测。因此,模型有可能学到比人类语言更有效的推理步骤表示。
模型如何确定何时从潜在思维模式切换到语言模式?研究人员探索了两种策略。第一种策略涉及让模型使用潜在思维上的二元分类器来决定。第二种策略使用恒定数量的潜在思维。由于两种策略提供了可比较的结果,研究人员选择使用恒定数量的思维以简化。
现在让我们查看论文中提供的一些结果,使用下表,该表显示了 Coconut 方法与三个数据集上几个基线的比较:用于数学的 GSM8K、用于逻辑推理的 ProntoQA,以及 ProsQA,这是为本论文构建的一个数据集,它需要更强的规划能力。
首先,查看 Coconut 结果与 No-CoT 的对比,No-CoT 是一个 LLM 版本,试图直接产生答案而不进行推理轨迹,我们可以看到连续思维显著增强了推理能力,因为 Coconut 在所有三个数据集上的表现都明显更好。
与 CoT 相比,我们看到 CoT 在数学上更好,但 Coconut 在需要强大规划的 ProsQA 上明显更好。我们稍后会深入探讨这一点。还值得一提的是,CoT 需要生成比 Coconut 更多的令牌,这使得 Coconut 效率更高。
另一个最近的基线,也试图以不同方式内化推理过程的是 i-CoT。我们可以看到 Coconut 在数学上实现了更好的准确度,而在其他两个数据集上具有可比性。然而,i-CoT 需要生成较少的令牌。
消融研究中一个特别有趣的结果是标记为"w/o curriculum"的第一个。它显示了多阶段训练的重要性。这个版本中的模型仅使用来自训练最后阶段的样本进行训练,这些样本只包括问题和答案,模型需要使用连续思维解决整个问题。这个版本的结果明显较低。
结果中一个有趣的观察是潜在推理对规划密集型任务的益处。所有使用某种形式潜在推理的版本在 ProsQA 数据集上的表现都比 CoT 更好,该数据集与其他两个数据集相比需要更复杂的规划。
上面来自论文的图表显示了 ProsQA 数据集中的一个案例研究。在右上方,我们看到问题,它建立了各种关系并询问可以从这些关系推断的连接。在左边,我们看到从问题中定义的关系构建的图表,其中每个"is-a"关系都有一条边。
具体问题是 Alex 是否是 gorpus 或 bompus。地面真相需要两步推理来提供最终答案,即 bompus。这可以通过从 Alex 节点执行图搜索、在两步中到达目标节点 bompus 来推断。
使用链思维推理,模型幻觉了一条不存在的边,导致答案错误。我们还可以看到使用一个思维令牌的 Coconut 方法产生了不正确的结果,但当使用两个思维令牌时,模型得到了正确答案。一个可能的解释是思维令牌允许模型在提交到特定路径之前探索多个可能的分支,而链思维推理从一开始就选择了一个方向。这种能力在某种程度上类似于广度优先搜索(BFS)。
现在让我们以结论和一些可能的未来方向来总结。首先,Coconut 方法显著增强了 LLM 推理。当我们将结果与 No-CoT 版本进行比较时,我们看到了这一点。其次,潜在空间推理允许模型开发一个有趣的类 BFS 推理模式,这帮助它在规划密集型任务上表现更好。
展望未来,有各种有趣的未来研究方向。一个可能的方向是使用连续思维预训练大语言模型,而不是从标准预训练模型开始。另一个方向是优化 Coconut 的效率,以更好地处理多个前向传递的顺序性质。最后,将潜在思维与标准链思维相结合,而不是替代它,可能允许获得两种方法的好处。尽管这需要更多的推理步骤。
加入我们的新闻通讯以接收我们评论的论文的简明 1 分钟摘要 – Newsletter
对这篇文章中涵盖的研究的所有信用归功于撰写论文的研究人员。