
來源 | 深度學習自然語言處理
你是否想過,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從可讀性、模組化、清晰度、複用性四個維度給程式碼打分,自動過濾低質量資料。

這種“LLM教LLM”的模式,讓資料篩選效率提升百倍,最終構建了6萬億token的高質量程式碼訓練庫,支援89種程式語言!
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小時線上的“超級助手”已經不遠了~(既感到欣慰,又感到危險有木有!
技術交流群邀請函
△長按新增小助手
掃描二維碼新增小助手微信
請備註:姓名-學校/公司-研究方向
(如:小張-哈工大-對話系統)
即可申請加入自然語言處理/Pytorch等技術交流群
關於我們
MLNLP 社群是由國內外機器學習與自然語言處理學者聯合構建的民間學術社群,目前已經發展為國內外知名的機器學習與自然語言處理社群,旨在促進機器學習,自然語言處理學術界、產業界和廣大愛好者之間的進步。
社群可以為相關從業者的深造、就業及研究等方面提供開放交流平臺。歡迎大家關注和加入我們。

掃描二維碼新增小助手微信
關於我們
