字節Seed新方法!開源8B程式碼模型:自己篩數據訓練自己,同量級SoTA,還能超越百億級對手

你是否想過,LLM訓練自己的數據,還能比人類篩選的更有效率?傳統code大模型依賴人工制定規則篩選數據,成本高、效率低,還容易帶偏模型。图片

論文:Seed-Coder: Let the Code Model Curate Data for Itself

鏈接:https://github.com/ByteDance-Seed/Seed-Coder/blob/master/Seed-Coder.pdf

而Seed-Coder團隊直接“讓LLM自己當老師”,用模型篩選數據訓練自己,打造出一系列8B參數的輕量級開源程式碼模型,性能甚至超越百億級對手!图片

Seed-Coder

1. 自給自足的數據工廠傳統模型依賴人工規則過濾程式碼數據,比如“必須包含註解”“不能有語法錯誤”。但程式設計師審美各異,規則容易打架,擴充套件性差。Seed-Coder的解決方案很“暴力”:讓另一個LLM當裁判!團隊訓練了一個“程式碼品質評分器”,用LLM從可讀性、模組化、清晰度、複用性四個維度給程式碼打分,自動過濾低品質數據。图片

2. 小身材大智慧的模型架構Seed-Coder基於Llama 3架構,8.2B參數:

長上下文支持:通過倉庫級程式碼拼接,模型能處理32K超長程式碼檔案,輕鬆應對複雜專案。图片

填空訓練法(FIM):把程式碼隨機拆成前綴、中綴、後綴,讓模型學會“補全中間缺漏”,提升程式碼補全能力。公式如下:<[fim-suffix]> SUFFIX <[fim-prefix]> PREFIX <[fim-middle]> MIDDLE

這種訓練讓模型像玩拼圖一樣學習程式碼邏輯,效果遠超傳統單模式訓練。图片

3. 推理能力的訓練法Seed-Coder的推理模型用長思維鏈強化學習(LongCoT),專攻多步驟複雜編碼問題。簡單說,就是讓模型先寫解題思路,再生成程式碼,並通過反覆試錯最佳化邏輯鏈。比如解演算法題時,模型會先拆分問題:“第一步讀輸入,第二步排序,第三步計算極差……”再一步步寫程式碼。這種“先想後做”的策略,讓它在競賽級題庫中表現驚豔。图片

實際表現

Seed-Coder在多個權威測試中碾壓對手:

程式碼生成:在HumanEval+測試中,8B模型得分77.4,超過70B參數的CodeLlama!图片

程式碼補全:面對跨檔案補全任務,Seed-Coder的編輯相似度(ES)高達85.1%,吊打同規模模型。图片

軟體工程實戰:在GitHub真實問題修復測試(SWE-bench)中,Seed-Coder解決率19.2%,比32B模型QwQ還高!图片

更驚人的是,它甚至能在競賽編程平台Codeforces上達到1553分,接近人類銅獎水平!图片

未來展望:AI程式設計師要搶飯碗了?

儘管Seed-Coder表現亮眼,仍有局限:

通用能力不足:專注程式碼導致常識理解較弱,比如無法回答“如何做番茄炒蛋”。

數學能力短板:訓練數據中數學內容較少,解複雜數學題時容易翻車。

但團隊已規劃未來方向:

融合更多通用語料,打造“全能型”AI程式設計師

探索MoE架構,進一步壓縮模型體積

可以預見,這類輕量高效的程式碼模型將加速滲透開發工具鏈,成為程式設計師24小時在線的“超級助手”已經不遠了~(既感到欣慰,又感到危險有木有!

備註:暱稱-學校/公司-方向/會議(eg.ACL),進入技術/投稿群

图片

id:DLNLPer,記得備註呦

主標籤:程式碼大型語言模型

次標籤:資料篩選AI助理模型效能自我訓練


上一篇:多模態大語言模型基於規則強化微調中的顯式思考研究

下一篇:研究:LLM的預填充功能,反而成為了它的越獄漏洞!

分享短網址