Sticky Routing: Training MoE Models for Memory-Efficient Inference
该论文提出了 StickyMoE,一种可微的路由一致性损失函数,旨在训练混合专家模型在语义连贯的标记跨度内保持专家分配,从而在显著减少边缘设备上内存密集型权重交换的同时,实现极小的困惑度下降。
原始论文采用 CC BY 4.0 许可(http://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明
想象一下,你拥有一个由 64 位不同领域的专家图书管理员组成的巨大图书馆,但你的微型边缘设备(比如手机或智能音箱)在桌面上只能腾出足够的空间来放置 2 位图书管理员。剩下的都被存放在一个缓慢且尘土飞扬的地下室里。
在标准的“混合专家”(Mixture-of-Experts, MoE)模型中,每当 AI 阅读一个新词时,它都会抛一次硬币来决定询问哪位图书管理员。问题在于?它为每一个词都抛一次硬币。所以,它在读到“苹果”时询问图书管理员 A,读到“派”时询问 B,读到“饼皮”时询问 C。每当它切换时,它都必须跑下楼,把图书管理员 B 踢出去,再把图书管理员 C 拉上来。这种“来回奔波”非常缓慢,以至于 AI 花在取回图书管理员上的时间比阅读故事本身还要多。
这篇论文介绍了一种名为 StickyMoE 的新方法,旨在训练这些模型,让它们不再如此疯狂地变换决策。通过这种方法,模型学会了变得“粘性”(sticky)。如果它在读到“苹果”时询问了图书管理员 A,那么只要主题合理,它就会被鼓励在读到“派”和“饼皮”时也继续询问图书管理员 A。
核心发现:要在训练时解决,而不是事后修补
作者尝试了几种方法来解决这个“来回奔波”的问题,以下是他们的发现:
- “事后”修补失败了: 他们尝试拿一个已经训练好的模型,仅仅通过“微调”那个抛硬币的机制(路由),使其不再那么随机。他们称之为 ReMoE。结果是:没用。 切换率几乎没有变化(绝对变化量小于 0.5%)。作者认为这是因为图书管理员(专家)已经被训练成了针对特定、孤立词汇的专家。如果你想让一个“硬币投掷器”变得更具“粘性”,但专家本身还没准备好处理长期的连续话题,那是不行的。这就像试图通过只改变短跑运动员的起跑姿势,来教他成为一名马拉松选手;肌肉(专家权重)是为短跑爆发而生的,而非长跑。
- “硬性”修复过于僵化: 他们还尝试了一种方法,即使用严格的规则强制模型在一定数量的词语内固定使用一位图书管理员(“硬窗口”法)。虽然这减少了切换,但也让 AI 的回答质量大幅下降(使“困惑度”上升了高达 6.8%,针对中型模型)。这就像是强迫一位图书管理员去读完一整本小说,即使主题已经完全转向了另一种类型;故事的质量因此受损。
- “粘性”方案奏效了: 获胜的方法 StickyMoE 在训练的第一步加入了一个温和的“一致性惩罚”。它告诉模型:“嘿,如果你在两个相邻的词之间更换了专家,那会受到一点惩罚。”这鼓励模型在学习语言的同时,也学会了保持连贯性。
结果:具有“粘性”更好
当他们在 WikiText-2 数据集(维基百科文章集合)上对小型和中型模型进行测试时,结果非常明确:
- 更少的切换: 通过调节一个单一的旋钮(称为 λ 的数值),他们可以将模型更换专家的次数减少高达 59%。例如,在中型模型上,切换率从 0.71(几乎每次都在切换)降到了 0.29。
- 更好的速度(模拟): 由于模型切换减少了,他们模拟了一个可以容纳 2 位专家的缓存(桌面架子)。“缓存命中率”(即正确的图书管理员已经在桌上的频率)从 0.54 跳升至 0.88。这意味着模型需要跑下楼去地下室的次数比之前减少了 3.92 倍。
- 更好的质量: 令人惊讶的是,在中型模型上,使用适度的“粘性”(λ = 0.05)实际上让 AI 变得更聪明了,它将“困惑度”(衡量混乱程度的指标)降低了 4.1%。模型意识到,保持对主题的专注有助于它更好地理解上下文。
- 没有崩溃: 一个巨大的担忧是模型会变得“懒惰”,从而只使用一位图书管理员。但“利用熵”(Utilisation Entropy)保持在高位(在最大值 2.0 bits 中的 1.92 bits 以上),这意味着所有 4 位专家仍在使用中。模型并没有变懒,它只是变得更有组织了。
什么行不通(以及为什么)
论文明确排除了在模型构建完成后再解决此问题的想法。ReMoE 方法(对旧模型进行微调)被证明是无效的,因为“专家表示”(图书管理员的大脑)已经由一个并不关心是否能持续关注主题的训练过程所塑造。你无法后期补救“局部性”,你必须从一开始就将其植入其中。
他们还指出,模型的第一个层(第 0 层)是最难实现“粘性”的。即使使用最好的设置,该层的切换率仍然高于 0.49。这是因为第一层看到的是原始词汇,在它们与上下文融合之前,它们还没有被混合。因此,“苹果”和“派”在这一阶段看起来可能确实截然不同。
总结
论文表明,如果你希望你的 AI 在内存有限的设备上运行得更快,你不应该仅仅尝试用聪明的缓存规则,或者试图在模型建成后再去修复它。相反,你应该从第一天起就训练模型的“粘性”。通过对相邻词语之间频繁更换专家施加简单的惩罚,你会得到一个天然能保持主题一致、需要更少往返于缓慢地下室、并且能更好地理解故事的模型。
作者承认,这是基于模拟以及在特定数据集(WikiText-2)和中小规模模型(最高达 22M 参数)上的训练。他们暗示,随着模型规模的增大,这种“粘性”可能会表现得更好,但尚未在数十亿参数的大型模型上进行测试。他们还注意到,目前该方法并不知道句子何时结束,因此它可能会在段落分隔处表现得“过于粘性”,这是未来研究需要解决的问题。
您所在领域的论文太多了?
获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。