← 返回 AI 基础 首页 / 算法与AI / 模型架构 · DeepSeek 与 MoE
AI 基础进阶 · 模型架构

DeepSeek 与 MoE:用"每次只请两个专家"把万亿模型跑便宜

模型越大越聪明,但稠密模型(Dense)把上千亿参数全压在一次前向传播里,显存和算力贵到离谱。DeepSeek 给出的答案是 MoE(混合专家):模型里养一大批"专家小网络",每个 token 只叫醒最对口的两三个,参数总量很大、实际算力却省一大半。这一课讲清 MoE 怎么路由、DeepSeek V3 的 MLA 省了什么、R1 又怎么靠强化推理追上 GPT-o。

① 本章怎么学(4 步走,约 50 分钟)

1先懂稠密 vs 稀疏(12 分钟)
读②③:为什么全参数同时算很贵。
2看懂 MoE 路由(12 分钟)
读③:router 打分、top-k 选专家。
3看懂 MLA 与 R1(16 分钟)
读④⑤⑥:省 KV、强化推理、怎么选。
4自测口述(10 分钟)
做⑨折叠题,背⑪口诀。
本章小目标学完你要能:① 说清 MoE 的 router/top-k 是什么;② 讲出 DeepSeek V3 里 MLA 省的是哪部分;③ 解释 R1 为什么靠 RL 就能做长推理;④ 对比它和 Llama/Mistral 这类稠密模型差在哪。

② 先建立直觉:稠密模型为什么贵

稠密模型(Dense)的意思是:来一个词,模型里所有参数都要参与算一遍。Llama、Mistral、Qwen 小尺寸版本都是这种。好处是简单、好训、好部署;坏处是——你想更聪明,就只能把参数从 7B 加到 70B、400B,每加一份,每次推理的算力就同比例涨一份。

MoE 的思路是"会诊但不全会":模型总参数可以做到上千亿,但每来一个 token,只激活其中一小撮(比如 671B 总参数里只算 37B)。像一个医院养了 128 个科室专家,病人挂号时分诊台(router)只把他分给最对口的 2 个医生看,其余 126 个专家今天休息、不占算力。

对比稠密模型 DenseMoE 稀疏模型
每次前向激活的参数全部参数仅 top-k 个专家(约 1/5~1/8)
总参数量= 激活参数远大于激活参数(如 671B 总 / 37B 激活)
训练成本随规模线性涨总参数大,但单次算力省
推理显存小模型友好要装下所有专家权重,显存占用大
代表Llama 3、Mistral、Qwen 小尺寸DeepSeek-V3、Mixtral、GPT-4 传闻
一句话公式有效算力 ≈ 激活参数,而不是总参数;MoE 就是把这两个数字掰开。

③ MoE 核心:Router 怎么"分诊"

MoE 层的关键是一个叫 router(路由器)的小网络。它对每个 token 做三件事:

1打分
对当前 token 的向量,给每个专家打一个分数(一次线性变换 + softmax)。
2选 top-k
分数最高的 k 个专家被选中,DeepSeek 默认 k=2,即每 token 只请 2 个专家。
3加权求和
两个专家各自算一遍,再按 router 给的权重加权合并成输出。

DeepSeek V3 每层有 256 个路由专家 + 1 个共享专家:共享专家所有 token 都用(学通用知识),路由专家按 top-2 被挑选(学分工专长)。这样既不浪费容量,又避免不同 token 挤在同一批专家上。

token 向量 Router 打分 选出 top-2 专家 专家 1 + 专家 5 各自算一遍 加权合并输出 其余专家休息
读法:token 进来 → router 分诊 → 只叫醒对口的两个专家算 → 加权合并,其余专家这一轮不参与。
为什么需要"负载均衡"如果 router 总把活儿分给那几个明星专家,其余专家永远学不到东西。训练时要加一个辅助损失,强迫流量均匀摊到所有专家上——这叫 load balancing(负载均衡)。

④ DeepSeek V2/V3 的两大改造:MLA + MoE

MLA(多头潜在注意力):把 KV Cache 压小

