![]()
大語言模型(LLM)雖已展現(xiàn)出卓越的代碼生成潛力,卻依然面臨著一道艱巨的挑戰(zhàn):如何在有限的計算資源約束下,同步提升對多種編程語言的理解與生成能力,同時不損害其在主流語言上的性能?
為此,中國移動九天團(tuán)隊創(chuàng)新性地提出了 Hybrid MoE 架構(gòu) ——MultiPL-MoE,該方案的核心在于耦合兩個層次的專家選擇機(jī)制進(jìn)行優(yōu)化:在 Token 層級,采用配備共享專家及新穎門控權(quán)重歸一化方法的稀疏 MoE,以實現(xiàn)與段落層級專家的高效協(xié)同;在 Segment 層級,則創(chuàng)新性地引入滑動窗口劃分與專家選擇路由策略,使模型能夠精準(zhǔn)捕捉不同編程語言的語法結(jié)構(gòu)與深層上下文模式。目前,該項研究已被 EMNLP 2025 接收。
![]()
論文標(biāo)題:MultiPL-MoE: Multi-Programming-Lingual Extension of Large Language Models through Hybrid Mixture-of-Experts論文鏈接:https://arxiv.org/abs/2508.19268代碼鏈接:https://github.com/Eduwad/MultiPL-MoE
背景
現(xiàn)有的通用大模型在代碼生成方面已經(jīng)展示出卓越的能力,然而大量研究表明這些大模型在高資源編程語言(如:Python)與低資源編程語言上(如:Rust)上存在顯著的性能差異,后者無論是在線資源還是訓(xùn)練數(shù)據(jù)集均相對匱乏。對多語言代碼生成能力日益增長的需求,促使人們致力于將廣泛的編程語言知識注入 LLM。然而,現(xiàn)有的研究主要存在以下兩種問題:
1. 使用多種編程語言的數(shù)據(jù)對基座模型進(jìn)行繼續(xù)訓(xùn)練,但存在計算開銷極為龐大的問題;
2. 通過特定高質(zhì)量低資源數(shù)據(jù)對基座模型進(jìn)行微調(diào)以提升特定編程語言性能,但會引發(fā)基座模型原有代碼能力的嚴(yán)重災(zāi)難性遺忘問題。
因此,我們創(chuàng)新性地提出了一種 Hybrid MoE 結(jié)構(gòu),即 token-level MoE 和 segment-level MoE 相結(jié)合的 MoE 架構(gòu)。Token-level MoE 采用典型的 sparse upcycling MoE 結(jié)構(gòu),Segment-level MoE 則利用滑動窗口獲得多個分段并搭配采用專家選擇 top-k 個分段的專家選擇路由的策略。實驗結(jié)果證明了 MultiPL-MoE 的有效性。
方法
1. MoE 定義
![]()
![]()
2. MultiPL-MoE
MultiPL-MoE 的提出以優(yōu)化 token-level 和 segment-level 的專家選擇。Token-level MoE 是一種傳統(tǒng)的 token 選擇路由,結(jié)合了共享專家和一種新的路由權(quán)重歸一化方法,以解決后期與 segment-level MoE 融合時的規(guī)模不匹配問題。對于 segment-level MoE,我們采用專家選擇路由機(jī)制,將輸入作為上下文連貫的分段,使專家能夠捕捉語法結(jié)構(gòu)和一些篇章級的特征。
![]()
圖 1 MutilPL-MoE 的整體架構(gòu)
2.1 Token-level MoE
![]()
![]()
2.2 Segment-level MoE
![]()
![]()
![]()
![]()
![]()
![]()
最后,融合 token-level MoE 和 segment-level MoE 的第 l 層輸出為:
![]()
2.3 損失函數(shù)
通過將 next token prediction loss 與 load balance loss 相結(jié)合來訓(xùn)練混合 MoE。
(1) next token prediction loss
![]()
(2) load balance loss
![]()
最終的優(yōu)化目標(biāo)為:
![]()
實驗結(jié)果
實驗結(jié)果表明,MultiPL-MoE 在跨語言泛化方面取得了顯著進(jìn)步。MultiPL-MoE 在 Humaneval 和 MBPP 的兩個基準(zhǔn)測試中均實現(xiàn)了一致的性能,即顯著增強(qiáng)了模型在低資源編程語言上的性能,同時有效緩解了高資源編程語言中的災(zāi)難性遺忘。同時,我們也注意到,除基礎(chǔ)模型 Qwen1.5 外,基線模型、MultiPL-MoE 的 MBPP Python 語言上都表現(xiàn)出持續(xù)較低的性能,遠(yuǎn)遠(yuǎn)低于其他語言。
![]()
圖 2 不同 baseline 及 MultiPL-MoE 在 6 種編程語言上的實驗結(jié)果。其中,Python,Java,C++ 代表高資源語言,Rust,Go,Ruby 代表低資源語言。
結(jié)語
本文提出了一種混合式多語言學(xué)習(xí)模型 (MoE)——MultiPL-MoE,它同時包含 token-level MoE 和 segment-level MoE。MultiPL-MoE 引入共享專家來捕捉 token 之間的知識共性,并在句段 (segment) 之間獲取句段間的語義和邏輯信息。在兩個不同的基準(zhǔn)測試集上進(jìn)行的大量實證研究證明了 MultiPL-MoE 是一種在預(yù)訓(xùn)練后階段擴(kuò)展低源碼編程語言的有效方法。





京公網(wǎng)安備 11011402013531號