60 秒回答模板

大模型里的 MoE 通常加在 Transformer block 的前馈网络位置,也就是用多个 expert FFN 替换或扩展原来的 dense FFN,再用 router 根据 token 表示选择 top-k 个专家。它的好处是总参数量可以很大,但每个 token 只激活少量专家,所以在相近计算量下提升模型容量。训练上,MoE 可以扩展容量、让专家学到不同模式,但会带来 router 训练、负载均衡损失、capacity factor、token dropping、专家塌缩、跨卡 all-to-all 通信和稳定性问题。推理上,稀疏激活理论上降低每 token 计算,但所有专家权重仍要存储或分布在多卡上,请求 batch 还会因为路由不均衡出现通信和尾延迟。工程评估不能只看参数量,要看质量、激活参数、显存、通信、tokens/s、P99 延迟、专家利用率和成本。

考点 Transformer block
难度 真实面经题
回答目标 讲清 MoE 训练和推理取舍

深入解析

01

MoE 通常放在 FFN 位置

Transformer block 里计算量很大的部分是前馈网络。LLM MoE 常见做法是把 dense FFN 替换成多个专家 FFN,每个 token 经过 router 选择一个或多个专家处理。注意力层通常仍保持共享,MoE 的主要目标是增加容量而不让每个 token 都经过全部参数。

02

Router 决定稀疏激活

Router 会根据 token hidden state 给专家打分,选择 top-1 或 top-2 等少数专家。这样模型拥有大量总参数,但单个 token 只激活一小部分参数。回答时要区分 total parameters 和 activated parameters,因为 MoE 的效率讨论主要来自激活参数较少,而不是总参数少。

03

训练收益是容量扩展

训练侧的收益是用更大的专家容量覆盖更多语言、任务、风格和知识模式。在相近 FLOPs 下,MoE 可能比同计算量 dense 模型更有容量。但这依赖路由是否学得好、专家是否分工有效、数据是否足够多样,以及训练系统能否承受通信开销。

04

训练代价是路由和均衡

MoE 训练难点包括专家负载不均衡、热门专家过载、冷门专家学不到东西、capacity 超限导致 token dropping、router 抖动和训练不稳定。通常会加入 load balancing loss、router 正则、capacity factor、专家并行和通信优化。只说加专家提升效果是不完整的。

05

推理收益不等于免费加参

推理时每个 token 只走少数专家,理论计算量可控,但所有专家权重需要存储,专家分布在多卡时还会有 all-to-all 通信。batch 内 token 路由到不同专家,会造成专家负载不均和尾延迟。小 batch、低延迟场景下,MoE 的调度复杂度可能抵消一部分稀疏收益。

06

评估要看系统和模型两边

模型侧看困惑度、下游任务、长尾能力、多语言和安全回归;系统侧看 tokens/s、单 token 延迟、P99、显存、通信量、专家利用率、批处理效率和服务成本。面试中最好说明 MoE 适合追求大容量和高吞吐的场景,但对低延迟、部署简单和小规模服务不一定划算。

易错点

  • 把 MoE 答成推荐系统里的 MMoE,不区分 LLM 中 FFN 专家和推荐多任务专家。
  • 只说总参数变大,没有说明每个 token 只激活少量专家。
  • 认为 MoE 推理一定更快,忽略专家权重存储、跨卡通信和路由不均衡。
  • 漏掉 router、top-k gating、capacity factor 和 load balancing loss。
  • 把专家分工说成天然自动形成,没有讨论专家塌缩和冷专家问题。
  • 只看模型指标,不看 tokens/s、P99、GPU 利用率、通信和服务成本。

面试官追问

MoE 为什么一般放在 FFN 而不是 attention?

FFN 参数和计算占比高,替换成专家能直接扩展容量;attention 还承担 token 间交互,改成稀疏专家更复杂。实际架构可以有变体,但主流回答应先讲 FFN 专家。

Top-1 和 Top-2 routing 有什么区别?

Top-1 每个 token 只走一个专家,计算和通信更省,但容错和表达可能弱一些;Top-2 多走一个专家,表达和稳定性可能更好,但计算、通信和合并成本更高。

什么是专家负载不均衡?

Router 可能把大量 token 分给少数热门专家,导致这些专家过载,其他专家训练不足。结果是吞吐下降、token 被丢弃或模型质量受损。

MoE 推理为什么可能 P99 变差?

因为不同请求和 token 被路由到不同专家,某些专家或通信链路会成为热点。即使平均计算量低,尾部请求也可能等待慢专家或跨卡通信。

MoE 和模型蒸馏是什么关系?

MoE 是架构层面的稀疏专家扩容,蒸馏是训练方法。MoE 模型可以被蒸馏成较小 dense 模型,也可以用蒸馏辅助训练,但二者不是同一个概念。

如何判断 MoE 是否值得上线?

比较同等成本下的质量和服务指标:下游效果是否提升,tokens/s 和并发是否增加,P99 是否可控,专家利用是否均衡,部署复杂度和成本是否可接受。