MoE专家共同激活:重排输入带来轻松吞吐量提升
Doubleword的批量推理服务通过重排输入顺序,使Mixture-of-Experts模型在推理时减少专家加载次数,从而在不修改模型或内核的情况下实现吞吐量提升。实验表明,使用嵌入模型对提示进行聚类可减少约15%的专家加载,进而带来显著的加速效果。
Doubleword的批量推理服务通过优化输入顺序,在不修改模型或内核的前提下提升了Mixture-of-Experts(MoE)模型的推理吞吐量。MoE模型虽然因稀疏专家权重而训练快速,但在推理时,每个请求在不同层需要加载不同的专家权重,导致内存带宽成为瓶颈,吞吐量低于密集模型。
为解决这一问题,双字科技提出将相似提示重新排序并分批处理,使得同一批次内的请求尽可能共享专家权重,从而减少每轮前向传播中需要加载的专家总数。实验采用Qwen/Qwen3.5-35B-A3B模型(256个专家,每层选Top-8,共40层MoE层),对1000条典型提示进行测试。通过贪婪算法构建的“专家感知”批次(即每个批次内专家重叠最大化)相比随机批次减少了21.3%的专家加载次数。
由于实际推理时无法预知专家激活情况,研究团队使用BAAI/bge-small-en-v1.5嵌入模型,基于提示嵌入的余弦相似度进行聚类。这种启发式方法节省了12.4%的专家加载,达到了最优批次(oracle)效果的58.3%。进一步,通过微调BGE模型,使其嵌入向量的余弦相似度更贴近专家激活的Jaccard重叠度,在3万个Perfectblend样本训练后,专家加载节省提升至15.6%,达到oracle的73.6%。
在更困难的Wildchat聊天数据集上(仅包含聊天提示,同质性高),微调模型仍能节省12.3%的专家加载,优于简单按类别分批的基线。这些节省直接转化为实际时间节省:由于MoE操作仅占前向传播的43%,12.3%的专家加载减少对应5.4%的墙钟时间加速。
该方法在专家并行(expert parallelism)环境下同样有效,但加速效果受专家分片方式影响。由于不同专家的加载节省程度不同,最终加速受限于最慢的并行等级。一种可能的解决方案是将专家按批次重新定位,使每个等级独立处理子批次。
未来工作可探索连续提示排序(而非固定批次),以更好适配连续批处理系统;或进一步训练模型以缩小与oracle的差距。总之,输入重排是一种零成本优化,仅需在推理引擎前增加聚类步骤,即可在内存带宽受限的MoE服务场景中获得显著吞吐量提升。