DeepSeek 为什么快、为什么便宜:从 Dense 到 MoE 看推理成本

摘要(先看结论)

  • 你觉得 DeepSeek “快”,本质上是每生成一个 token,参与计算的参数更少(更少的矩阵乘法、更少的显存读写),所以吞吐更高。
  • 你觉得 DeepSeek “便宜”,价格当然是产品策略,但底层离不开一个事实:同等质量下,每 token 推理成本更可控,才有更大的降价空间。
  • 它引发市场震动(包括 NVIDIA 股价波动)的核心逻辑不是“GPU 不重要了”,而是:单位 token 的算力需求曲线发生变化,市场会重新估算供需与毛利。
  • 这篇文章只抓住一条最关键主线:Dense(稠密)→ MoE(混合专家),把“为什么快/便宜”讲清。

MoE 是 Mixture of Experts 的缩写,直译就是“混合专家”。


0. 先把问题说清:你在问的“快”和“便宜”是什么

这里说的“模型快/便宜”通常指两件事:

  • :同样硬件下单位时间能吐出更多 token(吞吐),以及单请求的响应时间(延迟)。
  • 便宜:同样质量下单位 token 的推理成本更低,从而 API 单价更容易降下来。

所以接下来所有解释都围绕一个问题:

生成一个 token,到底花钱在哪?MoE 又是怎么把这笔账“改写”的?


1. 先从最基本的计算单元开始:线性层 + 激活(FFN)

Transformer 里最“烧钱”的计算之一,就是大量的线性变换(矩阵乘法),尤其是 FFN(前馈网络)部分。

你可以把 FFN 粗暴理解成:

  • 输入是一个向量(当前 token 的隐藏状态)
  • 经过几次矩阵乘法 + 激活
  • 输出还是一个向量(继续送去下一层)

无论你叫它“线性层”“全连接层”,本质都在做大规模矩阵乘法。矩阵越大、层数越多,推理越贵。


2. Dense(稠密)模型:每个 token 都跑完整个大网络

Dense 的核心特点很简单:

  • 模型有一套很大的参数矩阵
  • 每个 token 的前向推理都会把这套参数几乎全跑一遍

这带来两个直接后果:

  • 好处:表达能力强,参数都“在场”,效果稳。
  • 坏处:推理时每步都要读大量权重、做大量矩阵乘法,吞吐容易被卡住。

换句话说:无论你问的是“某个人喜欢吃什么”还是“一加一等于几”,Dense 都会让同一套大网络参与计算。


3. MoE(混合专家):把大网络拆成很多“专才”,每次只用其中一小部分

MoE 的直觉可以用“公司组织架构”类比:

  • Dense:一个全能的大部门,所有需求都进同一个大部门处理。
  • MoE:把大部门拆成很多小组(Experts 专家),再加一个“调度台”(Router 路由器)决定本次应该叫哪几个小组来处理。

3.1 MoE 的结构:Experts + Router + 加权求和

  • Experts(专家):很多个小 FFN,每个参数量比 Dense 的 FFN 小很多。
  • Router(路由层):一个小网络(常见是线性层),给每个 expert 打分。
  • Top‑K 选择:只挑分数最高的 K 个 expert 参与计算(K 通常远小于专家总数)。
  • 加权求和:把 K 个 expert 的输出按权重混合起来,得到本层输出。

3.2 讲透 Top‑K 路由:一条 token 在 MoE 里经历了什么

先把“输入是什么”说清:Router 看到的不是原始文本,而是某一层的隐藏向量(可以理解为“这个 token 在当前上下文下的语义表示”)。MoE 的路由决策就是基于这串数字做的。

假设我们有 256 个专家,每次只选 Top‑2(K=2),那么对“同一个 token 的一次前向计算”,流程是:

  1. 打分(Router)

    • Router 会给 256 个专家各算一个分数(score)。
    • 这些分数只用于“选谁来算”,不是最终答案。
  2. 选人(Top‑K)

    • 取分数最高的 2 个专家,比如 Expert#17 和 Expert#203。
    • 其余 254 个专家在这一步完全不参与计算(这就是“激活参数更少”的核心来源)。
  3. 分配权重(归一化)

    • 需要把 Expert#17 和 Expert#203 的分数变成权重,常见做法是让两者的权重加起来等于 1(你可以把它理解成“17 号占 70%,203 号占 30%”这样的比例)。
    • 这一步的目的,是让最终输出是两位专家输出的“加权平均”,而不是简单二选一。
  4. 专家各算各的(Experts)

    • 把同一个隐藏向量分别送进 Expert#17 和 Expert#203(本质上就是两个更小的 FFN)。
    • 得到两个输出向量(长度和输入一样,方便继续往后传)。
  5. 融合(Mixture)

    • 用刚才的权重对两个输出向量做加权相加,得到 MoE 层的输出。
    • 这一层结束,输出再交给 Transformer 的后续结构继续算。

