中移動(dòng)九天團(tuán)隊(duì)MultiPL-MoE:全新Hybrid-MoE架構(gòu)用于增強(qiáng)通用大模型低資源代碼能力
大語(yǔ)言模型(LLM)雖已展現(xiàn)出卓越的代碼生成潛力,卻依然面臨著一道艱巨的挑戰(zhàn):如何在有限的計(jì)算資源約束下,同步提升對(duì)多種編程語(yǔ)言的理解與生成能力,同時(shí)不損害其在主流語(yǔ)言上的性能?
為此,中國(guó)移動(dòng)九天團(tuán)隊(duì)創(chuàng)新性地提出了 Hybrid MoE 架構(gòu) —— MultiPL-MoE,該方案的核心在于耦合兩個(gè)層次的專(zhuān)家選擇機(jī)制進(jìn)行優(yōu)化:在 Token 層級(jí),采用配備共享專(zhuān)家及新穎門(mén)控權(quán)重歸一化方法的稀疏 MoE,以實(shí)現(xiàn)與段落層級(jí)專(zhuān)家的高效協(xié)同;在 Segment 層級(jí),則創(chuàng)新性地引入滑動(dòng)窗口劃分與專(zhuān)家選擇路由策略,使模型能夠精準(zhǔn)捕捉不同編程語(yǔ)言的語(yǔ)法結(jié)構(gòu)與深層上下文模式。目前,該項(xiàng)研究已被 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)展示出卓越的能力,然而大量研究表明這些大模型在高資源編程語(yǔ)言(如:Python)與低資源編程語(yǔ)言上(如:Rust)上存在顯著的性能差異,后者無(wú)論是在線(xiàn)資源還是訓(xùn)練數(shù)據(jù)集均相對(duì)匱乏。對(duì)多語(yǔ)言代碼生成能力日益增長(zhǎng)的需求,促使人們致力于將廣泛的編程語(yǔ)言知識(shí)注入 LLM。然而,現(xiàn)有的研究主要存在以下兩種問(wèn)題:
1. 使用多種編程語(yǔ)言的數(shù)據(jù)對(duì)基座模型進(jìn)行繼續(xù)訓(xùn)練,但存在計(jì)算開(kāi)銷(xiāo)極為龐大的問(wèn)題;
2. 通過(guò)特定高質(zhì)量低資源數(shù)據(jù)對(duì)基座模型進(jìn)行微調(diào)以提升特定編程語(yǔ)言性能,但會(huì)引發(fā)基座模型原有代碼能力的嚴(yán)重災(zāi)難性遺忘問(wèn)題。
因此,我們創(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 則利用滑動(dòng)窗口獲得多個(gè)分段并搭配采用專(zhuān)家選擇 top-k 個(gè)分段的專(zhuān)家選擇路由的策略。實(shí)驗(yàn)結(jié)果證明了 MultiPL-MoE 的有效性。
方法
1. MoE 定義
MoE 通過(guò)將原 Transformer 結(jié)構(gòu)中的單一 FFN 層擴(kuò)展成
個(gè) FFN 層來(lái)實(shí)現(xiàn)模型的擴(kuò)容,使用結(jié)構(gòu)上與原始 FFN 層等效的
專(zhuān)家網(wǎng)絡(luò)。路由器將每個(gè)輸入 token 引導(dǎo)到
專(zhuān)家網(wǎng)絡(luò)中的 K 個(gè)專(zhuān)家,
是給定第 t 個(gè) token 的第 i 個(gè)專(zhuān)家的門(mén)控分?jǐn)?shù)。對(duì)于第 l 層,第 t 個(gè) token 的輸出隱藏狀態(tài)為
的計(jì)算過(guò)程如下:

2. MultiPL-MoE
MultiPL-MoE 的提出以?xún)?yōu)化 token-level 和 segment-level 的專(zhuān)家選擇。Token-level MoE 是一種傳統(tǒng)的 token 選擇路由,結(jié)合了共享專(zhuān)家和一種新的路由權(quán)重歸一化方法,以解決后期與 segment-level MoE 融合時(shí)的規(guī)模不匹配問(wèn)題。對(duì)于 segment-level MoE,我們采用專(zhuān)家選擇路由機(jī)制,將輸入作為上下文連貫的分段,使專(zhuān)家能夠捕捉語(yǔ)法結(jié)構(gòu)和一些篇章級(jí)的特征。

