Parrot: A Training Pipeline Enhances Both Program CoT and Natural Language CoT for Reasoning


TL;DR

本文提出了一种名为 Parrot 的新颖训练流水线,旨在通过三个专门设计的子任务和混合训练策略,相互增强程序思维链(P-CoT)和自然语言思维链(N-CoT)的性能,从而同时提升两种范式下的数学推理能力。

关键定义

本文的核心是围绕如何结合两种推理范式。关键定义如下:

相关工作

当前的语言模型在解决数学推理问题时,主要依赖两种范式:自然语言思维链(N-CoT)和程序思维链(P-CoT)。N-CoT 善于语义理解和展示详细的推理过程,但常受困于计算错误和逻辑不一致。P-CoT 则凭借代码的精确性保证了计算的准确性和可验证性,但在深入理解问题、抽象推理和变量定义方面表现不佳。

现有研究通常尝试单向增强,即用 N-CoT 辅助 P-CoT 的生成,或用 P-CoT 的结果来验证 N-CoT。然而,这两种范式之间的协同促进潜力尚未被充分挖掘。

本文旨在解决上述问题,通过对两种范式错误类型的深入分析,提出一种能够让它们互相借鉴优势、弥补对方缺陷的训练框架,最终实现两种推理能力的同步提升。

两种范式下的错误类型分布直方图

本文方法

动机与框架

基于对 N-CoT 和 P-CoT 错误的分析,本文提出了 Parrot 训练流水线,其核心思想是利用两种范式的优势来相互弥补不足,实现共同提升。该流水线通过结构化的子任务,先关注关键信息以生成定义良好的 P-CoT,再基于 P-CoT 及其精确的中间结果生成逻辑清晰的 N-CoT。

Parrot的训练流水线与方法

流水线子任务

Parrot 包含三个专门设计的子任务,模拟了人类解决问题的过程:

  1. 信息检索 (IR.): 首先,模型被训练从问题 $x$ 中提取关键的数字信息 $d_1$。这一步旨在解决 P-CoT 中常见的变量定义错误问题。

    \[d_{1}\sim\Pi(\cdot \mid x\oplus p_{1})\]
  2. P-CoT生成 (P-gen.): 接着,模型利用上一步提取的关键信息 $d_1$ 来生成 Python 代码片段 $d_2$ 作为 P-CoT。

    \[d_{2}\sim\Pi(\cdot \mid x\oplus p_{1}\oplus d_{1}\oplus p_{2})\]
  3. 转换的N-CoT生成 (C-gen.): 最后,模型基于问题 $x$、已生成的 P-CoT ($d_2$) 及其执行产生的中间结果 $i$,生成一个更易于理解的 N-CoT ($d_3$)。

    \[d_{3}\sim\Pi(\cdot \mid x\oplus p_{1}\oplus d_{1}\oplus p_{2}\oplus d_{2}\oplus i\oplus p_{3})\]

    这一步骤的创新点在于,它利用 P-CoT 简洁的推理步骤来缓解 N-CoT 的冗余问题,同时,P-CoT 的中间计算结果 $i$ 为 N-CoT 的生成提供了简单而有效的过程监督,显著减少了计算错误和逻辑不一致。

训练策略

子任务混合训练

本文没有按顺序训练三个子任务,而是采用了一种混合训练策略。所有子任务都被构造成统一的输入输出格式,并进行多任务监督微调(SFT)。这种策略旨在:

强化学习增强

在 SFT 初始化模型后,本文进一步引入强化学习来验证 Parrot 框架的有效性和数据效率。

实验结论

主要性能

实验结果表明,Parrot 框架在 N-CoT 和 P-CoT 两种推理范式上均取得了显著的性能提升,尤其是在 N-CoT 上。

模型与方法 数据集 LLaMA2-7B CodeLLaMA-7B
N-CoT 推理      
SFT N-CoT MathQA 36.21 37.11
SFT On-SL MathQA 42.13 43.14
SFT PPO MathQA 45.32 47.16
Parrot SFT N-CoT MathQA 58.08 58.59
P-CoT 推理      
SFT P-CoT MathQA 46.04 47.04
SFT On-SL MathQA 47.85 49.88
SFT PPO MathQA 48.91 50.41
Parrot SFT P-CoT MathQA 46.73 49.03
Parrot RL P-CoT MathQA 51.24 51.62

消融分析

PPO训练中N-CoT惩罚的影响 PPO训练中N-CoT惩罚的影响

错误分析与数据质量

使用Parrot On-SL收集的N-CoT数据进行SFT的性能

综上所述,Parrot 是一个高效且数据利用率高的训练框架,它通过巧妙地设计子任务和训练策略,成功地实现了 N-CoT和P-CoT两种推理范式的相互促进和同步增强。