← 返回 PaperDaily
视觉与图像
Apple Research新方法:不用教师也能提升代码模型
这篇论文最狠的地方,不是把代码模型调高了几个点,而是它几乎没加任何“外挂”:不要验证器,不要教师模型,不要强化学习,只靠模型自己的原始输出就能涨分。更有意思的是,提升还主要落在更难题上,说明它不是在“刷题套路”,而是在改模型分布本身。
龙哥读论文
发布于 2026-08-14 09:11:16
阅读 3
查看原文
🐉 龙哥读论文知识星球来了! 公众号每日8篇拆解不够看?星球 无上限更AI领域论文、资讯、招聘、招博、开源代码, 一站式干货,每日2分钟刷完即赚! 👇扫码加入「龙哥读论文」知识星球,前沿干货、实用资源一站式拿捏~
龙哥推荐理由: 这篇论文最狠的地方,不是把代码模型调高了几个点,而是它几乎没加任何“外挂”:不要验证器,不要教师模型,不要强化学习,只靠模型自己的原始输出就能涨分。更有意思的是,提升还主要落在更难题上,说明它不是在“刷题套路”,而是在改模型分布本身。
原论文信息如下:
揭秘大模型自提升密码:简单自蒸馏为何有效
这篇 Apple Research 的论文,名字看着像在“谦虚”,内容却一点都不客气:不用验证器,不用教师模型,不用强化学习 ,只拿模型自己的原始输出做再训练,代码生成性能就能往上走一大截。更离谱的是,这不是只在某个模型上碰巧有效,而是跨了 Qwen、Llama、GPT-OSS 三个家族、4B 到 30B 多个规模都能涨。
项目开源页给出的三步法也很直白:采样、微调、解码 。听上去像“把模型自己吐出来的东西再喂回去”,但论文证明,这种看似土办法,确实能把代码模型从“会写”推到“更会写”。
论文主体思路
*表格超出部分左右可以滑动
项目
内容
应用场景 提升大语言模型的代码生成能力,尤其适用于编程助手、代码补全和竞赛编程类任务。
问题建模 给定问题提示词,仅依赖模型自身采样出的原始答案,通过监督微调让模型“向自己学习”。
模型Backbone及选择原因 覆盖 Qwen、Llama、GPT-OSS 的 4B–30B 模型,包含 instruct 与 thinking 版本,便于验证方法的通用性。
损失函数 标准交叉熵损失,也就是常规监督微调,不引入额外奖励项。
训练数据集 来自 rSTARcoder seed 子集,去重后约 1 万道竞赛编程题;每题采样 1 个答案即可。
测试数据集 主要是 LiveCodeBench v6,辅以 LiveCodeBench v5 做补充验证。
训练方法 先用训练时温度 Ttrain 和截断策略采样,再用这些样本做 SFT;推理时再单独调 Teval。
实验效果 整体提升明显,尤其在难题上更突出;Qwen3-30B-Instruct 的 pass@1 从 42.4% 提升到 55.3%。
方法优势 不依赖教师、验证器和强化学习,工程链路短,数据管道简单,能直接复用现有模型。
方法缺点 仍然依赖采样温度与截断配置,且收益主要在代码任务上验证,跨领域边界还需进一步确认。
这套方法的核心,不是“找更强老师”,而是把模型自己的输出重新整理一遍 。训练时先让模型按较高或经过截断的温度去采样,再把这些样本当成监督信号做交叉熵微调。听起来像把家里旧衣服洗洗熨熨再穿一遍,但论文的结果说明:有些“旧衣服”本来就比想象中更值钱。
项目演示图把这个过程画得很清楚。模型先在训练时采样,后面再用不同的解码温度推理。关键点是:训练温度和推理温度不是一回事 ,前者负责“喂什么样的数据”,后者负责“怎么把学到的东西吐出来”。
核心设计
SSD 的流程其实很像“先让模型自己出题,再让它自己补课”。具体做法分三步:第一步冻结基础模型,用训练时的温度 Ttrain 和截断策略采样;第二步把采到的原始代码答案直接拿来做监督微调;第三步在推理时再用单独的 Teval 解码。这里的截断策略对应 top-k 和 top-p,论文里把它记作 ρ 。
从工程角度看,这个设计极其克制。数据生成只有一个样本 N=1 也能跑,训练阶段就是标准 SFT,没有额外的 reward hacking 风险,也没有复杂的 on-policy 采样回路。对产品团队来说,这意味着它不是“研究员专属魔法”,而是能被放进现有训练管线里的普通工具。
更关键的是,SSD 不是简单地“把温度调高就完事”。论文后面会证明,训练时温度和推理时温度会形成一种有效温度 Teff=Ttrain×Teval 的耦合关系。也就是说,训练阶段改了分布,推理阶段再利用这个分布,二者是配合关系,不是独立按钮。
为什么不能只靠调解码参数?深入解析“精度-探索”冲突
论文给出的解释很像现实里的一道老难题:既要稳,又要会试错 。在代码生成里,这个矛盾尤其明显。某些位置只能选一个几乎唯一正确的 token,这叫 lock;另一些位置则有多个都可能通向正确答案的分支,这叫 fork。前者需要精度,后者需要探索。
这就是为什么只调解码参数,收益很有限。论文在基座模型上做了大范围温度扫描,结果曲线很平,说明单纯靠解码,最多是在原地挪一小步。原因也不复杂:温度调节改的是“怎么抽样”,但没改“模型内部到底偏向什么”。SSD 的作用更像是先把模型分布本身掰一掰,再让解码去发挥。
令人惊讶的发现:在“垃圾”数据上训练也能提升模型?
这部分最容易让人皱眉:如果采样温度很高,模型吐出来的东西可能已经开始“发散”,那拿这种数据训练,岂不是在喂噪声?论文还真专门做了一个高温测试。结果很有戏剧性:在 Ttrain=2.0 且不截断时,样本里有不少内容已经接近胡言乱语,但微调后的模型依然能涨分。
当然,这里不能把“垃圾数据也能涨分”理解成玄学。更准确地说,高温采样会放大探索 ,而后续微调会把其中有价值的结构重新压回模型里。只要没把分布彻底搞烂,模型还是能从这些样本中学到一些“更好的偏好”。这就像一个人做题时把草稿写得乱七八糟,但最后老师还是能从乱草稿里看出思路对不对。
SSD的理论基础:支持压缩与头部重塑
论文给 SSD 的理论解释,核心可以拆成两个词:支持压缩 和 头部重塑 。支持压缩,意思是训练时只保留采样后还能留下来的 token 集合,把低概率尾巴尽量踢出去;头部重塑,则是在这些保留下来的 token 里重新分配概率,让真正有用的候选更均衡、更可探索。
论文还用理论分解说明了一个很关键的点:SSD 不是单纯模仿原模型,而是同时在做两件事——一边压缩无效尾部,一边在保留下来的 support 上重塑头部形状。于是,模型整体会更“干净”,但并不等于更死板;相反,它给推理阶段留下了更合理的探索空间。
六步提升代码模型:SSD的全面实验与结论启示
实验设计也挺讲究。数据来自约一万道去重后的竞赛编程题,每题只采一个样本,训练用的是标准 SFT,评测则主要看 LiveCodeBench v6,并用 v5 做补充确认。也就是说,这不是靠“多采几次碰运气”,而是在很克制的条件下依然拿到了稳定收益。
更有意思的是,SSD 的收益并不只是体现在 pass@1。很多模型在 pass@5 上涨得更明显,说明它并没有把输出空间压扁,反而让多个候选解都更靠谱了。这对代码任务很重要,因为代码不是背答案,很多时候是一道题有多条可行路径,能不能把“可行路径池”保住,比死盯着单一路径更重要。
从结论上看,这项工作最值得记住的不是“它很强”,而是它证明了模型自身输出也能成为有效训练信号 。这对工程实践的意义很直接:当高质量标注贵、验证器难、RL 不稳定时,SSD 提供了一条成本更低、链路更短的后训练路径。代价也同样明确:它依赖一个还算靠谱的基础模型,且目前最强证据集中在代码生成场景。
总结与未来展望
SSD 的价值,简单说就是把“自我学习”从口号变成了可操作的工程流程。它不是万能药,但它足够便宜、足够简单、足够可复现,尤其适合那些已经有不错基础模型、又想继续榨出代码能力的团队。未来如果要继续往前走,比较值得看的方向有两个:一是把这种自蒸馏机制推广到更多结构化任务,二是进一步研究不同任务里 fork 和 lock 的比例,看看 SSD 能不能从“代码好使”变成“更广泛地好使”。
龙迷三问
这篇论文到底解决了什么问题? 它解决的是“代码模型还能不能靠自己继续变强”这个问题。答案是能,而且不靠老师、不靠验证器、不靠 RL,只靠模型自己的原始输出就能带来稳定提升。
文中的 fork 和 lock 是什么意思? fork 指的是有多个合理后续分支的位置,需要探索;lock 指的是几乎只有一个正确 token 的位置,需要精度。SSD 的核心,就是让这两类位置各得其所,而不是拿一个温度硬管全场。
“坏数据也能训练出好模型”是不是说明数据质量不重要? 不是。更准确地说,是只要基础模型足够强,采样里仍然保留了可学习结构,SSD 就能把这些结构重新吸收回来。但这不等于可以随便喂垃圾,太烂的样本还是会把训练带沟里。
如果你还有哪些想要了解的,欢迎在评论区留言或者讨论~
龙哥点评
论文创新性分数: ★★★☆☆ 不是提出了一个复杂新框架,而是把“模型自蒸馏”这件事做到了极简且有效,创新点在于机制解释和工程可用性。
实验合理度: ★★★★☆ 覆盖多个模型家族和两个版本的 LiveCodeBench,且有解码扫描和高温压力测试,验证链条比较完整。
学术研究价值: ★★★★☆ 它把“自我生成数据也能提升模型”这件事讲清楚了,尤其对后训练、分布重塑和解码机制研究都有启发。
稳定性: ★★★☆☆ 结果不错,但仍依赖采样温度、截断和基础模型质量;离“拿来就能无脑部署”还有一步。
适应性以及泛化能力: ★★★☆☆ 跨模型家族泛化不错,但目前主要证据仍集中在代码生成,跨到数学、通用推理还需要更多验证。
硬件需求及成本: ★★★★☆ 训练仍然要跑大模型微调,但没有 RL 和 verifier 的额外开销,整体比复杂后训练路线省事得多。
复现难度: ★★★★☆ 项目已开源,数据生成和评估管线也给得比较完整,复现门槛不算高。
产品化成熟度: ★★★☆☆ 适合做代码模型后训练的一个模块,但还需要结合具体业务做安全性、稳定性和收益评估。
可能的问题: 方法很巧,但并不神秘;它的上限仍受基础模型和采样质量约束,跨任务有效性也还没完全证明。
主要参考文献
Ruixiang Zhang, Richard He Bai, Huangjie Zheng, Navdeep Jaitly, Ronan Collobert, Yizhe Zhang. Embarrassingly Simple Self-Distillation Improves Code Generation. arXiv:2604.01193, 2026.
Apple 开源项目:ml-ssd(https://github.com/apple/ml-ssd)
*本文仅代表个人理解及观点,不构成任何论文审核或者项目落地推荐意见,具体以相关组织评审结果为准。欢迎就论文内容交流探讨,理性发言哦~ 想了解更多原文细节的小伙伴,可以点击 "阅读原文", 查看更多原论文细节哦!
欢迎加入龙哥读论文粉丝群,
扫描下方二维码或者添加龙哥助手微信号加群 :kangjinlonghelper。
一定要备注:研究方向+地点+学校/公司+昵称(如 图像处理+上海+清华+龙哥) ,根据格式备注,可更快被通过且邀请进群。
『龙哥读论文』微信群目前包含:图像处理、大模型及智能体、自动驾驶及机器人、AI医疗及AI金融5个群