长对话贵,主要贵在 KV Cache——每生成一个词都要把之前所有词的 K、V 存下来。传统 MHA(多头注意力)头数多、KV 也大。MLA 的思路是:不直接存完整 K/V,而是先把它压缩成一个低维"潜向量"存着,用时再还原。同样长度下,KV Cache 能压到原来的几分之一,长上下文便宜一大截。

MoE 层:训练便宜,推理聪明

DeepSeek-V3 总参数约 671B,但每个 token 只激活约 37B。也就是说:训练它时学到了 671B 的知识广度,推理时却只花 37B 的算力。这就是它"便宜又强"的根本原因。

技术点解决什么痛大白话
MoE + top-2 路由大模型训练贵总专家很多,每次只请两个
共享专家通用知识重复学所有人共享一个全科大夫
MLA长上下文 KV Cache 爆显存把记忆先压缩再存档
Multi-Token Prediction训练收敛慢一次预测后面几个词,加速训练

⑤ DeepSeek R1:不靠堆参数,靠强化学习学会"想"

R1 是推理模型,和 V3 这种通用对话模型路线不同:它先让模型在规则环境(数学题、代码题)里用强化学习(RL)反复试——做对了给奖励,做错了给惩罚,模型慢慢学会把思路一步一步写出来(这就是你看到的一大段"思维链 CoT")。

1冷启动
先用少量监督数据教模型基本格式。
2RL 炼丹
在数学/代码题里自我博弈,靠结果对错给奖励。
3蒸馏
把 R1 的长思维链当训练数据,教小模型也学会推理。

关键启示:推理能力不一定要靠更大的基座,靠 RL 也能"练"出来;再蒸馏到小模型,便宜的小模型也能拿到大模型一半的推理本事。

⑥ 选型速查:什么时候用 MoE,什么时候用稠密

知道了原理,落地时怎么选?记住一句:要最强效果、能堆很多卡 → MoE;要简单好部署、单卡/小卡 → 稠密。

你的情况推荐原因
自研超大规模模型、训练预算充足MoE(DeepSeek-V3 路线)同等算力下知识容量更大
一张消费卡本地跑稠密 7B/14BMoE 要装全部专家,显存扛不住
做超长上下文对话带 MLA 的模型KV Cache 小,长文本便宜
主打数学/代码推理R1 类推理模型 / 蒸馏版RL 练出的思维链更稳
一句话记住MoE 是"训练时省钱、显存要够";MLA 是"长对话省钱";R1 是"靠 RL 不靠堆参数"。三者解决的不是同一个问题,别混。

⑦ 三个例子

例 1 · MoE 路由打分
当前 token 是"它",router 给 8 个专家打分。
分数:专家1=0.31、专家5=0.28、专家3=0.12、其余更低。top-2 选中专家 1 和专家 5,输出 = 0.31×专家1结果 + 0.28×专家5结果,其他 6 个专家这次完全不算。
例 2 · MLA 省 KV Cache
一个长对话上下文 128K token。
传统 MHA 要为每个 token 存完整 K、V,显存占用巨大;MLA 把 K/V 压成低维潜向量后,每 token 存的量降到原来的 1/10 左右,同样一张显卡能同时服务更多人、更长上下文。
例 3 · R1 蒸馏小模型
想要一个能本地跑的推理小模型。
让大 R1 解 10 万道题并写出完整思维链,把这些"题目+长思考+答案"当数据,去微调一个 7B 小模型。小模型没那么聪明,但学会了"一步步想"的习惯,数学/代码题上明显变稳。

⑧ 易错提醒

易错 1:以为 MoE 推理时只装被选中的专家错。所有专家权重都得常驻显存(router 要对全体打分),只是每次计算只过 top-k。所以 MoE 模型显存占用并不小,省的是算力/算量,不是装模型的显存。
易错 2:以为 MLA 取消了 KV Cache错。MLA 是把 KV 压缩后再缓存,不是不要 KV。没有 KV Cache,长文本会每秒重算全部历史,慢到不可用。
易错 3:把 R1 当成又一个"更大的 V3"R1 强在推理,靠的是后训练阶段的强化学习,不是把基座参数堆得更大。它和 V3 是"通用聊天"与"深度思考"两种产品定位。

⑨ 折叠自测(点开即答)

