生成效率也有提升
CodeDPO:一種新型代碼生成優化框架
北大李戈教授團隊與字節跳動合作,提出了一種新型代碼生成優化框架——CodeDPO,旨在解決現有監督微調(SFT)方法在代碼生成過程中的局限性。該框架通過引入偏好學習,極大提升了代碼生成的準確性和執行效率。
1. 背景與問題
盡管SFT方法提高了代碼生成的質量,但它未能有效訓練模型在正確與錯誤解決方案之間做出偏好選擇,導致生成不理想輸出的概率上升。為了解決這一問題,CodeDPO將偏好學習融入代碼模型訓練中,通過自驗證機制提升模型的生成能力。
2. CodeDPO的關鍵步驟
CodeDPO的訓練過程包含四個關鍵步驟:
- 數據種子構建:收集開源代碼庫中的數據種子,生成編程任務提示。
- 正確性優化與自驗證評分:生成代碼與測試,通過自驗證機制評估并優化代碼的正確性。
- 執行時間效率優化:在可信測試集上測量執行時間,構建效率優化數據集。
- 模型偏好訓練:使用DPO方法訓練模型,提升其對正確和高效代碼的偏好。
3. 自驗證機制與效率評估
CodeDPO通過自驗證機制從真實代碼庫構建數據集,假設能夠通過更多代碼片段的測試用例更為可靠。每個代碼片段和測試用例首先獲得一個自驗證分數,隨后通過類PageRank算法進行迭代更新,以反映其正確性與效率。
4. 實驗結果與提升效果
研究團隊在HumanEval、MBPP和DS-1000數據集上進行了廣泛的實驗,結果表明CodeDPO在所有模型上均帶來了顯著提升。在DeepSeekCoder-6.7B模型上,配合SFT策略,最終在HumanEval上達到了83.5%的通過率。此外,生成代碼的執行效率也得到了顯著提升,平均加速1.25至1.45倍。
5. 結論與未來展望
CodeDPO框架展示了自生成、驗證機制和偏好學習在代碼生成領域的有效性,為未來更大規模的代碼偏好優化奠定基礎。該框架降低了對優質測試用例的依賴,有望在實際應用中幫助開發團隊生成更優質的代碼,提升軟件的可靠性和交付質量。
聯系作者
文章來源:量子位
作者微信:
作者簡介:追蹤人工智能新趨勢,關注科技行業新突破
? 版權聲明
文章版權歸作者所有,未經允許請勿轉載。
相關文章
暫無評論...