研究提案 已修订

前缀引导偏好合成:用模型自身的生成前缀控制偏好数据的质量分布

受 Prefix-Guided Preference Data Synthesis 启发,提出将前缀引导策略从 DPO 偏好数据扩展到中训练阶段,利用不同质量前缀诱导模型生成质量梯度数据,构建内含对比信号的中训练语料。

偏好数据 DPO 前缀引导 中训练 数据合成 对齐

触发动机

最近注意到 Information Processing & Management 上的一篇工作:Prefix-Guided Preference Data Synthesis(2026 年 1 月)。它的核心 idea 很简洁——用训练数据中已有内容的不同长度前缀作为引导,让模型续写出不同质量的响应,从而自动生成 DPO 偏好对。长前缀引导出的续写通常更好(因为有更多上下文约束),短前缀引导出的更差。

这个方法在偏好数据合成领域有效,但我觉得它的潜力远不止 DPO。如果把这个思路推广到中训练阶段:用不同质量的前缀来引导模型生成不同水平的推理链,然后把”好推理链”和”差推理链”放在一起作为中训练语料——让模型在 next-token prediction 阶段就学会区分”什么是好的推理、什么是差的推理”,而不是等到 RLHF 才做这个判断。

这与站内形式化验证 CoT proposal 的思路形成互补:那边是通过 Lean 验证来过滤错误推理链(硬过滤),这里是通过前缀引导来生成质量梯度数据(软对比)。

战略判断:为什么中训练阶段就应该包含偏好信号

行业认知转变

传统的训练管线是:预训练(学知识)→ 中训练(学领域)→ SFT(学格式)→ RLHF/DPO(学偏好)。偏好信号出现在最后一步。

但越来越多的证据表明这种”偏好后置”策略是低效的:

  1. ACL 2025 survey(Efficient LLM Post-Training)显示,DPO 的效果高度依赖预训练质量——如果模型在预训练阶段就学到了错误的推理模式,DPO 很难纠正
  2. Less is More(2025) 证明了少量高质量偏好数据比大量低质量数据更有效——暗示偏好信号的引入时机比数量更重要
  3. Prefix-Guided 方法本身的成功说明,模型已经隐含了区分好坏的能力,只是缺少显式的训练信号

核心假设

如果在中训练阶段就暴露”同一问题的好/差两种推理路径”,模型在 next-token prediction 时会自然学到:

  • 在”好推理”语境中,下一个 token 的概率分布偏向严谨、完整
  • 在”差推理”语境中,下一个 token 的概率分布偏向跳步、模糊

这相当于在中训练阶段隐式注入偏好信号,而不需要等到 DPO。

方法论

核心思路:前缀质量梯度 × 中训练语料格式

高质量前缀(详细的问题分析 + 清晰的计划)
    → 模型续写 → 通常产出高质量推理链
    → 标记为 [EXEMPLARY]

低质量前缀(简略的问题重述 + 无计划)
    → 模型续写 → 通常产出低质量推理链
    → 标记为 [SUBOPTIMAL]

两者打包成一条中训练语料:

数据构建 Pipeline

Step 1:问题收集

从以下来源收集需要多步推理的问题:

  • MATH/GSM8K 类数学题
  • MMLU-Pro 中的专业推理题
  • 代码 debug 题(给定错误代码和错误信息)
  • 科学实验设计题

Step 2:前缀梯度生成

对每个问题,构建 4 级前缀:

P4(最佳前缀):

问题:证明 √2 是无理数。

分析:这是一道经典的反证法证明题。
核心策略:假设 √2 = p/q(最简分数形式),
推导出 p 和 q 都是偶数,与最简分数矛盾。
关键步骤:(1) 设立假设 (2) 平方两边 (3) 推出 p 是偶数 
(4) 代入推出 q 也是偶数 (5) 矛盾

证明:

P3(良好前缀):

问题:证明 √2 是无理数。

思路:用反证法,假设 √2 是有理数然后推出矛盾。

证明:

P2(一般前缀):

问题:证明 √2 是无理数。

证明:

P1(最差前缀):

证明 √2 是无理数。

Step 3:续写生成 + 质量验证

用目标模型(当前训练中的模型)在 4 个前缀下分别续写,然后:

  • 数学题:用 sympy/Lean 验证最终答案的正确性
  • 代码题:执行验证
  • 推理题:用更强模型做 judge

通常 P4 前缀的续写正确率 >> P1,这种统计性差异就是信号来源。

Step 4:打包为中训练语料

## 推理质量对比:√2 无理数证明

### 严谨推理路径
[标记:此为规范推理示例]

问题:证明 √2 是无理数。

这道题的标准方法是反证法。假设 √2 是有理数...
[P4 前缀引导的高质量续写]

### 有缺陷的推理路径
[标记:此推理包含跳步或错误]

证明 √2 是无理数:
因为 √2 = 1.414...,是无限不循环小数,
所以它是无理数。
[P1 前缀引导的低质量续写]

### 差异分析
严谨路径使用了反证法的完整结构,每一步都有推导依据。
有缺陷的路径直接从数值表示跳到结论,没有给出为什么
无限不循环小数就一定是无理数的推导(实际上这恰恰是
需要证明的命题本身)。

关键创新点

差异分析段落是最有价值的部分——它用自然语言解释了”好”和”差”的具体区别,让模型在 next-token prediction 时不只是学会”生成好的”,还学会”解释为什么好”。

这相当于把 DPO 的隐式偏好信号变成了显式的分析性文本,嵌入中训练语料。

规模估算

问题来源问题数× 4 级前缀× 打包Token
数学推理20,00080,000 续写20,000 条8000 万
代码调试10,00040,000 续写10,000 条6000 万
科学推理8,00032,000 续写8,000 条4800 万
逻辑推理5,00020,000 续写5,000 条2000 万
总计43,000 题172,000 续写43,000 条~2 亿 token

落地路径

  1. Week 1:在 MATH 的 500 道题上验证”前缀质量 → 续写质量”的相关性
  2. Week 2:构建 4 级前缀自动生成器(不同问题类型的模板)
  3. Week 3-4:批量续写 + 质量验证 pipeline
  4. Week 5-6:打包为中训练语料 + 差异分析生成
  5. Week 7-8:消融实验——中训练注入偏好对比信号 vs. 仅注入高质量数据 vs. 传统 DPO

与已有方案的关系

与形式化验证 CoT proposal 互补:

  • 形式化验证 = 硬过滤(删掉错的,留下对的)
  • 本方案 = 软对比(好坏放在一起,让模型学会区分)
  • 两者可以串联:先用形式化验证过滤掉完全错误的,再用前缀引导构建”好 vs. 不够好”的细粒度对比