基础1MoE 里 router 的作用是什么?
给每个 token 给所有专家打分,选出分数最高的 top-k(DeepSeek 是 top-2)个专家参与本次计算,并按分数加权合并输出。
中档2DeepSeek-V3 号称 671B 参数,为什么推理时并不需要 671B 的算力?
因为它是 MoE:总参数 671B 都要装进显存,但每个 token 只激活约 37B 的专家计算量。总参数大=知识容量大,激活小=单次推理便宜。
拔高3MLA 主要省的是什么?和 R1 的蒸馏分别解决什么问题?
MLA 省的是推理时的 KV Cache 显存(把 K/V 压缩成低维潜向量再存);R1 的蒸馏解决的是"便宜小模型怎么获得推理能力"——把大模型的长思维链当数据教给小模型。

⑩ 费曼三问(合上讲,自己讲给自己听)

用大白话回答这三个问题,讲不顺就是没懂
问 1:为什么说 MoE 是"参数很多、算得很少"?用医院挂号打个比方。
问 2:DeepSeek 把 K/V 压缩存起来,这是为了解决哪个真实痛点?
问 3:R1 不堆参数、靠 RL 学会推理,再蒸馏给小模型——这条路最省成本的是哪一段?
MoE:router 打分 → top-k 选专家 → 加权求和 总参数大,激活小
DeepSeek-V3:671B 总参 / 37B 激活 + MLA 压 KV 便宜又长上下文
R1:RL 练思维链 → 蒸馏小模型 小模型也会推理
别搞混:MoE 省算力不省显存;MLA 压 KV 不取消 KV 两个易错点

⚡ 高频 FAQ

问:MoE 模型能不能只下两个专家跑?不能。所有专家权重都得常驻显存,router 要对全体打分,省的只是每次算量。
问:MLA 和 GQA 是一回事吗?不是。GQA 是少存几个 KV 头;MLA 是把每个 K/V 再压成低维潜向量,两者可叠加。
问:R1 蒸馏后的小模型和 R1 差多少?蒸馏小模型拿得到大模型一部分推理能力,但复杂推理仍弱于原版 R1,适合本地/低成本场景。

📖 名词速查

名词大白话
Dense 稠密每次前向所有参数都参与算
MoE混合专家,每 token 只激活一小撮专家
Router给 token 打分、选 top-k 专家的小网络
Top-k分数最高的 k 个专家被选中(DeepSeek k=2)
共享专家所有 token 都用的那个全科专家
MLA把 K/V 压成低维潜向量再缓存
CoT 思维链模型把推理过程一步步写出来

🧪 动手实验建议

1跑一次推理
用 vLLM 拉一个 Qwen2.5-7B,对比开/关 GQA 的显存占用。
2对比 MoE
找 Mixtral 8x7B,观察它每次只激活 2 个专家。
3读一段 R1
让 R1 解一道数学题,观察它写出的长思维链。
观察重点同样问题,稠密模型一步给答案,R1 会先"想"一大段;MoE 模型总参数大但单次算量小。

🔁 5 天复习计划

天任务自检
第 1 天读②③,理解稠密 vs MoE、router 路由画出 token→router→top-2 的流程图
第 2 天读④⑤,搞懂 MLA 与 R1 各自解决什么说清 MLA 压的是 KV,R1 练的是推理
第 3 天读⑥选型表 + ⑦三个例子按场景选出该用 MoE 还是稠密
第 4 天做⑨折叠自测,背⑩口诀三题全对、口诀脱口而出
第 5 天合上讲⑩费曼三问,不看资料讲一遍三处关键区别都讲对
三句口诀① MoE:总专家很多,每次只请两个;② MLA:KV 先压缩再存档;③ R1:RL 练思维链,蒸馏给小模型。

📌 知识链路

前置知识(先学)先搞懂 Transformer 里注意力和前馈网络在算什么,再看 MoE"把前馈网络换成多个专家"才不晕。
本节位置承接"主流模型全景",专门往下钻一层:为什么 DeepSeek 又便宜又强,靠的就是 MoE + MLA 这套省成本的组合拳。
下一步(学完去)接着看国产模型家族(Qwen/GLM/Kimi/豆包),再看推理优化怎么把这些模型在线上跑快。
← 上一章 · GPT 系列模型 返回 AI 基础总览