![]()
这项由香港中文大学、华为技术有限公司和香港大学联合开展的研究,以预印本形式发布于2026年5月,论文编号为arXiv:2605.06665。有兴趣深入了解的读者可通过该编号在arXiv平台查阅完整论文。
**当AI的"专家团队"被困在各自的格子间里**
假设你开了一家大型咨询公司,公司里有几十个楼层,每层楼都有自己的一批专家顾问。每当有客户问题需要解答时,每层楼只能调用本层的专家,哪怕隔壁楼层有个更擅长这个问题的顾问也无法借调过来。更奇怪的是,经过一段时间,你发现各楼层的顾问竟然各自独立研究出了相似的方案——大量精力白白重复了。
这个有些荒唐的管理模式,恰恰就是今天主流AI大语言模型(也就是我们说的大模型)所采用的内部结构方式。研究团队针对这一长期存在的设计惯例提出了质疑,并给出了一个更聪明的解决方案——UNIPOOL(统一专家池)。
当前的大模型(尤其是所谓的"混合专家模型",英文缩写MoE)普遍采用一种叫做"每层独立专家组"的结构:模型有很多层,就像那栋多层楼的大楼,每层楼配备了自己专属的一批"专家"模块负责处理信息,各层专家互不共享。UNIPOOL的核心创新,就是把这些分散在各楼层的专家统统汇聚到一个全公司共用的"人才库",让每一层楼的"调度员"(路由器)都可以从这个公共人才库中自由选取最合适的专家来处理当下的问题。
这看起来像一个简单的管理优化,但背后需要解决两个非常棘手的技术难题。研究团队不仅提出了问题,还给出了一套完整的工程解决方案,并在五个不同规模的模型上进行了系统验证,结果令人印象深刻。
**一、专家真的在各楼层重复劳动吗——来自真实模型的惊人证据**
在正式介绍解决方案之前,我们需要先理解为什么这个问题值得被解决。研究团队花了大量篇幅来说明一件事:在现有的大模型里,深层楼层的专家组其实大量存在"人才浪费"现象。
他们做了一个巧妙的实验,可以称之为"蒙眼调度测试":在真实运行的大模型中,把某一层楼的"调度员"(路由器)蒙上眼睛,让它不再根据学习到的经验做决策,而是随机把工作分配给本层任何一个专家。如果某一层的专家们各有专长、分工明确,那么随机分配就应该导致模型性能大幅下降——因为你随便找个专家来处理问题,结果肯定不好。反之,如果随机分配后性能几乎没变,就说明这一层的专家们其实都差不多,换谁来做都无所谓。
研究团队在三个真实的业界顶级大模型上做了这个测试,分别是Qwen1.5-MoE、DeepSeek-V2-Lite和Qwen3-30B-A3B。测试覆盖五个标准智力测验,包括科学推理(ARC-Easy和ARC-Challenge)、物理直觉理解(PIQA)、长句补全(HellaSwag)和语言常识(WinoGrande)。
结果非常能说明问题:随机分配之后,这三个模型的平均表现只分别下降了1.6分、1.2分和1.0分(满分均为100分)。换句话说,把学了这么久经验的"调度员"换成一个随机抛硬币的机器,几乎什么都没变!这就好比一个经验丰富的项目经理认真研究了半天,把任务分配给了最合适的人,结果随机分配也能得到九成九相同的效果——那这位项目经理的"认真研究"基本上是在浪费时间。
这个发现与其他研究的结论不谋而合。此前已有研究发现,在Qwen和DeepSeek系列大模型中,同一层内不同专家的权重矩阵之间相似度极高(余弦相似度超过0.9),而且这种相似性在模型越深的楼层越明显。还有研究发现,把一个专家的任务改派给同层最相似的另一个专家,模型的表现基本不受影响,甚至可以借此实现近两倍的推理加速。在Mixtral 8×7B模型中,即便裁掉大约一半的专家,质量损失也只有大约8%。
这些证据拼在一起指向同一个结论:现有的"每层独立专家组"设计,正在驱使模型在每一层楼都重新发明轮子,各自训练出一套功能高度雷同的专家团队,大量参数资源被用来反复学习相似的转换规律。问题的根源不在于专家本身不够好,而在于这种"格子间式"的分配结构,天然地限制了专家经验的跨层共享和复用。
**二、全公司共享人才库——UNIPOOL的核心设计**
明确了问题所在,研究团队的解决思路就变得直观了:与其让每层楼各自圈养一批专家,不如建立一个全公司统一的"人才池",让所有楼层都可以自由调用其中的任何一位专家。
在技术语言中,一个标准的混合专家模型(MoE)有L层,每层拥有E个独立的专家FFN模块(FFN可以理解为专门处理信息的计算单元),每层的调度员(路由器)只能从本层的E个专家中挑选。UNIPOOL将这个结构彻底重新组织:用一个拥有M个专家的全局共享池取代各层的独立专家组,每层的调度员保持独立,但它们调用的都是同一个共享池里的专家。
在参数匹配的主实验设置中,M的取值等于8×L——也就是说,如果原本每层有8个专家、共有L层,那么共享池里就有8L个专家,总专家数量与原来完全相同。这样一来,比较的基准就很公平:两种方案用的专家数量一样多,每处理一个输入时激活的专家数量也一样多(都是1个),唯一的区别就是"专家归谁所有"以及"如何调度和平衡"。
这种设计的潜在好处显而易见:每个专家不再只接受某一层的训练信号,而是同时接受所有L层的训练信号,能够从更全局的视角发展出真正有价值的专长。而调度员(路由器)则继续保持每层独立,因为模型的不同深度确实需要处理不同性质的信息,调度策略应该有所差异——只是调度的来源变成了共享池。
**三、两大技术难关——没有好的平衡机制,共享就会崩塌**
共享人才池的想法虽然直观,但实际落地面临两个核心工程难题。如果这两个问题没有得到妥善处理,共享池不仅不会带来好处,反而会导致训练不稳定甚至性能更差。
第一个难题是**如何定义"公平使用"**。原来的混合专家模型在训练时有一个"防止专家闲置"的机制,用专业术语叫辅助损失(auxiliary loss)——它会在每一层内部施加压力,要求每个专家都得到一定量的工作任务,防止某些专家被完全忽视、白白占用参数。
但当专家变成全局共享之后,这个层内的平衡机制就出了问题。一个专家在第3层没有被调用,不代表它是"闲置专家"——它可能在第7层、第15层被大量调用。如果你还是按照旧规则在每层内部强制平衡,就会发生一件奇怪的事:第3层的调度员被迫给那个"在本层没人用"的专家分配任务,即便第3层根本不需要它的能力。这既破坏了调度的自然学习,也使得跨层复用成为奢望。
研究团队为此设计了一个全新的**池级辅助损失(pool-level auxiliary loss)**:不再在每层内部统计专家使用情况,而是把所有层对所有专家的使用情况汇总起来,在整个池子的层面上施加平衡压力。这样,平衡的目标是"整个人才库里没有人长期闲置",而不是"每层楼都必须把本层每个人都用一遍"。各层调度员可以自由地只使用池中对当前层最有价值的那部分专家,只要从全局来看每个专家都被充分利用就好。
在计算实现上,研究团队将每个专家的全局平均使用率(对所有层求平均)作为固定统计量,将各层调度员给各专家分配的概率作为可训练参数,用一步延迟的方式更新全局统计(当前批次的平衡依据上一批次的使用统计),避免了跨层张量依赖对计算图的破坏。
第二个难题是**如何让来自不同楼层的调度员都能稳定地访问同一个大型共享池**。在原来的方案中,每层的调度员只需要从本层8个专家里挑1个,任务相对简单。但在共享池方案中,调度员面对的候选池变成了8L个专家,而且来自不同深度的调度员处理的信息尺度(数值大小分布)可能相差很大。如果使用原来的softmax调度机制,各层信号尺度的差异会被放大,导致某些层的调度过于"集中"(总是选同几个专家),某些层的调度过于"分散"(几乎随机),整体训练变得不稳定。
为此,研究团队采用了**NormRouter**(规范化路由器)机制:调度员在打分时先对所有候选专家的分数做L2归一化(把分数的"方向"保留,把"绝对大小"消除),再通过ReLU函数过滤掉负分(让大约一半的专家直接得零分,天然形成稀疏性),最后乘以一个可学习的放大系数让每层调度员自己调整调度的"果断程度"。归一化处理使得分数大小不再受到各层信息尺度差异的影响,ReLU过滤使得每次调度天然地忽略大多数候选专家,可学习放大系数则给了每层调度员足够的灵活性。此外,放大系数的初始值通过蒙特卡洛采样方法精确校准,确保训练初期的调度分数处于合理的数值范围。
**四、验证结果——五个规模都赢了,而且参数还能省下来**
研究团队在五个不同规模的模型上进行了系统验证,模型参数量从1.82亿到9.78亿不等(均为LLaMA架构),在一个叫做Pile的大型英文文本数据集上训练了约300亿个词的数据量。
在所有五个规模下,UNIPOOL的验证损失(衡量模型对语言的预测准确度,数值越低越好)都稳定优于结构完全对称的原版混合专家模型。具体来看,1.82亿参数模型的验证损失从1.9317降至1.9029,差值为0.0288;4.69亿参数模型从1.7982降至1.7636,差值0.0346;6.50亿参数模型从1.7568降至1.7260,差值0.0308;8.30亿参数模型从1.7309降至1.6923,差值0.0386;9.78亿参数模型从1.7171降至1.6999,差值0.0172。两种混合专家方案都显著优于同规模的全密集模型(即不使用专家机制的普通模型),而UNIPOOL又在此基础上进一步拉开了差距。
研究团队还特别对比了8.30亿参数模型和9.78亿参数模型这对特别有趣的组合。8.30亿模型采用了更深的网络结构(48层,隐藏维度1024),9.78亿模型则采用了更宽但更浅的结构(24层,隐藏维度1536)。尽管9.78亿模型在激活参数和存储参数上都更大,但8.30亿的UNIPOOL最终验证损失(1.6923)反而比9.78亿的UNIPOOL(1.6999)更低。这个结果支持了一个很有价值的判断:对于共享专家池设计来说,网络越深、层数越多,共享机制就能创造出越多的跨层复用机会,回报率更高;而单纯增加宽度并不能充分发挥这一优势。
在七个标准零样本测试(即不给任何例题直接作答)中,包括科学推理、物理常识理解、故事续写、语言理解等任务,UNIPOOL在绝大多数任务上也超过了原版混合专家模型。以8.30亿参数规模为例,UNIPOOL的平均得分从43.82提升至45.67,提升了将近两个百分点。
更吸引人的是节省参数的实验。研究团队还测试了"用比原来少的专家做出更好的效果"这个命题。他们在每个规模下都训练了缩小版的UNIPOOL,只保留原版参数量的一部分:在1.82亿参数模型上只保留66.7%,在4.69亿和6.50亿参数模型上只保留50%,在8.30亿参数模型上甚至只保留41.6%。结果显示,即便用这么少的专家参数,缩小版UNIPOOL的验证损失仍然低于参数更多的原版混合专家模型。这意味着,在共享池设计下,专家参数量不必随着网络深度线性增长——可以实现次线性增长,用更少的参数达到相同甚至更好的效果,省下的预算可以用来把网络做得更深或者做其他优化。
关于专家粒度的扩展实验同样值得一提。研究团队在1.82亿参数的模型上还测试了"更细分的专家配置"——从每层8个专家(每次选1个)扩展到每层16个专家(每次选2个)和每层32个专家(每次选4个)。在所有三种粒度配置下,UNIPOOL都优于对应的原版混合专家模型,而且随着专家数量增加,两种方案的性能都在提升,与此前文献中关于细粒度专家有益的结论一致。这说明UNIPOOL的优势并非依赖特定专家粒度,而是普遍适用的。
**五、共享之后专家不再"懒"了——来自可视化的直接证据**
研究团队还提供了一组直观的可视化对比,能够非常清楚地说明为什么池级辅助损失是整个设计的关键。
他们对比了两种都使用全局共享池的配置:一种使用传统的层内辅助损失加上softmax调度,另一种使用全新的池级辅助损失加上NormRouter调度。
使用传统层内辅助损失时,可视化结果显示全局专家使用情况严重失衡:大量的工作流量集中在极少数几个专家上,大多数专家几乎完全闲置。这就是"层内平衡"思路在全局共享场景下的失效:每层都被迫在本层范围内均衡使用专家,但从全局角度来看,某些专家被每层都选中(因为它们在很多层内都排名靠前),而另一些专家则在哪层都进不了前排,最终全局闲置。
切换到池级辅助损失和NormRouter后,可视化结果完全不同:全局专家使用率分布均匀,接近理想的均匀分布线;与此同时,各层调度员仍然呈现出各自不同的偏好模式(不同层选择不同的专家子集),说明层特异性的调度策略得到了保留。这正是设计目标所追求的:全局不浪费,局部有专长。
**六、共享之后路由决策变得更有价值了**
研究团队还从另一个角度验证了共享机制的效果:他们把"蒙眼调度测试"重新做了一遍,这次用的是他们自己训练的模型。
在自己训练的4.69亿和9.78亿参数原版混合专家模型上,随机调度一个深层楼层的结果与在真实大模型上的测试一致——平均性能只下降了1.3和1.5个百分点,再次印证了深层专家高度相似、调度决策价值有限的问题。
然后他们对UNIPOOL模型做了对应的测试。由于UNIPOOL每层能从更大的池子里选,测试时需要保持公平:不是随机从全部专家里选,而是先找出每层实际最常用的8个专家(相当于每层的"常用名单"),再在这8个里随机选。即便如此限制了随机范围,UNIPOOL的性能下降幅度也达到了4.1个百分点——是原版混合专家模型的三倍左右。
这个对比说明了一件很重要的事:在UNIPOOL中,各层调度员的选择决策变得真正有意义了。因为每个专家都接受了来自所有层的训练信号,在激烈的全局竞争中存活下来的专家都发展出了更独特的专长,哪怕从本层最常用的8个里随机挑,也会造成显著的性能损失——这意味着这8个专家之间的差异是真实的,不像原版混合专家那样可以互相替换。共享池把"层内的冗余竞争"转化成了"全局的专长分化"。
**七、消融实验——拆开每个零件看清楚**
研究团队在1.82亿参数模型上还做了系统的"拆解实验",逐个移除或替换设计组件,验证每个部分的具体贡献。
把原版混合专家模型(层内辅助损失加softmax调度)的验证损失定为基准1.9317,然后:只换上NormRouter而保持层内辅助损失和层私有结构,验证损失反而从1.9317微升至1.9375,说明NormRouter在层私有设置下略有负面效果;换用共享池但继续使用传统层内辅助损失,验证损失升至1.9480,比基准还差,印证了层内辅助损失在共享设置下确实有害;换上共享池加上池级辅助损失但仍用softmax调度,验证损失降至1.9180,已经明显好于基准;完整的UNIPOOL(共享池加池级辅助损失加NormRouter)验证损失进一步降至1.9029,达到最优。
这组实验清楚地表明,NormRouter的价值在于与共享池的配合:当面对更大、更稀疏的候选池时,L2归一化和ReLU稀疏化的组合能够提供更稳定有效的调度,但在层私有的小候选集上反而不够适合。三个组件(共享池、池级辅助损失、NormRouter)是一个相互配合的设计系统,而非简单的独立改进叠加。
此外,研究团队还测试了"部分共享"的中间状态——把12层分成2组、4组或6组,每组内共享专家。结果显示,共享范围越大,验证损失越低,全局共享(1组)始终是最优选择。这个趋势在整个训练过程中始终如一,说明更广泛的共享改善了优化轨迹本身,而不只是在训练结束时恰好得到了一个更好的检查点。
**归根结底,这项研究说明了什么**
说到底,这项研究做的事情,就是把大模型里一个沿用已久的默认设定重新审视了一遍,发现它并不像人们以为的那样合理,然后设计了一套更聪明的替代方案。
专家参数不必随网络深度线性增长,这个发现打开了一个新的设计空间:同样的参数预算,可以拿来构建更深的网络,让更少的专家被更多层充分复用;或者干脆省下参数,用相同质量但更低成本的方式完成任务。这在AI模型的工程实践中有着直接的意义,因为存储和训练更多专家本身就是巨大的成本。
同时,这项研究也从一个新的角度解释了为什么大模型的深层部分常常显得"冗余"——不是因为深层本质上不重要,而是因为"每层圈地养专家"的结构驱使深层专家重复学习已有的知识。换一种结构,同样的深层反而能产生更大的价值。
当然,研究也坦诚地指出了局限性:所有实验都在1.82亿至9.78亿这个相对较小的参数规模上进行,对于真正的千亿级甚至更大规模模型的适用性还有待验证。同时,目前没有对训练速度和内存效率做详细的工程对比,这在实际应用中同样重要,有待后续研究补充。
对于有兴趣深入了解技术细节的读者,完整论文可通过arXiv编号2605.06665获取。
Q&A
Q1:UNIPOOL和普通的混合专家模型(MoE)在结构上有什么本质区别?
A:普通混合专家模型(MoE)的每一层都拥有自己独立的一批专家,跨层不能共享。UNIPOOL的改变是把所有层的专家合并成一个全局共享池,每层的调度员(路由器)仍然独立工作,但都从同一个专家池里选取专家。参数总量可以保持不变,每次处理信息时激活的专家数量也不变,区别仅在于专家的"归属"从每层私有变成全局公用。
Q2:UNIPOOL为什么需要专门设计新的平衡损失函数,用原来的不行吗?
A:原来的辅助损失(auxiliary loss)是在每层内部强制要求每个专家都被均等使用,防止某些专家"闲置"。但在共享池设计下,一个专家可能在某些层很少被用、在另一些层大量被用——从全局看它并不闲置。如果继续用层内平衡机制,就会错误地强迫某些层去使用它们其实不需要的专家,破坏调度学习。UNIPOOL的池级辅助损失把视角提升到整个共享池,只要从所有层汇总来看每个专家都被充分使用就达到目标,不再对单层内部的分配进行干预。
Q3:UNIPOOL说参数可以减少到原来的41.6%还能保持性能,这个节省是怎么实现的?
A:在原版混合专家模型中,每增加一层就必须新增一批专家参数,专家总量和网络深度呈严格正比关系。UNIPOOL打破了这个约束:因为所有层共享同一个专家池,可以选择让这个池子比"每层×每层专家数"更小。实验发现,即便共享池只有原版专家总量的41.6%(对于48层模型),UNIPOOL的效果仍然超过使用全量参数的原版方案。原因在于共享让每个专家接受了更充分的训练,发展出了更真实的专长,少量高质量专家的效果优于大量冗余专家。
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
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.