把这段话讲给初学者,可以用三句话收尾:

  • Dense:每个 token 都要跑完整个大 FFN。
  • MoE:每个 token 只跑 K 个小 FFN(专家)+ 一个小 Router。
  • 所以 MoE 的“总参数”可以很大,但“每步实际计算量”可以很小。

3.2.1 你可能会问:专家是人分配的吗

不是。工程上不会人为规定“17 号专家负责数学、203 号专家负责写作”。更常见的情况是:

  • 训练过程中,Router 学会了对不同输入更偏向不同专家;
  • 专家们在被路由到的样本上不断更新,逐渐形成“各自擅长的区域”;
  • 人类通常无法直接解释“某个专家到底学会了什么”,只看到它在某类输入上更常被选中。

3.2.2 你可能又会问:会不会所有 token 都挤到少数专家上

会,这叫“路由塌缩”(很多输入都选同一小撮专家),后果是:

  • 热门专家被打爆,吞吐反而下降;
  • 冷门专家几乎不训练,浪费参数。

所以实际 MoE 训练里通常会加“负载均衡”类约束,让路由分布更均匀一些(不同实现细节不一样,但目标一致:别让专家分工彻底崩掉)。

3.3 为什么 MoE 让推理更快

因为 参与计算的参数变少了

口播里引用的一组常见对比口径是:

  • MoE 总参数更大(例如把 FFN 拆成很多专家,总参数堆上去了)
  • 但每 token 实际参与计算的“激活参数”(active parameters)更小(只算 Top‑K 专家)
  • 所以推理吞吐显著提升(典型叙述是“用更多参数换更快速度”)

这就是 MoE 的“空间换时间”版本:

  • 空间:总参数更多(存储更大)
  • 时间:每步只算一部分(计算更少)

4. 为什么 token 会更便宜:不是“魔法”,是成本结构变了

很多人把“便宜”理解成“厂商良心”,但更工程化的理解是:

如果每生成一个 token 的平均成本更可控,那么定价才更有弹性。

MoE 影响成本的路径主要有两条:

  • 计算量下降:每 token 只激活一小部分专家,矩阵乘法规模变小。
  • 带宽压力下降:每步需要读的权重更少,显存/内存带宽更容易撑住吞吐。

当然,真实系统里还有很多工程手段会共同作用(例如 KV cache、批处理、算子融合、量化等)。但 MoE 是最容易解释、也最能改变“每 token 参与计算的参数规模”的那一招。


5. 为什么 NVIDIA 股票会波动:市场在重算“单位 token 的算力需求”

这类波动背后的逻辑通常是:

  • 如果推理端“每 token 的有效算力需求”下降得足够快,
  • 市场就会重新估算:未来算力需求增长到底是“靠模型规模继续堆”还是“靠效率提升”来驱动。

但这不等于“GPU 需求消失”:

  • 需求可能从“单 token 更贵”变成“更大规模使用、更多场景落地”
  • 也可能从“推理”重新回到“训练/多模态/更长上下文”等方向继续吃算力

你可以把它理解成:不是需求没了,是结构和节奏可能变了


6. 给工程同学的落地建议

6.1 选型:什么时候更值得关注 MoE

  • 你做的是“高并发、多请求、吞吐敏感”的场景(例如客服、内容生成、批处理摘要)
  • 你希望在同等硬件下把 token 产出拉上去

6.2 评估:不要只看“总参数”,要看“激活参数”

MoE 很容易把人带沟里的一点是:

  • 总参数大 ≠ 每步计算大

如果你在做成本评估,更应该问:

  • 每 token 实际激活了多少专家(Top‑K 是多少)
  • 每 token 实际参与计算的参数规模大概是多少

7. 自检清单(读完你应该能回答)

  • Dense 和 MoE 的核心差异是什么?答:Dense 每个 token 都跑完整个大网络;MoE 把网络拆成多个专家,每个 token 只激活 Top‑K 个专家 + 一个 Router。
  • MoE 为什么能更快:是因为“总参数更少”还是“激活参数更少”?答:主要是“激活参数更少”,每步参与计算的权重更少,矩阵乘法与带宽压力都更小。
  • Router(路由层)在 MoE 里负责什么?答:根据当前 token 的隐藏向量给各专家打分,选择 Top‑K 专家并分配混合权重。
  • Top‑K 选择带来的收益和代价分别是什么?答:收益是每步计算更少、吞吐更高;代价是路由可能塌缩/负载不均,需要额外约束与工程处理,同时未被选中的专家在该步不贡献。
  • “token 便宜”在工程上对应哪两类成本下降?答:一类是计算量下降(更少矩阵乘法),另一类是内存/显存带宽压力下降(更少权重读写),从而单位 token 成本更可控。
Logo

中国智能体开发者社区,聚焦智能体与大模型开发,提供前沿资讯、实用工具链、开源项目及行业案例。通过技术沙龙、开发者大赛等活动,促进经验交流与协作,助力开发者快速构建创新智能应用。

更多推荐