# EMO：为涌现模块化预训练的专家混合模型

- 来源：Hugging Face：Blog（RSS）
- 发布时间：2026-05-09 00:03
- AIHOT 分数：72
- AIHOT 标记：精选
- AIHOT 链接：https://aihot.virxact.com/items/cmox4xh0p006lslguuhqaou8t
- 原文链接：https://huggingface.co/blog/allenai/emo

## 精选理由

EMO 让 MoE 专家从按词法分散进化到按语义域自然模块化，仅用 12.5% 专家就能接近全模型性能，对需要按需加载的大模型部署是真正的突破。

## AI 摘要

EMO是一种新型专家混合模型，通过端到端预训练使模块化结构直接从数据中涌现，无需依赖人类定义的先验。该模型允许在特定任务中仅使用12.5%的专家子集（即8个活跃专家中的部分），同时保持接近全模型的性能；当所有128个专家共同使用时，它仍作为强大的通用模型。EMO具有1B活跃参数和14B总参数，训练数据达1万亿令牌。与标准MoE相比，EMO通过文档级路由约束，鼓励专家形成领域专业化组，从而支持选择性使用而不导致严重性能下降，实现了可组合架构，优化了大型稀疏MoE的内存-准确性权衡。

## 正文

今天，我们发布了 EMO，这是一种全新的混合专家（MoE）模型，采用端到端预训练方式，使得模块化结构直接从数据中涌现，无需依赖人工定义的先验知识。EMO 允许你在执行特定任务时仅使用其全部专家中的一小部分——仅占总量的 12.5%——同时仍能保持接近完整模型的性能；而当所有专家共同使用时，它依然是一个强大的通用模型。

大语言模型通常作为单一整体系统进行训练和部署：一个模型被初始化、预训练、微调，并作为一个统一实体提供服务。然而，实际应用往往只需要其中一部分能力，例如代码生成、数学推理或特定领域知识。随着前沿大语言模型的参数量常规性地达到万亿级别，对大多数用户而言，使用和适配完整模型变得不切实际，并且会带来不必要的计算成本和内存开销，用于承载那些可能根本用不上的参数。

混合专家（MoE）模型似乎是缓解这一约束的自然方式。MoE 并非在每一层使用一个大型前馈网络，而是包含多个较小的网络，称为“专家”，并且对于每个输入 token 仅激活其中一小部分。理论上，一个只需要单一能力的任务可以只加载相关的专家。

然而在实践中，现有的 MoE 模型仍然需要完整模型才能良好运行。即使是在单个输入内部，不同的 token 也常常会激活不同的专家，因此一个任务在生成过程中最终可能会用到所有专家。正如我们在论文中所展示的，这种情况部分是因为标准 MoE 中的专家往往专门处理低层次的词汇模式，例如介词或标点符号，而非更高层次的领域或能力。其结果是，小规模的专家子集无法可靠地独立使用。

我们想要的是这样一种 MoE 模型：其专家能够组织成连贯的群组，这些群组可以被选择性地使用和组合。

在预训练过程中，鼓励这种行为的其中一种方法是根据预定义的语义领域（如数学、生物学或代码）将 token 路由到不同的专家。此前的研究工作，如 BTX 和我们自己的 FlexOlmo 项目，都曾尝试过这种方法。然而，预定义的领域存在重要的局限性。它们需要为整个预训练语料库标注领域标签，这既可能产生歧义，成本也高昂，并且可能会将过多的人类偏见注入到模型自我组织的方式中。更重要的是，预先固定领域也同时固定了模型的模块化结构：如果在推理时出现了新的领域或能力，那么应该使用哪些专家就不明确了。

这正是 EMO 的用武之地。

我们证明，EMO——一个拥有 10 亿活跃参数、140 亿总参数（8 个活跃专家，共 128 个专家），并在 1 万亿个 token 上训练而成的 MoE 模型——支持选择性专家使用：对于给定的任务或领域，我们可以仅使用一小部分专家（仅占总专家数的 12.5%），同时保持接近完整模型的性能。与此同时，当所有专家一起使用时，EMO 仍然是一个强大的通用模型。相比之下，一个架构相同、在相同数据上训练的标准 MoE 模型，在选择性使用其专家子集时，性能会出现严重下降。

EMO 是一个将模块化作为首要目标进行训练的 MoE 模型。对于给定的领域（例如数学、代码、生物医学），用户可以选择任意大小的一个小型专家子集，并保持接近完整模型的性能。这将单个模型转变为一个可组合的架构，从而能够实现灵活的部署，并为大型稀疏 MoE 模型带来更好的内存-精度权衡。

我们如何让模块化特性涌现出来？

在 MoE 模型中，一个被称为路由器的微型网络决定每个 token 激活哪些专家。我们希望路由器能够学习到，来自相似领域的 token 应该激活相似的专家子集。我们的关键观察是，来自同一文档的 token 通常来自同一领域。因此，我们利用文档边界作为弱监督信号：在训练过程中，一个文档内的所有 token 都被限制从共享的专家池中选择它们的活跃专家。

标准 MoE 与 EMO 的训练对比（k = 2，n = 10，为简洁起见省略共享专家）。（左图）在标准 MoE 中，每个 token 独立选择其 top-k 专家。所有 token 会用到全部专家。（右图）在 EMO 中，路由机制首先为每个文档选择一个专家子集，所有 token 都被限制只能在该子集内路由。这保证了文档内专家使用的一致性，促使专家群体形成领域专化。

