# 1 + 384 选 6

> V4.1-Flash 沿用 DeepSeekMoE：每层 1 个共享专家加 384 个路由专家，每 token 点 6 个。专家数追平了 V4-Pro，负载均衡改成图像与文本各算各的，开头几层的哈希路由不见了。

- 作者：David（道雾轩）
- 专栏：DeepSeek V4.1 Flash 深度解析（https://daiw.net/manual/deepseek-v4-flash.md）
- 最后更新：2026-09-19
- 原文：https://daiw.net/manual/deepseek-v4-flash/moe
- 转载与引用：请注明出处并附原文链接（https://daiw.net/about/copyright）

注意力那条线讲完，转到主干。V4.1-Flash 的 MoE 配置是 [1][2]：

> **每一层都是 MoE 层：1 个共享专家 + 384 个路由专家，每 token 激活 6 个路由专家，专家中间维度 2304。**

这是**沿用**：报告写明保留 DeepSeekMoE 的共享专家与细粒度路由专家 [1]。变的是规模和几处细节。

## 和前几代比

| | DeepSeek-V3 | V4-Flash | **V4.1-Flash** | V4-Pro |
| --- | --- | --- | --- | --- |
| 层数 | 61 | 43 | **40** | 61 |
| 隐藏维度 | 7168 | 4096 | **5120** | 7168 |
| 路由专家 | 256 | 256 | **384** | 384 |
| 每 token 激活路由专家 | 8 | 6 | **6** | 6 |
| 共享专家 | 1 | 1 | **1** | 1 |
| 专家中间维度 | 2048 | 2048 | **2304** | 3072 |
| 开头几层 | 前 3 层是稠密 FFN | 前 3 层用哈希路由 | **全部常规路由** | 前 3 层用哈希路由 |

几个观察：

- **专家数追平了 V4-Pro**（384），但每个专家比 Pro 窄（2304 对 3072）。激活数仍是 V4 定下的 6 个。
- **哈希路由不见了**。V4 用哈希路由替换了 V3 开头几层的稠密 FFN——按输入 token 的 ID 用预定义的哈希函数决定去哪个专家 [3]。V4.1 报告的模型设置只写“所有 Transformer 块都用 MoE 层”，没有再提哈希路由，`config.json` 里也没有对应字段 [1][2]。报告没有解释原因，本专栏不猜。
- **亲和度打分沿用 V4 的 Sqrt(Softplus)**，V3 用的是 Sigmoid [2][3][4]。

## 专家占了主干的几乎全部

按 `config.json` 粗算（本专栏估算）：每个专家约 3,539 万参数，每层 385 个专家约 136 亿，40 层约 **545B**——占 552B 主干的约 99% [2]。剩下几十亿才是注意力、嵌入与输出层。

这就是“稀疏”二字的分量：模型参数的绝大部分都在专家里，而每个 token 只碰其中很小一部分。激活参数的来历在 [CED 那一章](https://daiw.net/manual/deepseek-v4-flash/ced)算过：预填充时每 token 约 8B，解码时约 16B。

## 负载均衡：图像和文本各算各的

MoE 的老大难是**负载均衡**：路由塌缩会让大部分专家收不到 token。DeepSeek 从 V3 起用**无辅助损失的均衡**：不往目标函数里加损失项，而是给每个专家一个动态偏置，过载就调低、冷清就调高；偏置只影响“选谁”，被选中专家的输出仍按原始分数加权 [5]。V4 沿用这一做法，另加一个很轻的序列级平衡损失，防止单条序列内部极端失衡 [3]。

V4.1 把它扩展到了多模态 [1]：

- 图像 token 和文本 token 的表示分布不同，偏好的专家也可能不同；只看总负载，可能掩盖某一模态内部的失衡。
- 所以给文本和图像**各维护一套专家偏置**。路由时每个 token 用自己模态的那套偏置挑专家，加权仍用原始分数；每步训练后，两套偏置按各自的专家负载独立更新。
- 超参数：两套偏置的更新速度都是 0.001，序列级平衡损失权重 0.0001 [1]。

报告说这让专家在每个模态内部都用得均衡，也有助于多模态训练的稳定 [1]。

<Callout type="info">
  **一处更正**：本专栏初版在这里引用过第三方拆解的“自适应路由温度”（用温度调节路由分布来实现均衡）。V4 论文与 V4.1 报告里都找不到这一说法，已删去。两份报告里能找到的均衡手段就是上面三条：无辅助损失的偏置、轻量的序列级平衡损失、以及 V4.1 新加的按模态分开的偏置。
</Callout>

## MTP 不见了

前代的模型卡与论文都写着多 token 预测（MTP）深度为 1：训练时额外预测再下一个 token，推理时可拿来做投机解码 [3]。V4.1 在预训练主干时**省略了 MTP 模块**，投机解码改由单独训练的 DSpark 负责 [1]，放在[后面那一章](https://daiw.net/manual/deepseek-v4-flash/engram-dspark)讲。

## 为什么还是 6 个

同期的 Kimi K3 把专家数堆到 896、每 token 激活 16 个（见 [K3 专栏](https://daiw.net/manual/kimi-k3/latent-moe)）。DeepSeek 这一代把专家数加到 384，激活数却一直停在 6。[《AI 大模型解构》里分析过](https://daiw.net/manual/llm-anatomy/moe-knobs)，“多而小”的收益是组合空间，代价是路由与通信开销。两份报告都没有给出选择 6 的消融，本专栏只记录这个选择本身。

下一章讲把各层串起来的那根轴。👉 [mHC 与 Single-Pass mHC](https://daiw.net/manual/deepseek-v4-flash/mhc)

## 参考文献

- [1] DeepSeek-AI. “DeepSeek-V4.1-Flash: Pushing the Limits of KV Cache Compression.” 2026-09. [arXiv:2609.19969](https://arxiv.org/abs/2609.19969) —— 第 2.1 节（保留 DeepSeekMoE、按模态的负载均衡、省略 MTP）、第 4.2 节（专家配置与均衡超参数）。
- [2] Hugging Face：[deepseek-ai/DeepSeek-V4.1-Flash 的 config.json](https://huggingface.co/deepseek-ai/DeepSeek-V4.1-Flash/blob/main/config.json) —— 专家数、中间维度、`scoring_func`、层数与隐藏维度。
- [3] DeepSeek-AI. “DeepSeek-V4: Towards Highly Efficient Million-Token Context Intelligence.” 2026-04. [arXiv:2606.19348](https://arxiv.org/abs/2606.19348) —— V4 相对 V3 的 MoE 改动（Sqrt(Softplus)、哈希路由、序列级平衡损失）、V4-Flash 与 V4-Pro 的专家配置、MTP 深度。
- [4] Hugging Face：[deepseek-ai/DeepSeek-V3 的 config.json](https://huggingface.co/deepseek-ai/DeepSeek-V3/blob/main/config.json) —— V3 的层数、专家配置、前 3 层稠密与 Sigmoid 打分；总参数 671B、激活 37B 见 V3 技术报告 [arXiv:2412.19437](https://arxiv.org/abs/2412.19437)。
- [5] Wang et al. “Auxiliary-Loss-Free Load Balancing Strategy for Mixture-of-Experts.” 2024-08. [arXiv:2408.15664](https://arxiv.org/abs/2408.15664) —— 无辅助损失均衡的原始工作。
