重新思考预训练中的反思现象

《Rethinking Reflection in Pre-Training》 摘要 语言模型反思其自身推理过程的能力,是其解决复杂问题的关键优势。尽管近期多数研究聚焦于此能力在强化学习阶段如何发展,但我们展示了它实际上在更早的时期——即模型的预训练期间——便已开始显现。为研究此现象,我们故意在思维链中引入错误,并测试模型是否仍能通过识别并纠正这些错误来得出正确答案。通过追踪模型在预训练不同阶段的表现,我们观察到这种自我纠正能力出现较早,并随时间推移而稳步提升。例如,一个基于 4 万亿 Token 预训练的 OLMo-2-7B 模型,在我们设计的六项自我反思任务中展现了自我纠正能力。 引言 反思增强了模型根据先前推理调整其响应的能力,从而提高了其输出的准确性。最近的研究报告称,“诸如反思之类的行为……是模型与强化学习环境互动的结果”。若要将能力的发展归因于此来验证这类主张,则必须在整个训练阶段进行全面的评估。在这项工作中,我们提出了一个详尽的框架来衡量反思,并且我们观察到这种现象在预训练期间持续存在。 使用现有的推理数据集对反思进行基准测试一直具有挑战性。在这类任务中,反思通常是稀疏的,并且每个模型都表现出独特的错误模式,从而产生独特的反思行为表现。我们通过区分情境反思 (situational-reflection) 和自我反思 (self-reflection) 来应对这一挑战。在情境设置中,模型检查由另一个来源(例如不同的前沿模型)创建的推理链。在自我反思中,模型则考虑其自身的推理过程。我们校准模型在被提供一些导致错误答案的干扰性推理时解决任务的能力,并以此在整个预训练过程中衡量反思能力。 \['gsd', 'avdropj'\]”。 通过以编程方式引入错误的思维链 (Chains-of-Thought, CoTs),其特征包含算术扰动和逻辑不一致性等元素,我们可以控制和扩展正确完成这些任务所需的反思程度。这也保持了已建立的 CoT 格式 。此外,我们的算法方法允许通过调整已建立的推理基准,以相对快速和经济的方式创建这些数据集,这反过来又使得对模型在各种领域中的反思能力进行全面研究成为可能。我们的六个数据集,涵盖数学、编码、逻辑推理和知识获取领域,旨在评估情境反思和自我反思能力。 对来自 OLMo-2 模型家族、具有不同预训练计算量的检查点在我们这组六个不同数据集上进行评估的结果表明,反思在各个领域普遍存在。即使是一个简单的触发短语,如“Wait,”,也能使部分预训练的模型持续识别出引入的错误和它们自己产生的错误。具体来说,240 个数据集-检查点对中有 231 个展示了至少一个情境反思的实例,240 个对中有 154 个展示了至少一个自我反思的实例。随着预训练的增加,模型会纠正更多的对抗性示例,导致准确性与 $\log(\text{预训练计算量})$ 之间的平均皮尔逊相关系数在各项任务中达到 0.76。此外,随着预训练的进行,模型越来越多地从不正确的先前推理中恢复,模型生成中明确反思的比率增加,并且明确反思越来越多地有助于从干扰性 CoT 中恢复。 本文的贡献有三方面: 我们引入了一种系统化的方法,用于创建跨越代码、知识获取、逻辑推理和数学领域的六个数据集,以研究模型的反思能力。 我们证明了具有不同能力和训练计算量的预训练模型可以在广泛的领域中使用简单的插入语引发反思,以纠正不准确的先前推理。 我们观察到,持续改进的预训练可以带来更好的反思,从而能够用更少的测试时 Token 来解决相同数量的任务。 方法 定义反思 反思是一种元认知形式,涉及审视信息,评估其背后的推理过程,并基于该评估调整未来的行为。在大型语言模型的背景下,这个过程可以应用于从外部来源引入的信息或模型自身生成的信息。在这项工作中,我们创建了两种情境来引发和衡量反思: 情境反思是指模型反思由其他来源(例如不同的模型)创建的信息。 自我反思是指模型反思其自身生成的输出。 我们还通过两种形式来全面刻画反思: 显式反思 发生在模型生成的 Token 在其含义上识别并处理了对抗性情境中的错误时。显式反思可能出现在正确的模型输出中(换句话说,那些构成对我们对抗性任务的正确答案的输出),也可能出现在不正确的模型输出中。 隐式反思 发生在模型在对抗性情境中设法正确解决任务,但没有输出明确识别先前推理中错误的 Token 时。根据我们的定义,这意味着隐式反思不能导致对我们对抗性任务的错误回答。这使我们能够区分以下两种情况:其一,显式反思缺失但可以推断出发生了隐式反思;其二,根本没有发生任何反思。 使用对抗性反思数据集引发反思 我们提出了一种生成对抗性数据集的算法,该数据集能够引发语言模型的反思行为。该算法创建导致错误解的对抗性思维链 (CoT)。与自我反思(我们可以从模型自身的错误中汲取经验)不同,对于情境反思,我们必须设计人工的对抗性 CoT。从高层次来看,这些对抗性 CoT 是通过破坏正确的 CoT 来创建的,其方式模仿了人类的推理错误,例如逻辑失误和算术计算错误。在这两种情况下,当我们在上下文中提供 CoT 时,模型必须反思这些错误并修正它们,以得出正确的解。我们相信这些设置对于全面研究反思是必要的。 ...

April 14, 2025 · 小茄墩