《PromptCoT 2.0》详解:少样本下如何构建与训练 CoT
字节与港大提出的 PromptCoT 2.0 ,在少样本、无强教师、无人工标注条件下,高效生成高质量 CoT(Chain-of-Thought)数据并训练模型。
1. 核心目标与动机
传统 CoT 依赖人工标注的"问题-推理链-答案"三元组,但:
- 人工成本高:Olympiad 数学/竞赛编程题稀缺且昂贵;
- 合成数据太简单:现有方法生成的问题难度低、多样性差;
- 强教师不可得:SFT 需要更强模型蒸馏,但最强模型往往是闭源的。
"人类策划的数据集成本高昂且有限,而现有的合成语料库往往过于简单或狭窄(human-curated datasets are costly and limited, while existing synthetic corpora are often too easy or narrow)。"
PromptCoT 2.0 的目标是:仅用开源问题冷启动,自动生成高难度、高多样性的 CoT 数据,用于训练任意规模的 LLM。
2. 数据构造:EM 驱动的 CoT 合成(核心创新)
PromptCoT 2.0 将 CoT 合成建模为 概念(c)→ 理由(z)→ 问题(x) 的生成过程,其中 z 即 CoT(rationale)。整个流程分为两阶段:
2.1 冷启动初始化(Cold-start Initialization)
输入:开源问题(如 AoPS 数学题、Codeforces 编程题)。
步骤:
-
概念提取 :用 4 个强模型(Qwen2.5-32B/72B, Llama-3.1-70B, phi-4)为每个问题标注 基础概念。
"识别{num concepts}个基础概念......是标准课程中教授的核心概念,精确且可衡量。"
示例(数学题):- 问题:"求 2019⁸ + 1 的最小奇素因子"
- 概念:
["模运算", "费马小定理", "素数性质", "指数同余"]
-
理由生成(CoT 生成) :用同样模型生成 反向工程式 CoT。
"展示如何将给定基础概念自然组合成指定难度的问题......另一位教师遵循这些步骤能复现相同问题。"
示例(简化):- 理由(CoT):"首先,利用费马小定理分析 aᵖ⁻¹ ≡ 1 (mod p);其次,设 p 为奇素因子,则 2019⁸ ≡ -1 (mod p);两边平方得 2019¹⁶ ≡ 1 (mod p),故 16 是 2019 模 p 的阶;因此 p ≡ 1 (mod 16);最后枚举满足条件的最小奇素数。"
输出 :种子数据集 (c, z, x),用于初始化两个模型:
- 理由生成模型 qϕ(z∣c,x)q_\phi(z|c, x)qϕ(z∣c,x):给定概念和问题,生成 CoT。
- 问题生成模型 pθ(z,x∣c)p_\theta(z, x|c)pθ(z,x∣c):给定概念,生成 CoT 和问题。
【关键点】:冷启动不需要人工标注,仅用开源问题 + 多模型投票即可获得高质量初始 CoT。
2.2 EM 优化:奖励函数的定义、计算与分数来源(重点详解)
PromptCoT 2.0 的核心是 Expectation--Maximization (EM) 框架,其目标是联合优化理由生成模型 qϕq_\phiqϕ 与问题生成模型 pθp_\thetapθ。该过程严格遵循变分推断的 ELBO(Evidence Lower Bound)理论。
(1)理论基础:ELBO 与奖励函数的来源
目标是最大化观测数据的对数似然 logpθ(x∣c)\log p_\theta(x|c)logpθ(x∣c)。由于直接优化困难,引入变分分布 qϕ(z∣c,x)q_\phi(z|c, x)qϕ(z∣c,x),得到 ELBO:
logpθ(x∣c)≥Eqϕ(z∣c,x)[logpθ(z,x∣c)]−KL(qϕ(z∣c,x)∥pθ(z∣c)) \log p_\theta(x|c) \geq \mathbb{E}{q\phi(z|c,x)}[\log p_\theta(z, x|c)] - \mathrm{KL}(q_\phi(z|c, x) \parallel p_\theta(z|c)) logpθ(x∣c)≥Eqϕ(z∣c,x)[logpθ(z,x∣c)]−KL(qϕ(z∣c,x)∥pθ(z∣c))
-
E-step :固定 pθp_\thetapθ,更新 qϕq_\phiqϕ 以最小化 KL 散度。最优解为:
qϕ⋆(z∣c,x)∝pθ(z,x∣c)=pθ(x∣z,c)pθ(z∣c) q_\phi^\star(z|c, x) \propto p_\theta(z, x|c) = p_\theta(x|z, c) p_\theta(z|c) qϕ⋆(z∣c,x)∝pθ(z,x∣c)=pθ(x∣z,c)pθ(z∣c)→ 这正是奖励函数的理论来源。
-
M-step :固定 qϕq_\phiqϕ,更新 pθp_\thetapθ 以最大化期望联合对数似然:
Eqϕ(z∣c,x)[logpθ(z,x∣c)] \mathbb{E}{q\phi(z|c,x)}[\log p_\theta(z, x|c)] Eqϕ(z∣c,x)[logpθ(z,x∣c)]
(2)奖励函数的定义与计算(回答问题1)
在 E-step 中,为从 qϕ(z∣c,x)q_\phi(z|c, x)qϕ(z∣c,x) 采样的候选 CoT zzz 打分,使用奖励函数:
R(c,x,z)=logpθ(x∣z,c)+logpθ(z∣c) R(c, x, z) = \log p_\theta(x|z, c) + \log p_\theta(z|c) R(c,x,z)=logpθ(x∣z,c)+logpθ(z∣c)
"奖励与联合对数似然成正比:它们必须 align with the concepts while also being predictive of valid prompts(奖励与联合对数似然成正比:它们必须与概念对齐,同时能预测有效问题)。"
分数是怎么算出来的?
- logpθ(z∣c)\log p_\theta(z|c)logpθ(z∣c):问题生成模型 pθp_\thetapθ 在给定概念 ccc 下生成 CoT zzz 的对数概率;
- logpθ(x∣z,c)\log p_\theta(x|z, c)logpθ(x∣z,c):pθp_\thetapθ 在给定 zzz 和 ccc 下生成原问题 xxx 的对数概率。
实际操作(§5.4.1):
- 对每个 (c,x)(c, x)(c,x),从 qϕ(z∣c,x)q_\phi(z|c, x)qϕ(z∣c,x) 采样 8 个候选 CoT;
- 对每个候选 ziz_izi,用当前 pθp_\thetapθ 计算其 token-level 的对数似然(即语言模型的标准 log-prob);
- 将两部分 log-prob 相加,得到总奖励 R(c,x,zi)R(c, x, z_i)R(c,x,zi);
- 选择奖励最高的 z∗z^*z∗ 作为"伪标签" ,用于监督微调 qϕq_\phiqϕ。
因此,分数完全来自语言模型 pθp_\thetapθ 对序列 (z,x)(z, x)(z,x) 的概率估计,无需外部打分器。
(3)优化方式:如何更新模型
-
E-step(更新 qϕq_\phiqϕ):
- 将 (c,x,z∗)(c, x, z^*)(c,x,z∗) 视为监督信号;
- 对 qϕq_\phiqϕ 进行 监督微调(SFT),使其更倾向于生成高奖励 CoT。
- 训练细节 (§5.4.1):学习率 2×10−62 \times 10^{-6}2×10−6,batch size 16,温度 1.0。
-
M-step(更新 pθp_\thetapθ):
- 使用当前 qϕq_\phiqϕ 确定性解码 (温度 0.0)生成 CoT zzz;
- 在 (c,z,x)(c, z, x)(c,z,x) 三元组上对 pθp_\thetapθ 进行标准语言建模训练,最大化 logpθ(z,x∣c)\log p_\theta(z, x|c)logpθ(z,x∣c)。
- 训练细节 :学习率 2×10−62 \times 10^{-6}2×10−6,batch size 16。
"在 E-step 中,理由生成模型通过强化学习更新,奖励定义为......在 M-step 中,问题生成模型使用 Eq. 4 的目标进行训练。"
(4)交替优化的意义
- E-step:让 CoT 更好地"解释"概念并"预测"问题;
- M-step:让问题生成模型更忠实地"重建"CoT 和问题;
- 循环往复:CoT 质量提升 → 问题难度提升 → CoT 需更精细 → ......
"交替这两个步骤,逐步改进 qϕq_\phiqϕ 和 pθp_\thetapθ,形成一个迭代循环:理由指导问题构建,问题合成反过来促进更有效理由的发现。"
【关键结论】:奖励函数 不是人为设计的启发式规则 ,而是 ELBO 理论下最优变分分布的对数形式,确保了优化方向的正确性。
3. 训练方法:两种少样本 CoT 训练范式
合成 CoT 后,PromptCoT 2.0 支持两种训练模式,适配不同规模模型:
3.1 自博弈(Self-Play)------适用于强模型(如 Qwen3-30B)
适用场景:模型已有较强推理能力,但缺乏更强教师蒸馏。
流程:
- 模型在合成问题上生成多个解答(rollouts)。
- 用自动验证信号 给出二元奖励:
u(x,y)={1解答正确0否则 u(x, y) = \begin{cases} 1 & \text{解答正确} \\ 0 & \text{否则} \end{cases} u(x,y)={10解答正确否则 - 用 DPO 优化模型,无需更强教师。
"学习由自动可验证反馈引导,而非依赖外部轨迹(learning is guided by automatically verifiable feedback rather than relying on external traces)。"
问题2:自动验证信号是什么?
根据 §5.4.2,自动验证信号具体为:
- 数学题 :生成的答案是否精确匹配 通过 8 次 majority voting 得到的参考答案(boxed answer);
- 编程题 :生成的代码是否通过所有单元测试(3--4 个由 Qwen3-32B 自动生成的 test cases)。
"For mathematics, 30,435 prompts were synthesized using PromptCoT 2.0 and paired with a final boxed answer obtained via majority voting over 8 generations from Qwen3-30B... For programming, each synthesized prompt was paired with 3--4 automatically generated unit tests using Qwen3-32B."
因此,自动验证信号 = 客观、可程序化判断的正确性指标,不依赖人工或 LLM 打分。
输入数据是什么?
自博弈的输入是 合成的问题(prompts),每个问题包含:
- 自然语言问题描述;
- (编程题)3--4 个自动生成的单元测试;
- (数学题)一个通过 8 次 majority voting 获得的参考答案。
DPO 是让模型学会给出正确答案吗?
是的,但更精确地说,是让模型学会"偏好正确答案" 。
DPO 的输入是一对样本:
- 正样本 :模型生成的、通过验证的解答(u=1u=1u=1);
- 负样本 :模型生成的、未通过验证的解答(u=0u=0u=0)。
DPO 的目标函数为:
LDPO=−logσ(β[logπθ(y+∣x)πref(y+∣x)−logπθ(y−∣x)πref(y−∣x)]) \mathcal{L}{\text{DPO}} = -\log \sigma\left( \beta \left[ \log \frac{\pi\theta(y^+|x)}{\pi_{\text{ref}}(y^+|x)} - \log \frac{\pi_\theta(y^-|x)}{\pi_{\text{ref}}(y^-|x)} \right] \right) LDPO=−logσ(β[logπref(y+∣x)πθ(y+∣x)−logπref(y−∣x)πθ(y−∣x)])
其中 πθ\pi_\thetaπθ 是当前策略,πref\pi_{\text{ref}}πref 是参考模型。
效果 :模型学会 在相同问题下,更倾向于生成通过验证的解答。
3.2 监督微调(SFT)------适用于弱模型(如 Qwen2.5-7B)
适用场景:模型推理能力较弱,需显式 CoT 指导。
流程:
- 用强教师模型(GPT-OSS-120B)为合成问题生成完整 CoT。
- 学生模型在 (问题, CoT) 对上进行 SFT。
"确保即使是较弱的模型也能通过显式的轨迹级监督,有效受益于 PromptCoT 2.0。"
4. 实验验证:少样本 CoT 的有效性
4.1 Self-Play(Qwen3-30B)
方法 | AIME 24 | AIME 25 | HMMT 25 | LiveCodeBench v5 |
---|---|---|---|---|
Baseline | 87.7 | 85.0 | 71.4 | 68.1 |
PromptCoT 2.0 | 92.1 (+4.4) | 89.8 (+4.8) | 76.7 (+5.3) | 74.2 (+6.1) |
4.2 SFT(Qwen2.5-7B,仅用合成数据)
方法 | AIME 24 | AIME 25 | LiveCodeBench v5 |
---|---|---|---|
Baseline | 12.8 | 8.0 | 14.7 |
PromptCoT 2.0 | 73.1 | 65.6 | 53.4 |
"仅用合成提示训练的模型,超越了用人类或混合数据训练的模型。"
4.3 消融实验(SFT,7B 模型)
变体 | AIME 24 | Codeforces |
---|---|---|
Full | 73.1 | 1815 |
-- Cold-start | 72.1 (-1.0) | 1677 (-138) |
-- EM | 69.8 (-3.3) | 1592 (-223) |
"移除 EM 优化阶段导致最大性能下降,证明迭代优化 CoT 是成功的核心。"
5. 个人评价与建议
【我认为,PromptCoT 2.0 是少样本 CoT 领域的里程碑工作,但在以下方面仍有改进空间:】
-
冷启动依赖强模型 :需要 4 个 30B+ 模型做标注,对资源有限团队不友好。【我认为,可以用模型集成蒸馏(如用多个 7B 模型投票)替代单一大模型,降低成本。】
-
EM 收敛性未分析 :论文未讨论 EM 是否收敛到全局最优。【我认为,可引入课程学习(Curriculum Learning),从简单 CoT 开始逐步增加难度,稳定训练过程。】
-
验证信号局限 :仅支持有明确验证标准的任务(如数学、编程)。【我认为,可结合LLM-as-a-Judge(如用 Reward Model 打分)扩展到开放域推理任务。】
-
未探索多跳 CoT :当前 CoT 多为单路径推理。【我认为,可引入图结构 CoT,支持多分支、多跳推理,更贴近人类思维。
总体而言,PromptCoT 2.0 通过 EM 优化 + 自动验证 + 两种训练范式,为少样本 CoT 提供了一套完整、可扩展的解决方案,值得在工业界广泛采用。