专家路由——把稠密模型改成 MoE
这一章讲三件事: 为什么「每个 token 都动用全部参数」是浪费、三种动态推理怎么省;怎么把一个稠密模型改造成双专家 MoE 并让路由器学会分诊;以及怎么把第七章特化好的模型直接移植进来当专家——连训练都省一半。 这是全书最后一站:前面所有技术的产物——剪过的模型、特化过的专家——在这里被组装成一个会「按 token 分诊」的系统。
1. 这一章讲什么
稠密模型有个天生的浪费:不管在回答「巴黎是哪国首都」还是「五十页报告的逐条分析」,每个 token 都跑完同样的全部参数——它是按最难的情况设计的架构,而多数输入用不着1。动态推理让模型在运行时决定「算什么、跳过什么、把谁送去哪」。三种思路里,本章只深讲最成熟的 Mixture of Experts(MoE,专家混合):Mistral 用 Mixtral 8x7B 证明了它能出实验室,DeepSeek 又把它推向「许多小专家」的细粒度形态2。
它在全书链条里的位置: 它是终点站,也是装配车间——第 07 章那个临床抽取专家,本章会被整个移植进 MoE 当器官用。
2. 顶层全景
三种动态推理( 本章只做第三种 )
早退:信心够了就提前出层(看 logits 集中度)
丢词:无关 token 逐层淘汰(看注意力权重,直接省 KV cache)
MoE:每个 token 路由到最合适的专家(可训练的线性路由器)
MoE 块 = 专家 × N + 路由器(一个 Linear 层)
原书的造法(sparse upcycling):
专家 0 = 原 MLP,冻结,保通用
专家 1 = 原 MLP 的拷贝,可训,学领域
路由器 = 从零训的 Linear(hidden → N)
图说:三种动态推理共同的短板是与 vLLM/TGI 这类
标准推理引擎不兼容——MoE 是其中唯一已获广泛支持的[^3]。