令人驚訝的簡單自蒸餾方法提升代碼生成能力
蘋果研究人員提出簡單自蒸餾(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方法的應用場景。