克雷西 明敏 發自 凹非寺
量子位 | 公眾號 QbitAI
字節Seed首次開源代碼模型!
Seed-Coder,8B規模,超越Qwen3,拿下多個SOTA。
它證明“只需極少人工參與,LLM就能自行管理代碼訓練數據”。
通過自身生成和篩選高質量訓練數據,可大幅提升模型代碼生成能力。
這可以被視為對DeepSeek-R1模型自我生成和篩選訓練數據策略的擴展。
一共包含三個版本:
- Base
- Instruct
- Reasoning
其中,Instruct在編程方面表現出色,拿下兩個測試基準SOTA。
推理版本,在IOI 2024上超越了QwQ-32B和DeepSeek-R1。
模型上下文長度32K,使用6T tokens訓練,并采用寬松的MIT開源協議,完整代碼已發布在Hugging Face。
用模型管理訓練數據
Seed-Coder的前身是doubao-coder,采用Llama 3結構,參數量為8.2B,6層,隱藏層大小為4096,采用分組查詢注意力(GQA)機制。
最關鍵的工作是數據的處理,Seed團隊提出了一種“模型中心”的數據處理方式,使用模型來策劃數據。
具體來說,模型會從GitHub和網絡檔案爬取原始代碼數據,經過幾個處理步驟后輸出最終的預訓練數據。
Seed-Coder的過濾數據分為四個類別:
- 文件級代碼:來自GitHub的單個代碼文件,經過處理后保留了高質量的代碼內容。
- 倉庫級代碼:基于倉庫結構的代碼文件,保留了項目結構信息,使模型能學習到代碼間的關系。
- Commit數據:GitHub提交的快照,包括提交信息、倉庫元數據、相關文件和代碼補丁,包括來自14萬個高質量倉庫的7400萬次提交;
- 代碼相關網絡數據:從網絡存檔中提取的包含代碼塊或高度代碼相關的文檔。
先看看代碼的處理,在預處理階段,系統在倉庫和文件兩個層級實施去重,SHA256哈希進行精確去重,并通過MinHash算法進行近似去重。
這種雙層策略產生了兩種變體的代碼語料庫——文件級變體用于短上下文窗口訓練,倉庫級變體保留了項目結構以支持更連貫的長上下文學習。
隨后,系統使用Tree-sitter等語法解析器檢查剩余文件,丟棄那些包含語法錯誤的文件。這個預處理階段總共減少了大約98%的原始數據量。
在質量過濾階段,Seed-Coder使用一個經過22萬+份代碼文檔特殊訓練的評分模型來過濾低質量代碼文件。
評分模型以DeepSeek-V2-Chat為基礎,評價指標包含四個關鍵方面:
- 可讀性:包含合理數量的注釋,遵循一致的命名規范,并遵循通用的格式和結構規范;
- 模塊性:結構合理,避免功能過于復雜或冗長,通過模塊化實現邏輯功能清晰分離;
- 清晰度:減少冗余,(如過多的函數調用、大段注釋代碼或調試打印語句),每個代碼塊的意圖表達清晰;
- 可重用性:沒有語法和邏輯錯誤、避免過多硬編碼數據、設計便于與其他項目集成、功能完整且有意義。
評分模型被要求給出一個從0到10的總體評分,并提供詳細解釋,之后將分數重新縮放到[0,1]范圍,并使用1.3B參數的預訓練Llama 2模型,通過回歸頭進行一個epoch的微調作為質量評分器。
最終基于這種評分方法,Seed團隊過濾掉了得分最低的約10%文件,得到了支持89種編程語言、包含約1萬億個獨特token的語料庫。
再來是Commit的部分,Seed-Coder從14萬個高質量GitHub倉庫中收集了7400萬個提交記錄。這些倉庫的篩選標準包括:至少100顆星、10個fork、100次提交和100天的維護活動。
每個提交記錄都包含豐富的元數據,如提交消息、代碼補丁、合并狀態以及提交前的代碼快照。
為了在預訓練中有效利用這些數據,Seed-Coder將每個提交樣本格式化為一個代碼變更預測任務。給定一個提交消息及其相關上下文,模型需要預測被修改的文件路徑以及相應的代碼變更。
在進行去重和預處理后,Seed-Coder獲得了約1000億token的提交數據語料庫用于預訓練。
對于從網絡獲取的數據,Seed-Coder也提出了一個專門的提取框架。
在預處理階段,框架對大規模網絡檔案進行高效預處理,并識別出兩類原始數據:
- 第一類是HTML中帶有明確代碼標簽(如…)的網頁,這些可以通過標準規則直接提取;
- 第二類是沒有明確代碼標簽但可能包含代碼或相關知識的數據,這類數據由于其體量和復雜性帶來了提取挑戰。
與GitHub數據處理類似,研究團隊實施了精確和近似去重技術,并開發了啟發式規則來在預處理階段剔除明顯的低質量文檔(例如少于10個詞的文檔)。
在質量過濾階段,框架采用兩個互補策略來確保數據質量:首先是識別代碼相關性,然后評估已識別內容的內在質量。
在代碼相關性識別步驟中,研究團隊首先從Common Crawl數據中抽取了1000萬個網頁樣本,將具有代碼特征的頁面標記出來,建立評估數據集。
這個數據集中70%用作訓練集,用于訓練fastText模型來自動識別代碼相關內容,剩余30%作為驗證集來評估模型效果。
在質量評估步驟中,系統使用LLM對已識別的代碼相關內容進行評分,評分標準采用0-10分制,評估內容的規范性、完整性和價值。
但在實際評估過程中,研究者發現不同類型網站的得分出現了系統性偏差:
文檔網站、技術博客等由于格式規范、結構清晰,普遍獲得較高分數;而技術論壇、問答平臺等網站,雖然往往包含有價值的技術討論和解決方案,但因其非正式的格式而得分較低。
為了解決這種評分偏差,研究團隊對評分系統進行了優化——首先將網站按其內容形式和功能進行分類,然后為每類網站制定專門的評分標準和篩選閾值。
通過這套經過優化的雙重過濾機制,系統最終構建了一個約1.2萬億tokens的網絡數據語料庫。
基于前面的四個數據類別,Seed-Coder的預訓練分為了兩個階段。
其中,第一個階段為常規預訓練,使用的是文件級代碼和代碼相關網絡數據,目的是構建模型的基礎能力。
第二個階段是持續預訓練,使用所有四個類別的數據,并額外引入了高質量數據集和長上下文數據集,以增強性能并進行對齊,同時刺激模型理解長上下文數據的能力。
除了常規的next-token預測目標外,Seed-Coder還采用了Fill-in-the-Middle(FIM)和Suffix-Prefix-Middle(SPM)訓練,分別增強上下文感知完成和中間內容能力。
基于基礎模型,Seed團隊還開發了Seed-Coder的兩個特殊變體——
- 指令模型(-Instruct):目的是增強模型的指令遵循能力,其訓練分為監督微調(SFT)第二階段和直接偏好優化(DPO)兩個階段;
- 推理模型(-Reasoning):目的是提升模型在復雜編程任務中的多步推理能力,采用長鏈條思維(LongCoT)強化學習訓練。首先使用從編程競賽問題和高質量模型生成的解決方案進行預熱訓練,然后通過GRPO框架實施強化學習訓練。
這兩個變體的設立,進一步擴展了Seed-Coder的實用性。
字節Seed最近更開放了
除了開源Seed-Coder外,字節Seed近期多個動作也都聚焦在了降門檻、開源開放方面。
比如在基礎模型方面,發布了視頻生成和推理模型。
視頻生成模型Seaweed,70億參數原生支持1280x720分辨率、任意寬高比和時長視頻生成,效果超越140億參數模型。
它強調了成本方面的優勢,使用665000 H100 GPU小時完成訓練,中小團隊可部署,僅需40GB顯存單GPU就可生成分辨率達1280x720的視頻。
深度思考模型Seed-Thinking-v1.5,更輕量級、更少激活參數,在數學、代碼等推理任務中超越DeepSeek-R1。
同時團隊公開技術報告,介紹其中秘訣,通過數據、RL算法和RL基礎設施三方面提升推理表現。
在智能體方面,與清華聯手推出了電腦操作智能體UI-TARS,超越GPT-4o等,且免費商用。
它在Qwen-VL基礎上而來,能一步步自動完成跨任務的復雜操作,并兼容各種系統。目前GitHub上星標已超過5.8k。
此外還推出了Multi-SWE-bench:用于問題解決的多語言基準。它跨越7種編程語言,包含1632個高質量實例。
與此同時,字節Seed內部也在不斷調整。消息稱,LLM 之下的3個團隊,Pre-train(預訓練)、Post-train(后訓練) 和Horizon如今轉為直接向Seed負責人吳永輝匯報。字節AI Lab中探索機器人&具身智能、AI for Science和AI安全可解釋性的三個方向,也已并入Seed。
今年年初,字節正式設立代號為“Seed Edge”的研究項目,核心目標是做比預訓練和大模型迭代更長期、更基礎的AGI前沿研究,項目成員擁有寬松的研究環境、獨立計算資源,并實行更長期的考核方式。擬定五大研究方向也完全面向下一代AI研究、原始性創新,或者是范式上的更迭。
而透過字節的動向,如今AI圈子的新風向也更明朗了。
開源、開放、原始性創新、AI普惠……
言而總之,還得是感謝DeepSeek了?(doge)
項目地址:
https://bytedance-seed-coder.github.io/
參考鏈接:
https://seed.bytedance.com/zh/
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.