苹果SSD:让编程Agent提升30%的最笨方法
苹果刚发了一篇论文,可能会让所有做RL-for-code的研究者有点尴尬。
方法叫Simple Self-Distillation,简称SSD。做的事极其简单:用一定温度从模型采样代码,然后用这些原始输出去微调同一个模型。没了。没有奖励模型,没有验证器,没有教师模型,没有执行环境,没有任何形式的强化学习。就是模型自己跟自己对话,然后莫名其妙变强了。
数字很硬。Qwen3-30B-Instruct在LiveCodeBench v6上从42.4%涨到55.3% pass@1。相对提升30%,而且这个benchmark是专门测真实编程能力的。提升集中在更难的问题上,正好是你最想改进的地方。在Qwen和Llama的4B、8B、30B规模上都有效,包括instruct和thinking变体。
机制也有意思。代码生成混合了论文所说的precision-bound locks(模型必须精确的地方)和exploration-bound forks(模型需要尝试不同方案的地方)。SSD重塑了token分布,让解码可以探索有用的分支,同时不会重新打开干扰项的尾巴。相当于模型在教自己哪些直觉值得信任。
对编程Agent来说这很重要,因为基础代码生成的每一点改进都会在Agent循环中复合放大。如果你的Agent每次尝试都能生成更好的代码,就需要更少的迭代、更少的工具调用、更少的人工修正。单次代码质量提升30%,可能意味着端到端Agent效率提升2-3倍。
代码开源在 github.com/apple/ml-ssd,论文在 arxiv.org/abs/2604.01193。
← 返回所有文章
方法叫Simple Self-Distillation,简称SSD。做的事极其简单:用一定温度从模型采样代码,然后用这些原始输出去微调同一个模型。没了。没有奖励模型,没有验证器,没有教师模型,没有执行环境,没有任何形式的强化学习。就是模型自己跟自己对话,然后莫名其妙变强了。
数字很硬。Qwen3-30B-Instruct在LiveCodeBench v6上从42.4%涨到55.3% pass@1。相对提升30%,而且这个benchmark是专门测真实编程能力的。提升集中在更难的问题上,正好是你最想改进的地方。在Qwen和Llama的4B、8B、30B规模上都有效,包括instruct和thinking变体。
机制也有意思。代码生成混合了论文所说的precision-bound locks(模型必须精确的地方)和exploration-bound forks(模型需要尝试不同方案的地方)。SSD重塑了token分布,让解码可以探索有用的分支,同时不会重新打开干扰项的尾巴。相当于模型在教自己哪些直觉值得信任。
对编程Agent来说这很重要,因为基础代码生成的每一点改进都会在Agent循环中复合放大。如果你的Agent每次尝试都能生成更好的代码,就需要更少的迭代、更少的工具调用、更少的人工修正。单次代码质量提升30%,可能意味着端到端Agent效率提升2-3倍。
代码开源在 github.com/apple/ml-ssd,论文在 arxiv.org/abs/2604.01193。
评论