- 论文:https://arxiv.org/pdf/2412.06769
- 代码:暂未开源
- 机构 :Meta
- 领域:思维链
- 发表:arxiv
研究背景
- 研究问题:这篇文章要解决的问题是如何在大语言模型(LLMs)中实现一种新的推理范式,即通过连续的潜在空间进行推理,而不是依赖于自然语言。
- 研究难点:该问题的研究难点包括:现有的链式思维(CoT)推理方法在生成每一步推理时需要大量的计算资源,且大多数token主要用于文本连贯性而非推理;如何在不受语言约束的情况下进行推理,并在必要时将其结果转化为自然语言。
- 相关工作:该问题的研究相关工作包括:CoT推理方法,即将中间推理过程以自然语言形式生成;潜在推理方法,如在变换器中进行隐藏计算。
研究方法
这篇论文提出了Coconut(链式连续思维)作为一种新的推理范式,用于解决LLMs在潜在空间中进行推理的问题。具体来说,
-
Coconut方法概述:Coconut方法通过在传统CoT过程中引入一个简单的修改来实现潜在空间的推理。具体来说,Coconut将最后隐藏状态(即“连续思维”)直接作为下一个输入嵌入,而不是将其解码为token。
-
训练过程:在训练过程中,Coconut采用多阶段训练策略,首先在常规CoT实例上进行训练,然后在后续阶段中逐步替换语言推理步骤为连续思维。每个阶段的训练都使用语言推理链来指导训练过程。
-
数学推理:在数学推理任务中,使用GSM8k数据集,默认每个推理步骤使用2个连续思维。模型经过3个初始阶段和1个额外阶段进行训练,最后一个阶段完全使用连续思维进行推理。
-
逻辑推理:在逻辑推理任务中,使用ProntoQA和ProsQA数据集,分别使用1个和多个连续思维进行推理。模型经过6个训练阶段进行训练,最后一个阶段完全使用连续思维进行推理。
实验设计
- 数据集:实验使用了三个数据集:
- 数学推理:GSM8k数据集,包含 grade school-level math problems。
- 逻辑推理:ProntoQA数据集,包含5-hop的逻辑问题;ProsQA数据集,通过随机生成的DAG结构构建,要求模型进行大量规划和搜索。
- 模型:使用预训练的GPT-2作为基础模型,学习率设置为1×10−4,有效批量大小为128。
- 训练过程:模型经过多阶段训练,每个阶段逐步替换语言推理步骤为连续思维。训练过程中优化正常负对数似然损失,并掩蔽问题和潜在思维的损失。
- 推理过程:在推理过程中,直接将最后隐藏状态作为下一个输入嵌入。对于ProsQA数据集,插入<bot>和<eot>标记以封装连续思维。
结果与分析
-
数学推理:在GSM8k数据集上,Coconut方法的推理准确性显著高于不使用连续思维的方法(No-CoT),并且优于CoT方法。随着连续思维数量的增加,模型性能稳步提升。
-
逻辑推理:在ProntoQA和ProsQA数据集上,Coconut方法及其变体(如去掉课程、去掉连续思维、使用<pause>标记替代连续思维)均表现出优于CoT方法的推理能力。特别是在ProsQA数据集上,Coconut方法显著减少了推理过程中的token数量。
-
潜在推理的优势:在需要大量规划的逻辑推理任务中,Coconut方法表现出明显的优势,能够更有效地进行推理,减少错误路径的产生。
总体结论
这篇论文提出了Coconut,一种在连续潜在空间中进行推理的新范式。通过实验验证,Coconut显著提高了LLMs的推理能力,特别是在需要大量规划的逻辑推理任务中表现出色。未来的研究方向包括进一步优化潜在推理方法,并将其应用于更广泛的推理场景。
论文评价
优点与创新
- 提出了新的推理范式:论文引入了Coconut(连续思维链)这一新范式,通过将大型语言模型(LLMs)的最后隐藏状态作为推理状态的表示(即“连续思维”),直接将其作为下一个输入嵌入,从而在不受语言空间限制的情况下进行推理。
- 多阶段训练策略:借鉴了Deng等人的方法,提出了一种多阶段训练策略,有效地利用语言推理链来指导训练过程。
- 高效的推理模式:连续思维可以同时编码多个潜在的下一步,允许模型执行广度优先搜索(BFS),从而在推理过程中逐步消除错误路径。
- 实验结果显著:Coconut在某些需要大量回溯的逻辑推理任务中优于CoT,并且在推理过程中生成的标记更少。
- 自洽的推理机制:即使模型没有显式训练或指示以这种方式操作,也能自然发展出类似BFS的推理机制。
不足与反思
- 训练效率问题:尽管连续思维是完全可微分的,允许多次反向传播,但多次前向传递的顺序性质对并行性提出了挑战,未来研究需要进一步优化Coconut的训练效率。
- 规划密集型任务的优化:尽管Coconut在规划密集型任务中表现出色,但论文指出模型仍然需要指导才能学习到最有效的连续思维。未来工作可以通过预训练LLMs来使用连续思维,从而提高模型在不同推理场景中的泛化能力。
- 细粒度的移除计划:尽管iCoT的方法在训练过程中表现良好,但其更细粒度的移除计划和一些技巧可能有助于简化训练过程,未来可以将iCoT与Coconut结合作为研究方向。
关键问题及回答
问题1:Coconut方法在训练过程中如何利用多阶段训练策略来优化潜在推理?
Coconut方法采用了多阶段训练策略来优化潜在推理。具体来说,训练过程分为多个阶段,每个阶段逐步替换语言推理步骤为连续思维。在初始阶段,模型在常规的CoT实例上进行训练。随后,在后续阶段中,逐步增加连续思维的数量,同时减少语言推理步骤。每个阶段的训练都使用语言推理链来指导训练过程,确保模型能够有效地从语言推理迁移到潜在推理。这种分阶段的训练方法有助于模型逐步适应潜在空间的推理,避免了在初期阶段就面临过多的复杂推理任务。
问题2:在逻辑推理任务中,Coconut方法如何通过连续思维表现出优于传统CoT方法的能力?
在逻辑推理任务中,特别是ProsQA数据集上,Coconut方法通过连续思维表现出优于传统CoT方法的能力。具体来说,ProsQA数据集要求模型进行大量规划和搜索,而Coconut方法能够在推理过程中生成较少的token,同时保持较高的准确性。这是因为在潜在空间中,Coconut方法可以编码多个潜在的下一步,类似于广度优先搜索(BFS),从而逐步消除错误的路径,找到正确的推理路径。相比之下,传统的CoT方法在生成每一步推理时需要大量的计算资源,并且在生成token时可能会引入更多的错误。
问题3:Coconut方法在数学推理任务中的表现如何,与其他方法相比有何优势?
在数学推理任务中,Coconut方法的表现显著优于不使用连续思维的方法(No-CoT),并且优于CoT方法。具体来说,在GSM8k数据集上,Coconut方法的推理准确性更高,生成的token数量也显著减少。随着连续思维数量的增加,模型性能稳步提升,表明通过链式连续思维可以增强LLMs的推理能力。此外,Coconut方法在处理复杂的数学问题时表现出更好的泛化能力和稳定性,特别是在处理长推理链时,能够有效地减少计算资源的消耗。
参考:https://mp.weixin.qq.com/s/HAQ3CFokRzTkvWQ8MXnH0A?poc_token=HOp1aWejasZYHtbWbxHtHHGLHCTgn_AZhlSUXo8-