无需强化学习,苹果团队“简单自蒸馏”,实现Coding模型自进化
当前,AI 大模型代码能力的提升受到多重因素制约,高质量人工数据稀缺、教师模型能力存在上限,强化学习(RL)方法也面临流程复杂和稳定性不足的问题。
日前,苹果团队近期提出了一种名为“简单自蒸馏”(Simple Self-Distillation,SSD)的方法。该方法以特定温度和截断配置从模型自身采样解决方案,直接使用这些未经验证的样本进行标准监督微调(SFT)。
实验表明,该方法在 Qwen 和 Llama 系列的多个模型上均取得了稳定的提升效果。在 LiveCodeBench v6 基准上,Qwen3-30B-Instruct 模型的 pass@1 指标从 42.4% 提升至 55.3%,其中困难问题的提升尤为显著。SSD 为提升 LLM 代码生成能力提供了一个互补的后训练方向。
论文链接:https://arxiv.org/abs/2604.01193
无需RL的「简单自蒸馏」
什么是SSD?
SSD 的实施流程包含三个步骤。首先是数据合成,研究者从基础模型中以较高的温度和特定的截断配置采样生成代码解决方案,每个问题仅采样一个解;然后是训练阶段,直接使用这些未经验证的原始输出作为目标,进行标准的监督微调;训练完成后,使用经过微调的模型,并在特定的解码参数配置下进行评估测试。
该方法具有显著的特殊性。整个过程完全不依赖代码执行环境或测试用例来验证答案正确性。同时,它不需要引入更强的教师模型,也不涉及复杂的强化学习算法。数据合成阶段不需要过滤掉错误的解,模型生成的所有原始输出都会直接用于训练。
图 | SSD 极其简单,但在涵盖两个系列、三种规模的五个模型中,无论是指令还是思考变体,都能在 LiveCodeBench v6 中带来显著的提升。基础模型的 SSD 样本在训练阶段采用解码温度 Ttrain 进行解码,基于原始输出数据进行微调,评估阶段使用 Teval 进行解码;该模型未采用强化学习、验证器、教师模型或代码执行环境。
实验结果
基于SSD,在 LiveCodeBench v6 基准上,Qwen3‑30B‑Instruct 模型经过 SSD 训练后,pass@1 从 42.4% 提升至 55.3%,相对提升幅度达到 30.4%。在更大的 LCB v5 基准上,该模型的 pass@1 也从 45.8% 提升至 54.3%,增加了 8.5 个百分点。
图 | LiveCodeBench v6 在 Qwen3-4B-Instruct 和 Qwen3-30B-Instruct 模型上的整体难度、中等难度及高难度测试集表现(橙色表示4B数据集,蓝色表示30B数据集;斜线表示基准测试,实线表示+SSD数据集)。
底部注释清晰呈现了整体趋势:所有五个评估模型均取得进步,其中 Qwen3-30B-Instruct 的相对通过率提升幅度达 30%,且最大提升出现在高难度测试任务中。
这种提升具有普遍性。该方法不仅在 Qwen 系列模型上有效,在 Llama 系列模型上也表现良好。实验覆盖了 4B、8B 和 30B 等多种不同规模的模型。无论是 Instruct 版本还是 Thinking版本,应用 SSD 后都能获得性能的提升。
研究还发现了一些关键规律,性能提升主要集中在中等难度和困难题目上。在困难题目上,Pass@1 指标提升了 15.3 个百分点。值得注意的是,Pass@5 的提升幅度超过了 Pass@1。这表明 SSD 并没有让模型单一化,反而增强了模型的探索能力。
图 | SSD 在 LiveCodeBench 上提升了所有被评估模型的性能,其中在中等难度和高难度问题上提升幅度最大。结果展示 LCB v6 和 LCB v5 数据集的表现,按难度分级并按推理风格(思考型与指令型)分组。
在每个模型对中,第一行是基础模型,第二行是加上 SSD 后的模型;单元格的阴影颜色表示相对于基础行的变化(绿色表示改进,红色表示下降)。
如此简单的方法为何有效?
研究指出,SSD 的有效性源于它能够重塑模型的内部概率分布,从而解决了代码生成中精度与探索需求之间的冲突。
代码生成过程中存在两类特定位置。第一种是锁(lock),分布呈现尖锐峰态,其中极少数 token 携带大部分质量,而较长的干扰尾部则承载其余部分,需要精确性。第二种是叉(fork),分布跨越多个合理 token 的位置,可能导致下游延续产生显著差异,需要探索性。
固定的全局解码温度难以同时满足这两者的要求。低温设置能确保 lock 的精确,但会限制 fork 的多样性。高温设置虽然能促进 fork 的探索,却会破坏 lock 的稳定性。
图 | 两种情境类型在低 Teval 与高 Teval 条件下的 token 分布情况,其中头尾质量分布特征被明确呈现。
低 Teval 条件能保持 lock 的精确性,但会削弱 fork 的有效头部(探索能力不足);高 Teval 条件虽能恢复 fork 的探索能力,却会重新激活 lock 的干扰尾部(精度降低)。
SSD 通过高温采样结合截断操作,重塑了模型内部的概率分布。该方法抑制了lock 低概率的干扰项,保留了 fork 多种合理的可能性。这使得模型在推理阶段能够采用更高的温度进行探索,同时不破坏 lock 的稳定性。
图 | SSD 将 forks 转变为平台状态,将 locks 转变为尖峰状态。斜线条形图与虚线曲线表示基础模型;实心条形图与实线曲线表示经过 SSD 优化后的模型;红色虚线截断线标记了 SSD 过程中保留的支持度。(a) 叉状态:扩散尾部被修剪,但多个顶端延续结构仍保留且权重分布更趋均衡,在可行分支上方形成宽阔平台期。(b) 锁状态:相同规则对尾部进行更激进的修剪,将质量集中于主导 token,形成更尖锐的尖峰形态。
研究人员通过一项极端实验验证了这一机制。他们将训练温度设定为 2.0 且不进行截断,导致生成的数据中有 62% 无法提取有效代码。即便在这种训练数据质量极低的情况下,SSD 依然提升了模型性能,Pass@1 指标提升了 5.7%。这一结果证明,SSD 的有效性并非依赖于生成代码的正确性,而是源于对概率分布的重塑。
图 | (a) 当训练集比例 Ttrain=2.0 且未进行数据截断时,代表性样本会退化为无意义序列;约 62% 的输出结果无法提取有效代码。(b) 经过微调的模型仍优于基础模型的 42.4%/53.5% pass@1/pass@5 指标,分别达到 48.1% 和 64.0%。
启示
研究证实,模型可以通过仅在其自身的原始输出上进行训练来实现代码生成能力的改进。在五个不同的模型上,SSD 均一致地提升了在 LiveCodeBench 上的表现,且收益主要集中在难度较高的问题上。
代码生成结合了“精度受限锁”(precision-bound locks)和“探索受限叉”(exploration-bound forks)。SSD 通过重塑 token 分布,使得解码过程能够探索有用的分支,同时避免了引入干扰噪声。这些发现表明,现有的强大代码模型内部潜藏着尚未被利用的能力,这种能力可以通过简单的方法“解锁”,而无需依赖验证器、教师模型或强化学习。
本文来自微信公众号 “学术头条”(ID:SciTouTiao),作者:学术头条,36氪经授权发布。















