← 最新论文
🤖 machine learning

EasyBalance: Cross-Layer Load Balancing in Distributed MoE Inference

EasyBalance 是一种用于分布式混合专家(MoE)推理的跨层负载均衡策略,它通过在不要求专家复制、迁移或修改专家-设备映射的情况下,通过贪婪地调度和延迟跨层的工作负载,来缓解由倾斜路由分布导致的 GPU 空闲问题。

原作者: Yize Wu, Ke Gao, Ling Li, Yanjun Wu

发布于 2026-08-11
📖 1 分钟阅读☕ 轻松阅读

原作者: Yize Wu, Ke Gao, Ling Li, Yanjun Wu

原始论文采用 CC BY 4.0 许可(http://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明

想象一下,你正在经营着一家规模宏大、高速运转的图书馆,成千上万的学生(Token/标记)需要从一本巨大的百科全书中寻找答案。这本百科全书并非由一个人编写,而是一个“混合专家模型”(Mixture of Experts, MoE),这意味着内部有数百个不同的专业作家(专家)。当学生提出问题时,一位聪明的图书管理员(路由/Router)会迅速决定哪几位作家最适合回答这个问题。为了让这个过程变得超级快,图书馆将这些作家分散到了许多不同的计算机(设备)上并行工作。

然而,这里有一个问题:并不是所有的问题都是一样的。有时,一大群学生提出的问题都恰好只有某一位特定的作家才知道答案。这位作家的计算机就会被挤爆,导致速度变慢;而其他那些作家没那么忙的计算机,则只能在那儿无所事事地干等着,等待那个慢吞吞的家伙完成任务。这种“等待游戏”浪费了大量的能量和时间。多年来,解决方案一直是雇佣更多的作家或者移动他们来平衡负载,但这会占用太多内存,且难以在运行中即时完成。

于是有了 EasyBalance,一种聪明的策略,它无需雇佣新人或搬动家具,就解决了这个等待游戏。它并没有试图去修复作家本身,而是改变了学生提问的时间。它意识到,虽然图书馆通常是按层级处理问题的,但实际上可以让不同层级的学生同时进行工作。通过这种混合与匹配,繁忙的作家得到了喘息的机会,因为来自一个组的“重型”问题会被来自另一个组的“轻型”问题所平衡。结果是,计算机保持忙碌状态,等待时间消失了,整个图书馆的运行速度也大大提升了。

问题所在:“等待最慢者”规则

在人工智能领域,特别是在这些“混合专家模型”中,系统设计得极其高效。它只为每条数据激活少量的“专家”。但在分布式设置中——即这些专家分布在多块图形显卡(GPU)上时——情况会变得很混乱。

想象一场接力赛,只有当所有人都完成了自己的赛程后,接力棒才会传递给下一位跑者。如果其中一名跑者背着一个沉重的背包(一个由于接收了过多 Token 而变得“过热”的专家),他就会拖慢整个团队。其他已经完成了轻量化负载的跑者,只能站在原地等待。在论文的术语中,这被称为负载不均衡(Load Imbalance))。系统被单个最慢的设备卡住了,导致其他设备处于闲置状态。

之前的尝试包括专家复制(Expert Replication)(为繁忙的作家雇佣额外的副本)或专家迁移(Expert Migration)(将作家移动到不同的计算机上)。虽然这些方法有效,但它们有明显的缺点:它们消耗大量内存,增加通信时间,且缺乏灵活性。如果你改变了图书馆接收问题的类型(任务),旧的计划可能会彻底失效。

解决方案:EasyBalance

作者 Yize Wu 及其同事提出了一种全新的方法,称为 EasyBalance。他们的核心思想是停止尝试修复作家与计算机之间的映射关系,转而修复工作的调度方案

他们依赖于两个关键洞察:

  1. 跨层冗余(Cross-Layer Redundancy): 尽管模型的特定层级拥有特定的专家集,但其他层级的专家已经存在于计算机的内存中,随时待命。对于当前任务而言,它们是“天然冗余”的。你不需要雇佣新的副本;你只需要使用现有的即可。
  2. 工作量组合(Workload Combination): 论文建议,你可以同时运行来自模型不同层级的微批次(Micro-batches,即一小组问题)。尽管模型通常是逐层处理的,但数学证明结合这些组是安全的。事实上,这样做往往更好。如果 A 组在计算机 1 上有重负,而 B 组在计算机 2 上有重负,将它们合并运行可以平衡总重量。出现“最坏情况”(即两组同时冲击同一台计算机)的概率在统计学上是很低的,尤其是当你增加更多计算机时。

它如何运作:“智能调度器”

EasyBalance 扮演着智能交通控制员的角色。它不再是先发送来自第 1 层的所有学生,然后再发送第 2 层的所有学生,而是观察当前的拥挤情况。它会挑选来自不同层级的学生组合在一起运行。

  • 它选择一部分微批次立即执行。
  • 如果某些批次会导致瓶颈,它会将它们推迟(等待)。
  • 它在执行过程中不会改变哪个专家住在哪台计算机上。

这意味着系统可以即时适应任何新类型的任务,而无需重新配置硬件或内存。这就像是一个餐厅厨房,因为它发现烤架很忙而沙拉台很闲,所以决定同时制作汉堡和沙拉,而不是等烤架完成所有工作后再开始做沙拉。

结果:更快且更少浪费

研究人员在包括 Qwen3-30BMoonlight-16B 在内的多个大型模型上进行了测试,并在 8 块 GPU 上运行。他们使用了名为 LongBench 的基准测试,该测试涵盖了阅读理解和代码生成等多种任务类型。

研究结果一致且令人印象深刻:

  • 减少闲置: EasyBalance 将 GPU “利用率不足”(即计算机无所事事的时间)降低了大部分超过 40%。在许多情况下,闲置时间从大约 0.35(35% 浪费)降到了约 0.2(20% 浪费)。
  • 更快的推理: 由于计算机不再互相等待,获取答案的总时间(端到端延迟)显著下降。
  • 灵活性: 与之前需要预先知道特定任务才能设置专家的模型不同,EasyBalance 在测试的全部 13 种任务(从常识问答到代码生成)中表现同样出色。

论文还探讨了不同的“调度”策略(即系统如何决定混合哪些组)。他们发现,一种名为 MaxUtil(试图最大化每块 GPU 利用率)的策略效果最好,但即使是更简单、更快的策略,如 CumUtil(如果能提供帮助,则逐个添加批次),也比什么都不做要好得多。

为什么这很重要

EasyBalance 最令人兴奋的部分在于它不需要任何额外的内存或复杂的重新配置。它直接利用现有的设置。随着 AI 模型变得越来越大、越来越复杂,某些计算机在等待其他计算机工作的现象只会愈发严重。这篇论文表明,通过仅仅在“何时”运行工作上变得更聪明,而不是纠结于把专家放在“何处”,我们可以让这些庞大的 AI 系统变得更加高效。

作者指出,虽然他们的方法非常有效,但它依赖于一种统计上的可能性,即重负载不会总是同时撞击同一台计算机。在针对各种模型和任务的测试中,这一策略始终能够加速推理,这证明了有时解决瓶颈的最佳方式是让工人们互相协作,共同冲向终点线,而不是试图移动工人本身。

您所在领域的论文太多了?

获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。

试用 Digest →