核心概念
提出一種新的代碼排名方法RankEF,通過多任務學習整合代碼分類和執行反饋生成,使模型能夠深入理解錯誤代碼的根本原因,從而更準確地區分正確和錯誤的代碼。
摘要
本文提出了一種新的代碼排名方法RankEF,旨在克服現有基於執行的代碼排名方法和基於非執行的代碼排名方法的局限性。
RankEF的核心思想是將代碼分類任務和執行反饋生成任務結合,通過多任務學習的方式使模型能夠深入理解錯誤代碼的根本原因,從而更準確地區分正確和錯誤的代碼。
具體來說,RankEF在訓練階段利用代碼執行反饋作為監督信號,輔助代碼分類任務。這樣不僅可以讓模型具備基本的分類能力,區分正確和錯誤的代碼,還可以幫助模型深入理解錯誤代碼的原因,提高排名的準確性和有效性。
RankEF在推理階段不需要執行代碼,避免了執行代碼帶來的安全風險和質量測試的困難。同時,RankEF還探索了三種不同的多任務學習策略,包括硬參數共享、軟參數共享和中間微調,以找到最優的方法。
實驗結果表明,RankEF在APPS、MBPP和HumanEval三個代碼生成基準測試集上顯著優於現有的CodeRanker方法,在APPS測試集上分別取得了+30.97%、+31.43%和+19.51%的相對提升。這說明RankEF能夠更好地理解錯誤代碼的根本原因,從而提高代碼排名的準確性。
統計資料
在APPS測試集上,RankEF相比CodeRanker在Pass@1、Pass@2和Pass@5指標上分別取得了+30.97%、+31.43%和+19.51%的相對提升。
在APPS不同難度級別的問題上,隨著難度的增加,RankEF相比CodeRanker的優勢越來越明顯。
引述
"RankEF 採用多任務學習的方式,整合了代碼分類和執行反饋生成任務,使模型能夠深入理解錯誤代碼的根本原因,從而更準確地區分正確和錯誤的代碼。"
"RankEF 在推理階段不需要執行代碼,避免了執行代碼帶來的安全風險和質量測試的困難。"