MultiPL-MoE 是什么?用混合专家让大模型学会更多编程语言
TL;DRMultiPL-MoE 是中国移动研究院在 2025 年 8 月提出的方法,用两种配对的混合专家结构扩展大模型的多编程语言能力,兼顾词元级和段落级的专家选择,在有限算力下提升冷门语言的代码生成,被 EMNLP 2025 接收。
MultiPL-MoE 是一种扩展大模型多编程语言能力的方法,由中国移动研究院在 2025 年 8 月提出,论文标题是《MultiPL-MoE:通过混合式混合专家实现大模型的多编程语言扩展》,被 EMNLP 2025 接收。
问题:热门语言强,冷门语言弱
大模型写 Python、JavaScript 这类主流编程语言已经很强,但面对训练数据较少的语言,比如一些小众的或领域专用的编程语言,表现就差很多。这项研究的目标是:在计算资源有限的情况下,提升基础模型在多种编程语言上的表现,同时保住它在最流行语言上原有的能力,不能顾此失彼。
把编程语言当成“外语”
研究者把多编程语言问题看作多自然语言问题的一个特例:就像让一个模型同时掌握英语、法语和日语,让它同时掌握 Python、Rust 和 Lua。在多自然语言扩展中,混合专家(MoE)是常用的方法:不同的专家子网络负责不同的语言。但论文指出,以往用于多自然语言的 MoE 方法,主要通过预测下一个 token 来关注语言内部的一致性,而忽略了编程语言内部的语法结构:代码是有层次的,函数、代码块、语句各有结构。
两种专家配对
MultiPL-MoE 把两种配对的 MoE 结合起来,在不同粒度上优化专家的选择。一种在词元(token)级别工作,让每个 token 交给合适的专家处理,并通过共享专家等设计保持通用能力。另一种在段落(segment)级别工作,以代码片段为单位选择专家,更好地捕捉编程语言的语法结构和上下文。两者配合,让模型既能处理细粒度的语法细节,又能理解较大范围的代码结构。
意义
论文报告,MultiPL-MoE 在多种编程语言上的代码生成表现都有提升,尤其是数据较少的语言,同时保持了主流语言的能力。对需要支持多种编程语言、甚至企业内部专用语言的代码助手来说,这类方法很有参考价值。