![]()
北航、人大和九坤投資共同撰寫的論文 《Scaling Laws for Code: Every Programming Language Matters》 整理而成。
在代碼大模型(Code LLMs)的預訓練中,行業內長期存在一種慣性思維,即把所有編程語言的代碼都視為同質化的文本數據,主要關注數據總量的堆疊。然而,現代軟件開發本質上是多語言混合的,不同語言的語法特性、語料規模和應用場景差異巨大。如果忽略這些差異,籠統地應用通用的 Scaling Laws,往往會導致性能預測偏差和算力浪費。
為了打破這一黑盒,研究團隊耗費了相當于 33.6 萬個 H800 GPU 時,進行了超過 1000 次實驗。研究覆蓋了從 0.2B 到 14B 的模型參數規模,以及高達 1T 的訓練數據量,系統性地對 Python、Java、Javascript、Typescript、C、Javascript 與 Typescript 這類語法結構高度相似的語言對,在混合訓練時表現出極強的正向遷移效果。
更有趣的是,這種遷移往往是非對稱的。Java是多語言訓練的最大受益者,幾乎與任何語言混合都能大幅降低其 Loss,這可能是因為 Java 作為成熟的面向對象語言,能從其他語言的范式中汲取通用邏輯。而Python雖然是代碼領域的通用 “供體”(幫助其他語言提升),但其自身從其他語言獲得的收益卻相對有限,甚至在某些混合比例下會出現輕微的負遷移。這一發現提示我們,在構建語料庫時需要精細設計混合策略,而非盲目地 “大雜燴”。
![]()
表 1:協同增益矩陣。紅色越深代表輔助語言(列)對目標語言(行)的提升越大。Java 所在的行顯示出它能從所有輔助語言中獲得顯著收益)
跨語言對齊策略:并行配對激發 Zero-Shot 能力
除了單語言生成,跨語言翻譯(如 Java 轉 Python)也是代碼模型的重要能力。論文對比了兩種數據組織策略:傳統的“隨機打亂”(Random Shuffling)和“并行配對”(Parallel Pairing)—— 即將一段代碼與其翻譯版本拼接在同一個 Context 中輸入模型。
實驗結果表明,并行配對策略在所有模型規模上均顯著優于基線。這種策略實際上利用了模型的長上下文窗口,構建了隱式的文檔級對齊信號。更關鍵的是,這種策略激發了模型在Zero-Shot(零樣本)方向上的泛化能力。例如,模型僅訓練了 Python?Java 和 Python?Go 的配對數據,但在測試從未見過的 Java?Go 翻譯任務時,基于并行配對訓練的模型表現出了驚人的組合泛化能力。這證明了通過構建以 Python 為樞紐的平行語料,可以有效拉齊不同編程語言的向量空間。
![]()
圖 4:三種策略在跨語言翻譯任務上的表現對比。綠色線條代表的并行配對策略(prompt-based Concatenation)在各方向上均取得最低 Loss)
最優 Token 分配指南:基于邊際效用的經濟學
基于上述發現,論文提出了“科學配比的多語言 Scaling Law”(Proportion-dependent Multilingual Scaling Law)。這不僅是一個理論公式,更是一套指導算力投資的行動指南。
在總算力固定的約束下,傳統的均勻分配并非最優解。最優策略應遵循邊際效用最大化原則:
重倉高潛力語言:大幅增加Python的 Token 占比,因為它的 Scaling 指數高,投入更多數據能帶來持續的性能爬坡。平衡高協同組合:利用JavascriptTypescript的互補性,保持兩者適度的比例以最大化協同增益。削減早熟語言投入:適當減少RustGo的數據占比。因為它們收斂快,過多的數據投入只會帶來邊際收益的快速衰減,不如將這部分算力轉移給更難學的語言。
實驗驗證顯示,采用這種 “引導式分配” 策略訓練出的 1.5B 模型,在多語言代碼生成(MultiPL-E)和翻譯任務上,均穩定優于均勻分配的基線模型,且沒有任何一種語言因數據減少而出現顯著的性能退化。
![]()
圖 5:基線策略 vs 優化后的 Token 分配方案。基于 Scaling Law 的建議大幅增加了 Python(藍色)的占比,同時削減了 Rust(橙色)和 Go(青色)的占比)
總結與啟示
這項工作是代碼大模型領域一次重要的 “去魅” 過程。它用詳實的數據證明,編程語言在模型訓練的視角下絕非同質。
對于致力于訓練 Code LLM 的團隊而言,這意味著數據工程的重點應從單純的 “清洗與去重” 轉向更宏觀的 “成分配比”。理解不同語言的 Scaling 特性(是像 Python 一樣潛力巨大,還是像 Rust 一樣迅速飽和)以及它們之間的協同關系,能夠幫助我們在有限的算力預算下,訓練出綜合代碼能力更強的基座模型。這不僅是算法的優化,更是資源配置效率的提升。





京公網安備 11011402013531號