小模型生成的拒绝样本更好用:0.5B 给 72B 当老师,分数反升

Smaller Models, Better Rejects: Preference Distillation Scaling

Rui Cai, Wenhui Zhu, Xiwen Chen, Jincheng Cao, Han Yu, Shayan Mohajer Hamidi, Zelin He, Qiyao Ma, Daiwei Chen, Xuanzhao Dong, Yuanda Xu, Jelena Markovic-Voronov, Kayhan Behdin, Zhengze Zhou, Ran He, Alborz Geramifard, Rohit Jain, Zhe Zhao

cs.LG

2026-09-30

偏好蒸馏里让学生自己生成 rejected 样本是惯例,这篇发现用更小的冻结模型生成 reject 反而更强:7B–72B 学生全部提升,推理算力最低降到原来的 0.9%。

这篇在解决什么

偏好蒸馏(preference distillation)是黑盒蒸馏的常见做法:大模型输出当 chosen,学生自己的输出当 rejected,再跑一遍 DPO。这个惯例背后有两个没被检验过的假设。一是「学生自己的失败最有教学价值」,二是 reject 必须由不小于学生的模型生成。

第二个假设直接带来成本问题:学生从 7B 涨到 72B,生成 reject 就得反复采样一个 72B 模型,推理开销跟着学生一起涨。第一个假设也有隐患:学生先经过 SeqKD(在 teacher 输出上做序列级蒸馏),它自己产出的错误答案往往是「near miss」,在 DPO 参考分布下概率已经很高,DPO 能利用的对比度反而变小了。

LinkedIn 的团队把这两个假设都推翻了:更小的冻结模型生成的 reject,又便宜又更好。

方法

实验框架沿用 SODA 的两阶段流水线:Qwen2.5 学生先在 GPT-4o 验证过的代码答案(75,752 条)或 DeepSeek-R1 数学轨迹上做 SeqKD,再在不相交的 24,248 条 prompt 上做 DPO。每个 student 规模内,prompt、chosen、初始化、目标函数、训练预算全部对齐,唯一变量是 reject 从哪来。每个 reject 都经过验证确认是错的(至少挂一个单元测试)。

「smaller Base source」指参数量严格小于学生的冻结 vanilla 模型,比如给 14B 学生用 0.5B/1.5B/3B/7B 生成 reject。对照是 vanilla Self(同规模原始模型)和 post-SeqKD Self(初始化 DPO 的那个参考策略)。

为了解释现象,论文把「reject 构造」变成一个逆向设计问题:给定学生,该喂什么分布的 reject?在一个线性化的 DPO 特征模型里(取初始化点的 score gradient 当固定特征,类似 NTK 视角),每个 reject 源用两个坐标描述——transfer mass(能推动更新多少)和 adverse share(推错方向的占比),两者合成 net transfer。有限步数的界表明,只要 adverse share 小、transfer mass 大,这个源就能提升任务表现。从这个刻画推出三个可操作的手筋:

结果

主结果很干净:7B 到 72B 全部 18 个 smaller Base 配置,在代码生成上同时超过两种 Self 构造,数学推理同样成立。成本同时下降:

配置指标结果
14B 学生 + Qwen2.5-3B rejectKoDCode avg@4(vs vanilla Self)+3.1 点
14B 学生 + Qwen2.5-3B rejectMATH-500 avg@4(vs vanilla Self)+1.9 点
72B 学生 + 0.5B reject生成总算力(vs 同规模 Self)0.9%,降 108.3×
72B 学生 + 0.5B reject生成总算力(vs 同规模 Self)2.0%–50.1% 区间的下界

三个干预实验逐一验证了机制判断。混合实验里,Llama-1B reject 占比从 0% 拉到 100%,14B 学生 avg@4 从 59.73% 单调涨到 63.28%,不存在「适量即可」的最优点。把 reject 换成等长乱码,效果基本等于继续 SFT,说明光有「压低某个序列」这个动作没用;真实 reject 换到别的 prompt 仍然显著超过乱码;把代码 token 顺序打乱、只留词表,也还能超过乱码,在四个规模上恢复真实增益的 40%–92.5%。参考似然这条线证据最强:每个学生规模上,来源的参考似然与下游 avg@4 呈负相关(7B 学生 Pearson r=-0.97);固定候选池做重选,向低似然方向「排斥」在全部五个来源上都赢了向高似然「吸引」,1.5B 来源上 63.14% 对 61.88%。

跨家族也成立:Llama 系 reject 给 Qwen 学生用,9 组代码配置全部赢过 Self,数学 9 组赢 8 组。

为什么重要

对做蒸馏的团队,这是一条能直接抄的配置:reject 不用从学生自己采样,拿个 0.5B–3B 的小模型生成错误答案就行,推理预算砍一到两个数量级,效果还更好。结论覆盖 7B–72B 四个规模、两个任务家族、两个模型家族,不是单点幸运。

机制层面的设计原则也有迁移价值:有用的 reject 要同时满足两件事,保留任务相关的结构、和参考策略保持低耦合。这与「on-policy 越强越好」的直觉相反,给负样本构造提供了可操作的筛选标准——按参考似然挑低不挑高,这个规则不依赖模型规模,任何来源都能用。

要说清楚,这是渐进式的效率改进加上一个机制发现,不是新方法落地。增益绝对值在 1–3.5 个点,量级不算惊人,但几乎白拿。

局限与存疑

论文自己承认的:理论部分建立在线性化特征模型上,固定特征的假设只在初始化附近成立,超出这个区域的近似质量取决于高阶项;优化层面的诊断(reject field、reward margin、RC-DPO)都恢复不出 smaller Base 优于 Self 的排序,说明现有 DPO 诊断工具解释不了这个现象。任务边界也窄:只有可验证的代码和数学,没有对齐、开放对话这类无 verifier 的场景,reject 的「验证错误」这一步在那些任务上没法做。

读下来还有几处存疑。所有学生都是 Qwen2.5-Instruct 系,teacher 是 GPT-4o 和 DeepSeek-R1,小模型优势是否依赖这两个家族没检验。增益在 72B 学生上明显收窄(0.5B 到 32B 各来源挤在 66.7%–67.5% 一带),规模再往上走优势是否还在,数据不支持外推。lexical permutation 打乱 token 顺序后仍保留 40%–92.5% 的增益,这个结果本身就有点反直觉,论文用「词表层面的任务结构」解释,但为什么无序 token 集合还能携带纠正信号,机制上没讲透。外部 benchmark 上 DPO 相对 Continued-SFT 的提升普遍小于域内 KoDCode,域内域外的差距没有展开分析。

术语

原文与代码

相关论文

全部论文解读