圖 1 MutilPL-MoE 的整體架構(gòu)
2.1 Token-level MoE
為了融合 token-level MoE 與 segment-level MoE 的輸出,在該層級(jí)對(duì)選中的 top-K 個(gè)專(zhuān)家的門(mén)控分?jǐn)?shù)施加限制。具體來(lái)說(shuō),使用路由器網(wǎng)絡(luò)計(jì)算當(dāng)前 token t 的共享專(zhuān)家的親和度得分,記為
,并從剩余得分中選擇最高的 K-1 個(gè)親和度得分,將 K 個(gè)親和力得分之和用作縮放因子 Norm 對(duì)其進(jìn)行歸一化,確保
。
的值按照以下方式進(jìn)行更新:

2.2 Segment-level MoE
Segment-level MoE 采用專(zhuān)家選擇路由策略,為每個(gè)專(zhuān)家獨(dú)立選擇前 K 個(gè)分段。給定輸入樣本
。首先根據(jù)上下文窗口 a 將 S 劃分為 P 段,表示為
。專(zhuān)家容量 r 表示每個(gè)專(zhuān)家可以選擇的分段數(shù)目,定義如下:

采用三個(gè)矩陣 I、D 和 U 來(lái)生成專(zhuān)家到分段的分配。索引矩陣
將分段映射到專(zhuān)家,I [i,j] 表示第 i 個(gè)專(zhuān)家選擇的第 j 個(gè)分段,權(quán)重矩陣
為所選分段分配專(zhuān)家權(quán)重,
是 I 的 ont-hot 版本,用于聚合每個(gè)專(zhuān)家的分段。為了計(jì)算親和力得分,通過(guò)對(duì)第 v 個(gè)分段的 token 表示進(jìn)行平均,推導(dǎo)出第 v 個(gè)分段的表示
。
表示 batch 內(nèi)所有 V 個(gè)分段的表示,路由器和三個(gè)矩陣的計(jì)算過(guò)程定義如下:

通過(guò)使用矩陣 U 和一批輸入樣本
的分段表示來(lái)獲得第 i 個(gè)專(zhuān)家的輸入,表示為
,使用專(zhuān)家的 FFN 變換生成第 i 個(gè)專(zhuān)家的輸出
。給定
和矩陣 U、D,第 l 層 segment-level 的輸出
計(jì)算如下:

最后,融合 token-level MoE 和 segment-level MoE 的第 l 層輸出為:

2.3 損失函數(shù)
通過(guò)將 next token prediction loss 與 load balance loss 相結(jié)合來(lái)訓(xùn)練混合 MoE。
(1) next token prediction loss

(2) load balance loss

最終的優(yōu)化目標(biāo)為:

實(shí)驗(yàn)結(jié)果
實(shí)驗(yàn)結(jié)果表明,MultiPL-MoE 在跨語(yǔ)言泛化方面取得了顯著進(jìn)步。MultiPL-MoE 在 HumanEval 和 MBPP 的兩個(gè)基準(zhǔn)測(cè)試中均實(shí)現(xiàn)了一致的性能,即顯著增強(qiáng)了模型在低資源編程語(yǔ)言上的性能,同時(shí)有效緩解了高資源編程語(yǔ)言中的災(zāi)難性遺忘。同時(shí),我們也注意到,除基礎(chǔ)模型 Qwen1.5 外,基線(xiàn)模型、MultiPL-MoE 的 MBPP Python 語(yǔ)言上都表現(xiàn)出持續(xù)較低的性能,遠(yuǎn)遠(yuǎn)低于其他語(yǔ)言。

圖 2 不同 Baseline 及 MultiPL-MoE 在 6 種編程語(yǔ)言上的實(shí)驗(yàn)結(jié)果。其中,Python,Java,C++ 代表高資源語(yǔ)言,Rust,Go,Ruby 代表低資源語(yǔ)言。
結(jié)語(yǔ)
本文提出了一種混合式多語(yǔ)言學(xué)習(xí)模型 (MoE)——MultiPL-MoE,它同時(shí)包含 token-level MoE 和 segment-level MoE。MultiPL-MoE 引入共享專(zhuān)家來(lái)捕捉 token 之間的知識(shí)共性,并在句段 (segment) 之間獲取句段間的語(yǔ)義和邏輯信息。在兩個(gè)不同的基準(zhǔn)測(cè)試集上進(jìn)行的大量實(shí)證研究證明了 MultiPL-MoE 是一種在預(yù)訓(xùn)練后階段擴(kuò)展低源碼編程語(yǔ)言的有效方法。



