例如，在一个共有 10 个专家、每个 token 激活 2 个专家的 MoE 中，某个文档的所有 token 都被限制在同一个由 4 个专家组成的池内路由，如上图所示。这个池由路由机制自行选择：我们对文档中所有 token 的路由偏好进行平均，然后选出使用频率最高的专家作为该文档的共享池。不同文档可以使用不同的池，从而允许重复出现的专家群体直接从训练数据中涌现。

实现该系统时需要考虑几个方面：

负载均衡。一个技术挑战是负载均衡。在标准 MoE 训练中，负载均衡目标用于防止模型只依赖少数几个专家。乍看之下，这与 EMO 的训练目标似乎存在冲突：我们明确限制每个文档只能使用一个专家子集。

这种冲突源于负载均衡通常应用的尺度。在许多 MoE 实现中，负载均衡是在局部计算的，通常是在仅包含少量文档的微批次内。这种局部目标会促使同一文档内的 token 分散到多个专家，直接与 EMO 保持文档内专家使用一致性的目标相悖。

为解决此问题，我们在多个文档的全局范围内应用负载均衡。在这个更大的尺度上，两个目标变得互补：EMO 鼓励同一文档内的 token 使用一致的专家池，而全局负载均衡则鼓励不同文档共同覆盖所有专家。在实践中，我们发现全局负载均衡对于稳定训练至关重要。

文档池大小。文档池大小控制模块化约束的严格程度。较小的池会迫使同一文档中的 token 共享更紧密的专家集合，从而鼓励更强的模块化；较大的池则赋予模型更多灵活性，但会削弱约束。

我们并非固定一个池大小，而是在训练过程中随机采样。这可以防止 EMO 过拟合到单一子集大小，并使其在推理时能够支持不同的专家子集大小。

基准测试结果

在通用基准测试上，EMO 的表现与标准 MoE 模型相当，表明模块化目标并未以牺牲整体模型性能为代价。然而，更重要的问题是，当我们只保留部分专家时，模型是否仍能正常工作。在此设置下，我们根据少量任务验证数据上的路由使用情况对专家进行排序，构建任务特定的专家子集，保留使用频率最高的专家，丢弃其余专家。

下图显示，EMO 在选择性使用专家时仍保持稳健。当我们仅保留 25% 的专家（32 个专家子集）时，EMO 在所有基准测试上的绝对性能仅下降约 1%；即使只保留 12.5% 的专家（16 个专家子集），整体下降也仅为约 3%。这一结果在微调前后均成立。相比之下，匹配的标准 MoE 随着专家子集缩小而急剧退化，在最小的专家子集设置下，性能往往接近或低于随机水平。

此外，我们证明为任务选择合适的专家出奇地廉价：仅需一个带有少量示例的样本，就足以识别出一个与使用完整验证集选择的模块性能相当的模块。而且 EMO 并不依赖于任何特定的选择方法：它与现有的专家剪枝方法（如 Easy-EP）配合良好，两者互为补充。

较小的 130B token 设置。在不同内存预算下，16 个 MMLU 类别的平均性能。EMO 专家子集在内存-准确率权衡中推动了帕累托前沿，优于标准 MoE，甚至优于从头训练的固定预算模型。

专家子集专门处理什么？

为了观察 EMO 在训练后实际学到了什么，我们对 1.2 万篇预训练文档中前 100 个 token 的路由器激活值进行了聚类。与标准 MoE 的差异十分显著。

EMO 的 token 聚类对应的是健康、医疗与保健、新闻报道、美国政治与选举、电影与音乐等类别。而标准 MoE 产生的聚类则是介词、专有名词、系动词或定冠词这类。在 EMO 中，同一篇文档的 token 大多落在同一个聚类中；在标准 MoE 中，它们则分散在多个聚类里。

通过一个例子就能最直观地看到这种对比。以一篇健康文章为例：在 EMO 中，几乎每个 token 都会路由到健康、医疗与保健这个聚类。而在标准 MoE 中，排名最高的聚类是“所有格与定冠词”；该模型会将这篇文章与所有恰好使用了“the”或“your”这两个词的文本归为一类，无论这些文本的内容是什么。

在基于 1 万亿 token 训练的 MoE 上，预训练数据的 token 聚类结果。EMO 的聚类对应语义上有意义的领域，同一篇文档的 token 基本被归为一组。标准 MoE 训练产生的则是表层或句法特征的聚类，文档 token 分散在多个聚类中。

由于 EMO 形成的模块对应的是语义领域而非表层特征，因此你可以挑选一个较小的专家子集，模型仍然能够正常运行：这个子集对应的是真实的能力。

你可以在我们的交互式可视化工具中亲自探索这些聚类结果。

我们发布的内容

我们发布了完整的 EMO 训练模型、一个在相同数据上训练的可比标准 MoE 基线模型，以及训练代码。我们希望这些成果能对其他研究 MoE 中涌现模块化特性的团队有所帮助。

还有更多工作要做。EMO 是朝着让大型稀疏模型更加模块化迈出的早期一步，但仍有许多问题有待解决：如何更好地选择和组合专家子集，如何在不破坏完整模型的情况下更新模块，以及如何利用模块化结构实现更好的可解释性和可控性。发布这些模型应有助于社区研究这些问题，并朝着更易于部署、适配、检查和组合的模块化语言模型迈进。

本文中提到的合集
