Token Lab搜索

SYSTEMS / ENGINEERING BRIDGE

MoE:激活计算量不等于总内存

审计路由、容量、通信与专家负载不均衡。

学习指南与本课目录LEARNING CONTRACT

理解 → 实现 → 研究

目标:解释本课机制、复现一个例子、测试一个失败案例。读完不自动代表掌握。

机制与假设

稀疏专家路由为每个 token 激活一部分专家。存储参数可能远多于激活参数,因此激活量低不意味着单卡可容纳。DeepSeek-V2 结合稀疏专家与注意力缓存压缩,设计消融时应拆开两者。参数量本身不能推出具体加速比。

Text / 原始公式
assignments = tokens × top_k
mean_assignments_per_expert = tokens × top_k / experts
raw_weight_bytes = total_parameters × bytes_per_parameter

手算例子

128 token、8 专家、top-2 时有 256 次分派,每专家平均 32 次。容量 40 的专家若收到 60 次,则超出 20 次,必须明确丢弃、重路由或容纳策略。假设总参数 16B、每权重 2 字节,即使仅激活 4B,原始权重仍占 32 GB,尚未计额外开销。

实现练习

构造 token 数相同的均衡与偏斜路由直方图。报告最大负载、溢出、每专家利用率,以及指定部署下通信字节数。任何丢 token 策略都应重新比较质量。

交付代码、固定种子、原始结果与一个反例。这里是实验规范,不是已运行的 GPU benchmark。

为什么稀疏模型小 batch 时可能慢?

路由、通信和小型专家矩阵乘法可能占主导。应测设备利用率与传输时间,不能把 FLOP 节省当作延迟节省。

arXiv ↗ · PDF ↗

原创教学例子,来源核对于 2026 年 10 月。这些是与工程相关的基础机制,并非覆盖所有最新模型。

系统课程与检查点 →工程专题目录 →
MATHEMATICAL REVIEW · 2026-10-26

假设、参考实现与验收

激活参数量不是驻留权重总内存。路由容量、token 不均衡、通信和专家精度均影响运行;逻辑分派字节不同于实测网络流量。

已复核公式条件、单位及算例。实现隔离一个数值机制,不训练完整策略,也不控制真实硬件。

token 与 top-k 专家路由 → 分派 token 表示 → 专家计算与回传流量 → 区分激活计算与驻留内存
机制图:从上到下跟踪每次变换。

运行前:预测一个边界情况

256 次专家分派单向传输 2 MiB;回传另计,且未计协议开销。

提示:隔离假设

固定基线输入,只改变一个参数或边界;同时比较数值与声明单位。单例通过仅验证该样例。

最小可运行算例

将算例及所链接模块保存在同一目录。使用 Node.js 22 或更高版本,然后运行 node moe-budgets.mjs. 无需第三方运行依赖。

const solve=()=>{
const tokens=128,topK=2,width=4096,bytes=2;
return [tokens*topK,tokens*topK*width*bytes/2**20];
};
const actual=solve();
const expected=[256,2];
if(JSON.stringify(actual)===JSON.stringify(expected)){console.log('PASS',actual)}else{
const a=[actual].flat(), b=[expected].flat();
if(a.length!==b.length||a.some((v,i)=>!Number.isFinite(v)||Math.abs(v-b[i])>1e-10))throw Error('Numerical mismatch');
console.log('PASS within 1e-10',actual);
}
参考输出——先预测再展开
[
  256,
  2
]

测试与迁移

256 次专家分派单向传输 2 MiB;回传另计,且未计协议开销。

在下方笔记记录输入、代码版本、期望值和实测值;再构造违反上述假设的反例,解释原结论为何不再成立。

下载完整代码包(.tar.gz) · 完整参考代码与回归检查

预测、检验与证据记录

展开答案前先预测一个结果;练习后记录差异和迁移测试。记录仅存本地,在不同语言版本间共用。

打开记录/导出/清除 →

数学复核范围逐篇记录,不代表完成论文实证复现;可在笔记中记录疑似错误。 复核范围