Embarrassingly Simple Self-Distillation Improves Code Generation

📄 arXiv: 2604.01193v1 📥 PDF

作者: Ruixiang Zhang, Richard He Bai, Huangjie Zheng, Navdeep Jaitly, Ronan Collobert, Yizhe Zhang

分类: cs.CL

发布日期: 2026-04-01


💡 一句话要点

提出简单自蒸馏方法SSD,无需外部资源提升代码生成能力

🎯 匹配领域: 支柱二:RL算法与架构 (RL & Architecture) 支柱九:具身大模型 (Embodied Foundation Models)

关键词: 代码生成 自蒸馏 大型语言模型 监督微调 模型优化

📋 核心要点

  1. 现有代码生成模型依赖验证器、教师模型或强化学习,训练成本高昂且复杂。
  2. 论文提出简单自蒸馏(SSD)方法,仅利用模型自身输出进行微调,无需额外资源。
  3. 实验表明,SSD显著提升了Qwen和Llama等模型在代码生成任务上的性能,尤其在难题上。

📝 摘要(中文)

本文提出了一种简单自蒸馏(SSD)方法,旨在仅使用大型语言模型(LLM)自身的原始输出,无需验证器、教师模型或强化学习,来提升代码生成能力。该方法通过以特定温度和截断配置从模型中采样解决方案,然后使用标准监督微调在这些样本上进行微调。SSD将Qwen3-30B-Instruct在LiveCodeBench v6上的pass@1指标从42.4%提高到55.3%,尤其在较难的问题上提升显著。该方法在Qwen和Llama模型的4B、8B和30B规模上均表现出泛化性,包括指令和思维变体。研究表明,这种提升源于LLM解码中的精度-探索冲突,SSD以一种上下文相关的方式重塑token分布,抑制了精度重要时的干扰尾部,同时保留了探索重要时的有用多样性。SSD为改进LLM代码生成提供了一个互补的后训练方向。

🔬 方法详解

问题定义:论文旨在解决大型语言模型在代码生成任务中,如何仅利用自身输出,在无需验证器、教师模型或强化学习的情况下,提升性能的问题。现有方法通常依赖外部资源,例如验证器来评估生成的代码,或者使用教师模型进行知识蒸馏,或者使用强化学习进行优化,这些方法增加了训练的复杂性和成本。

核心思路:核心思路是利用模型自身生成的代码样本作为训练数据,通过监督微调来提升模型的能力。这种自蒸馏的方法避免了对外部资源的依赖,降低了训练成本。通过调整采样策略(温度和截断),可以控制生成样本的多样性和质量,从而影响微调的效果。

技术框架:整体流程包括两个主要阶段:首先,使用原始模型以特定的温度和截断参数生成大量的代码样本。然后,使用这些生成的代码样本作为训练数据,对原始模型进行监督微调。微调过程使用标准的交叉熵损失函数,优化模型参数,使其更好地拟合生成的代码样本。

关键创新:关键创新在于提出了一种极其简单的自蒸馏方法,仅依赖模型自身的输出即可实现性能提升。论文还深入分析了这种方法有效的原因,发现它能够解决LLM解码中的精度-探索冲突,通过上下文相关的token分布调整,在需要精度时抑制干扰,在需要探索时保留多样性。

关键设计:关键设计包括采样策略(温度和截断参数)的选择,以及微调过程中的学习率、batch size等超参数的设置。论文通过实验分析了不同采样策略对性能的影响,并给出了推荐的参数设置。此外,论文还使用了标准的交叉熵损失函数进行微调,并采用了常见的优化算法(如AdamW)。

🖼️ 关键图片

fig_0
fig_1
fig_2

📊 实验亮点

实验结果表明,SSD方法在LiveCodeBench v6数据集上显著提升了Qwen3-30B-Instruct模型的性能,pass@1指标从42.4%提高到55.3%。此外,该方法在不同规模(4B、8B、30B)的Qwen和Llama模型上均表现出良好的泛化性,证明了其有效性和通用性。尤其值得注意的是,SSD在难度较高的问题上提升更为明显。

🎯 应用场景

该研究成果可广泛应用于代码生成领域,例如智能编程助手、自动化代码生成工具等。通过简单自蒸馏,可以有效提升现有代码生成模型的性能,降低开发成本,并促进更智能化的软件开发流程。该方法也为其他自然语言生成任务提供了新的思路。

📄 摘要(原文)

Can a large language model (LLM) improve at code generation using only its own raw outputs, without a verifier, a teacher model, or reinforcement learning? We answer in the affirmative with simple self-distillation (SSD): sample solutions from the model with certain temperature and truncation configurations, then fine-tune on those samples with standard supervised fine-tuning. SSD improves Qwen3-30B-Instruct from 42.4% to 55.3% pass@1 on LiveCodeBench v6, with gains concentrating on harder problems, and it generalizes across Qwen and Llama models at 4B, 8B, and 30B scale, including both instruct and thinking variants. To understand why such a simple method can work, we trace these gains to a precision-exploration conflict in LLM decoding and show that SSD reshapes token distributions in a context-dependent way, suppressing distractor tails where precision matters while preserving useful diversity where exploration matters. Taken together, SSD offers a complementary post-training direction for improving LLM code generation.