令人惊讶的简单自蒸馏方法提升代码生成能力
苹果研究人员提出简单自蒸馏(SSD)方法,仅利用模型自身的输出进行微调,无需验证器、教师模型或强化学习,显著提升了代码生成性能,在LiveCodeBench v6上将Qwen3-30B-Instruct的pass@1从42.4%提高到55.3%。
苹果机器学习研究团队近日发表了一项题为《Embarrassingly Simple Self-Distillation Improves Code Generation》的研究,提出了一种极其简单的自蒸馏方法(SSD),只需利用大语言模型自身的原始输出即可提升代码生成能力,无需验证器、教师模型或强化学习。该方法的核心步骤非常简洁:首先在特定的温度参数和截断配置下从模型中采样出多个候选解决方案,然后使用标准的监督微调(supervised fine-tuning)对这些采样结果进行训练。实验结果显示,SSD将Qwen3-30B-Instruct模型在LiveCodeBench v6基准测试上的pass@1准确率从42.4%大幅提升至55.3%,提升幅度达到13个百分点,并且改善主要集中在难度较高的问题上。更重要的是,该方法在Qwen和Llama系列的不同规模模型(4B、8B、30B)上均表现出一致的泛化能力,涵盖指令微调(instruct)和思考型(thinking)变体。
为了解释这一简单方法为何有效,研究人员将其归因于大语言模型解码过程中的“精度-探索冲突”(precision-exploration conflict)。具体而言,模型在生成代码时,需要在精确性(避免错误)和探索性(尝试新思路)之间取得平衡。SSD通过上下文相关的方式重新塑造了token的概率分布:在需要精度的场景下,它抑制了那些干扰性的长尾分布;而在需要探索的场景下,它保留了有益的输出多样性。这一发现为改进大语言模型的代码生成能力提供了一种全新的后训练方向,与现有的基于验证器或强化学习的方法形成互补。
此外,该研究页面还提到了两项相关的工作。其一是《BISCUIT: Scaffolding LLM-Generated Code with Ephemeral UIs in Computational Notebooks》,该论文被IEEE VL/HCC 2024会议接收,旨在帮助程序员在计算笔记本中理解和处理由大语言模型生成的代码。其二是《Applying RLAIF for Code Generation with API-usage in Lightweight LLMs》,该论文被ACL 2024研讨会接收,探索了利用AI反馈强化学习(RLAIF)来提升轻量级大语言模型(参数量小于10亿)的代码生成能力。这两项研究从不同角度补充了SSD方法的应用场景。