feat: deepen DeepSeek technical lineage

This commit is contained in:
wuyang
2026-07-29 11:17:53 +08:00
parent 5c8a2e44bd
commit cd96dab22d
27 changed files with 2905 additions and 102 deletions
+189
View File
@@ -0,0 +1,189 @@
# DeepSeek 技术谱系二轮:Grok 候选线索
> 状态:**全部未核验**
> 生成方式:本机 Grok CLI Headless,2026-07-29
> 用途:查漏、形成问题、发现可能的教学断点。
> 禁止用途:不得直接承载正文事实、公式、年份、模型数字、benchmark 结论或因果归因。
## 1. Grok 对现有页面的审计候选
现有 `src/pages/deepseek/index.astro` 已具备从 DeepSeek LLM 到 V4 的静态骨架,但可能存在以下缺口:
1. Dense 基线缺少“为什么可归因需要基线”的实验;
2. DeepSeekMoE 缺少组合空间、激活预算和通信税三本账;
3. MLA 缺少矩阵吸收、decoupled RoPE 与缓存元素的完整推导;
4. V3 只概览 FP8、DualPipe、MTP、loss-free balance,没有让读者操作它们;
5. GRPO 只展示组内归一,缺少 clip、KL、全同奖励零信号和 rollout 成本;
6. R1 缺少训练轨迹证据边界;
7. DAPO / Dr.GRPO 只在推理专题出现,DeepSeek 谱系本身断链;
8. V3.2 缺少 indexer warm-up、稀疏训练和 Agent 数据合成;
9. V4 的 CSA/HCA、mHC、Muon、混合精度和 effort 只写了摘要;
10. DeepSeek → K3 映射缺少“直接祖先 / 同题新解 / 同期不同路线”的反例。
以上只是候选审计,正式取舍见 `DEEPSEEK_RESEARCH.md`。
## 2. 二十四张候选问题账
| 编号 | 候选问题 | 禁止偷换 |
|---|---|---|
| Q01 | 为什么先建立 dense 坐标系? | 不把后续 MoE 的所有收益归因于稀疏性 |
| Q02 | 总参数、激活参数、FLOPs 和显存怎样分账? | 不把 active params 等同同规模 dense 成本 |
| Q03 | 细粒度专家怎样改变组合空间? | 不把组合数直接当能力 |
| Q04 | shared expert 隔离了什么? | 不写成免费公共知识库 |
| Q05 | 稀疏计算为什么带来 all-to-all? | 不用理论 FLOPs 代替墙钟 |
| Q06 | aux loss 与语言建模目标为何可能冲突? | aux-loss-free 不等于无均衡 |
| Q07 | KV Cache 为什么是服务重复税? | 不把权重显存与 KV 状态混在一起 |
| Q08 | MHA、GQA、MLA 分别压缩什么? | MLA 不是 MQA 改名 |
| Q09 | joint latent 保留了什么? | 不声称低秩必然无损 |
| Q10 | RoPE 为什么妨碍权重吸收? | 不省略位置分支缓存 |
| Q11 | FP8 是哪些张量的什么角色? | 不写“全模型八位” |
| Q12 | DualPipe 隐藏哪些气泡? | 不写“消灭所有等待” |
| Q13 | MTP 的训练与推理角色怎样分开? | 不写“取代自回归” |
| Q14 | GRPO 去掉 critic 后成本去了哪里? | 不写“几乎零额外成本” |
| Q15 | 可验证奖励能塑造什么? | 不外推到无法验证的开放任务 |
| Q16 | R1-Zero 真正隔离了哪个变量? | 不写“无数据从零推理” |
| Q17 | R1 的四阶段分别修什么? | 不把 R1 写成纯 RL |
| Q18 | 蒸馏为何不是重演探索? | 不把 SFT 学生称为小型 R1-Zero |
| Q19 | GRPO 的长度、难度与 clip 偏差是什么? | DAPO / Dr.GRPO 不是官方 R1 配方 |
| Q20 | DSA indexer 与固定稀疏模式差在哪? | top-k 不保证召回 |
| Q21 | Agentic task synthesis 怎样形成环境闭环? | 不把静态题提升归因成 Agent 能力 |
| Q22 | CSA 和 HCA 分别压缩哪本账? | 不把二者合写成一个缩写 |
| Q23 | mHC 与 Muon 针对的稳定性对象有何不同? | 不写 Muon 替代全部 AdamW |
| Q24 | DeepSeek 与 K3 如何逐对象对照? | 不按总参数或榜单做单轴排名 |
## 3. 候选历史链
```text
Dense / Scaling
→ 容量随激活计算一起涨
DeepSeekMoE
→ 容量与激活计算分开,但通信与路由变贵
V2 / MLA
→ 缓存从完整多头 K/V 改为 joint latent,但位置支路与恢复计算仍在
V3
→ loss-free balance + MTP + FP8 + DualPipe,把模型与集群一起优化
DeepSeekMath / GRPO
→ 用组内相对奖励省掉 critic,但 rollout、奖励和目标偏差仍在
R1-Zero / R1
→ 先隔离纯规则奖励实验,再用 cold start、SFT mix 与通用 RL 修复
DAPO / Dr.GRPO
→ 从复现断点反查 clip、采样、聚合、截断、长度和难度偏差
V3.2
→ DSA 降长上下文主注意力成本;Agent 合成把推理放入环境
V4
→ CSA/HCA、mHC、Muon、低精度和异构缓存围绕 1M 联合设计
K3
→ MLA/MoE 有明确祖先,其余多为同题新解或同期不同路线
```
## 4. 候选一手节点池
### DeepSeek 主线
- DeepSeek LLM — `2401.02954`
- DeepSeek-Coder — `2401.14196`
- DeepSeekMoE — `2401.06066`
- DeepSeekMath — `2402.03300`
- DeepSeek-V2 — `2405.04434`
- DeepSeek-Coder-V2 — `2406.11931`
- ESFT — `2407.01906`
- DeepSeek-Prover-V1.5 — `2408.08152`
- DeepSeek-V3 — `2412.19437`
- DeepSeek-R1 — `2501.12948`
- DAPO — `2503.14476`
- Understanding R1-Zero-Like Training / Dr.GRPO — `2503.20783`
- DeepSeek-Prover-V2 — `2504.21801`
- DeepEP — `github.com/deepseek-ai/DeepEP`
- DualPipe — `github.com/deepseek-ai/DualPipe`
- DeepGEMM — `github.com/deepseek-ai/DeepGEMM`
- DeepSeek-V3.2 — `2512.02556`
- Engram — `2601.07372`
- mHC — `2512.24880`
- DeepSeek-V4 — `2606.19348`
### 机制祖先候选
- Conditional Computation — `cs/0008102`
- Sparsely-Gated MoE — `1701.06538`
- GShard — `2006.16668`
- Switch Transformer — `2101.03961`
- ST-MoE — `2202.08906`
- MQA — `1911.02150`
- GQA — `2305.13245`
- RoPE — `2104.09864`
- FlashAttention — `2205.14135`
- ZeRO — `1910.02054`
- GPipe — `1811.06965`
- PipeDream — `1806.03377`
- PPO — `1707.06347`
- InstructGPT — `2203.02155`
- Multi-Token Prediction — `2404.19737`
- Muon is Scalable — `2502.16982`
### Kimi 对照候选
- Kimi k1.5 — `2501.12599`
- Kimi K2 — `2507.20534`
- Kimi Linear — `2510.26692`
- LatentMoE — `2601.18089`
- Attention Residuals — `2603.15031`
- Kimi K3 — `2607.24653`
候选池并不等于最终阅读链;正式链必须剔除综述、二手页面和无法核验的年份。
## 5. 四个候选交互实验
### A. Sparse Capacity Ledger
- 输入:专家总数、每 Token 激活数、shared 数、专家宽度、EP 节点数;
- 输出:总/激活参数、组合数、教学通信压力;
- 误解:总参数等于每 Token 成本、细粒度必然更快、shared 免费。
### B. MLA Cache Workbench
- 输入:层数、heads、head dim、GQA groups、latent dim、RoPE dim、上下文、精度;
- 输出:MHA/GQA/MLA 每 Token 元素与总缓存、压缩基线;
- 误解:V2 的 93.3% 是普适常数、MLA 等于 GQA、RoPE 没有缓存。
### C. Algorithm–System Co-design Board
- 输入:micro-batches、pipeline stages、通信/计算比、精度角色、MTP 开关;
- 输出:toy bubble、暴露通信、训练目标密度与角色合同;
- 误解:DualPipe 清零气泡、FP8 全路径、MTP 默认参与生成。
### D. GRPO Bias Microscope
- 输入:一组奖励、序列长度、是否 std norm、response/token aggregation、clip 上下界;
- 输出:优势、轨迹权重、零信号、长度倾向;
- 误解:去 critic 等于无成本、长 CoT 必然更优、DAPO/Dr.GRPO 是 R1 官方配方。
## 6. 二十条候选红线
1. 细粒度专家在所有任务、所有硬件上都优于粗粒度专家;
2. shared expert 是不增加计算的公共知识库;
3. 激活参数等价于同规模 dense 的完整成本;
4. MLA 只是 MQA/GQA 换名;
5. V2 的 KV/吞吐数字是 MLA 通用常数;
6. decoupled RoPE 分支无需缓存;
7. aux-loss-free 等于没有负载均衡;
8. FP8 等于全部张量和累加都使用 FP8;
9. DualPipe 消灭所有 pipeline bubble;
10. V3 的 2.788M GPU hours 可直接与不同硬件模型横比;
11. MTP 在推理时取代 next-token generation;
12. GRPO 是无偏且严格优于 PPO;
13. R1-Zero 不依赖预训练知识;
14. “aha” token 是 RL 创造推理的因果证据;
15. R1 完整模型没有 SFT;
16. 蒸馏学生重演了教师的 RL 探索;
17. DAPO/Dr.GRPO 是 DeepSeek 官方 R1 配方;
18. DSA top-k 保证不漏关键历史;
19. V4 与 K3 使用同一种百万上下文状态;
20. “直接祖先”意味着实现和超参数相同。
## 7. 正式核验结果去向
- 一手来源结论:`research/DEEPSEEK_RESEARCH.md`
- 页面实现:`src/pages/deepseek/index.astro`
- 交互实现:`src/components/DeepSeekLab.astro`
- 论文索引:`src/data/papers.ts`
+570
View File
@@ -0,0 +1,570 @@
# DeepSeek 技术谱系二轮正式研究账本
> 研究截止:2026-07-29
> 课程角色:DeepSeek 聚光专题二轮;与 MoE、长上下文、训练系统、数值、推理、Agent、评测专题互相链接,但不替代各专题完整推导。
> 证据规则:正文事实只来自一手论文、作者官方仓库和 Kimi K3 官方报告;Grok 产物仅见 `DEEPSEEK_GROK_LEADS.md`,不承担证据。
> 简化规则:所有二维图、成本滑条和训练曲线若非论文复跑,必须标“教学模型”。
## 0. 本轮要修复什么
现有 DeepSeek 页面建立了正确的代际骨架,但还不足以让读者回答四类问题:
1. **可归因性**:一代同时改模型、数据、精度和系统,怎样知道是哪一项在起作用?
2. **对象边界**:总参数、激活参数、KV 状态、训练显存、墙钟时间和 benchmark 分数不能混算。
3. **训练轨迹**:R1-Zero 的长度曲线、DAPO 的熵崩、Dr.GRPO 的长度偏差分别说明什么?
4. **跨模型对照**:V4 与 K3 都支持 1M,并不意味着状态表示、注意力和服务系统相同。
二轮页面应成为“论文主线的总装图”,而不是再写一遍七个专题。
## 1. 二十四张正式问题账
| 编号 | 对象 | 读者问题 | 正式回答边界 |
|---|---|---|---|
| Q01 | Dense 坐标系 | 为什么 DeepSeek LLM 不是可跳过的序章? | 它固定 tokenizer、数据、架构和 scaling 试验的起点;并不单独证明后续所有设计 |
| Q02 | 参数角色 | 671B / 37B 各表示什么? | total 是装下的容量,activated 是每 Token 经过的专家参数子集;都不等于端到端 FLOPs |
| Q03 | 专家粒度 | 为什么切小专家还要多选? | DeepSeekMoE 把每个专家缩成 `1/m`,总数和激活数同乘 `m`,近似保持专家计算 |
| Q04 | Shared expert | 为什么把公共知识单独隔离? | 始终激活的 shared experts 减少 routed experts 重复;仍付激活计算 |
| Q05 | 通信税 | 为什么稀疏 FLOPs 不等于便宜? | 路由会产生 dispatch/combine、跨节点 all-to-all、负载长尾和权重访问 |
| Q06 | 均衡 | aux-loss-free 到底去掉了什么? | V3 的 expert bias 影响选择、不进入最终 gate weight;仍有 sequence-wise auxiliary loss 防极端失衡 |
| Q07 | KV 状态 | 为什么 V2 把服务状态当架构问题? | 权重只装一次,KV 随请求、层、Token 增长,直接限制并发和长上下文 |
| Q08 | Attention 压缩 | MQA/GQA/MLA 的差别是什么? | MQA/GQA 共享 K/V 头;MLA 联合低秩压缩 K/V 内容并在计算中恢复 |
| Q09 | 矩阵吸收 | MLA 为什么不必显式恢复完整 content key/value? | 无位置项时可利用矩阵乘结合律把上投影吸收到 query/output 投影 |
| Q10 | 位置分叉 | 为什么要 decoupled RoPE? | RoPE 位于 key/query 路径中会阻断上述吸收,因此 V2 另设小的 RoPE key/query 分支并缓存 key |
| Q11 | FP8 合同 | “FP8 训练”包含哪些角色? | V3 主要 GEMM 用 FP8,配 tile/block scaling、较高精度累加和高精度敏感算子;不是全路径 FP8 |
| Q12 | Pipeline | DualPipe 隐藏了什么? | 成对前后向 chunk 的计算—通信重叠并从两端注入 micro-batch;减少而非清零 bubble |
| Q13 | MTP | 训练和推理各怎样使用 MTP? | 顺序模块增加未来 Token 监督;推理可丢弃,也可复用于 speculative draft |
| Q14 | GRPO | 去掉 critic 后还剩什么? | policy/reference、同题多 rollout、reward/verifier、clip 和 KL;主要省 value model |
| Q15 | 可验证奖励 | R1-Zero 的奖励能覆盖哪些任务? | 论文使用数学、代码、逻辑等可规则验证域和格式奖励;复杂开放任务仍是公开限制 |
| Q16 | 纯 RL 实验 | R1-Zero 证明了什么? | 强 V3 Base 在无 reasoning SFT 的设置下可被规则奖励继续塑造;不证明无预训练先验 |
| Q17 | R1 pipeline | 正式 R1 为什么不是纯 RL? | cold start → reasoning RL → rejection/SFT mix → general RL,各自修可读性、广度和对齐 |
| Q18 | 蒸馏 | 为什么学生不是“小号 R1-Zero”? | 报告中的 1.5B–70B 学生主要对约 800K 教师样本做 SFT,没有重演同一 RL |
| Q19 | 复现反查 | DAPO/Dr.GRPO 修的是 R1 的什么? | 它们是公开后续研究:分别处理 clip/采样/聚合/截断和长度/难度归一偏差;不是已披露 R1 内部配方 |
| Q20 | DSA | 可学习 indexer 为什么不是固定稀疏? | indexer 对历史内容评分,主 attention 只读 top-k;有 warm-up 和 sparse training,仍可能漏检 |
| Q21 | Agent 数据 | V3.2 怎样把 reasoning 放进环境? | specialist distillation + mixed RL;真实/合成工具环境、任务、解法和 verifier 构成数据闭环 |
| Q22 | V4 Attention | CSA 与 HCA 各压什么? | CSA 先压缩再稀疏 top-k;HCA 用更大压缩率保留所有压缩 entries,不做同类 top-k |
| Q23 | V4 稳定化 | mHC、Muon、QK/RMSNorm、clamp 各管什么? | 分别管残差混合、矩阵更新、attention 尺度和 FFN 极值,不能归成一个“稳定性技巧” |
| Q24 | K3 对照 | 哪些是祖先,哪些不是? | DeepSeekMoE/MLA 有明确结构继承;QB/KDA/AttnRes/SiTU/MOPD 多为同题新解或同期路线 |
## 2. 十次历史转向:不要画成产品发布日期
### W1 / Dense:先制造可比较坐标系
DeepSeek LLM(`2401.02954`)的历史作用不是“第一代也很强”,而是:
- 在 7B / 67B dense 模型上固定中英数据、BBPE、训练配方;
- 用小模型研究 scaling behavior,再选择大模型超参数;
- 把 dedup/filter/remix 和 91-dump 全局去重写成可检查步骤;
- 给后续 MoE、MLA 和训练系统提供 dense 对照。
证据缓存:`research/sources/scaling-laws/2401.02954.txt`。
### W2 / DeepSeekMoE:容量与激活计算第一次显式分开
DeepSeekMoE(`2401.06066`)提出:
1. **Fine-grained expert segmentation**:把 `N` 个专家各切成 `m` 份,总数 `mN`,激活数由 `K` 增至 `mK`,保持专家激活宽度近似不变;
2. **Shared expert isolation**:固定激活 `K_s` 个 shared experts,routed 激活数相应减少,使公共变换不必在多个 routed experts 中重复学习。
论文给的是特定规模和 benchmark 下的消融证据,不是所有 MoE/硬件上的普遍优越性。
证据缓存:`research/sources/moe/2401.06066.txt:249-330,606-666`。
### W3 / V2:把推理状态纳入模型结构
标准 MHA 每层每 Token 的缓存元素与 `2 n_h d_h` 成正比。V2 MLA 的 content 缓存核心变为:
```text
c_t^KV = W_DKV h_t
cache_content = d_c
cache_total = d_c + d_h^R
```
其中 `d_h^R` 是 decoupled RoPE key 分支。V2 配置使用:
- `d_c = 512`(论文以 `4 d_h` 表达);
- decoupled RoPE per-head dim `d_h^R = 64`;
- 每层每 Token 缓存 `d_c + d_h^R` 个元素,不是只有 `d_c`。
#### 权重吸收为何重要
对 content path:
```text
qᵀ(W_UK c) = (W_UKᵀ q)ᵀc
W_O(W_UV c) = (W_O W_UV)c
```
因此推理实现可以在投影权重中吸收上投影,而非先物化所有 heads 的完整 K/V。若直接把 RoPE 施加到 content key,上式之间会插入位置相关旋转矩阵,无法做同样的固定权重吸收。V2 因而将 RoPE 分支解耦。
证据缓存:`research/sources/long-context/2405.04434.txt:330-419`。
V2 的 `−42.5% / −93.3% / 5.76×` 必须始终写成“报告相对 DeepSeek 67B 的特定设置”,不能成为 MLA 常数。
### W4 / V3:算法—数值—系统协同,不是四个孤立卖点
V3(`2412.19437`)保留 MLA + DeepSeekMoE,并新增四条互锁机制。
#### 2.4.1 Auxiliary-loss-free balance
- 每个 routed expert 有动态 bias `b_i`;
- bias 参与 top-k 选择;
- 真正乘到专家输出上的 gate value 不包含 bias;
- 过载 expert 的 bias 下调,低载 expert 上调;
- 报告仍保留 sequence-wise auxiliary loss 防止单序列极端失衡。
所以“aux-loss-free”只描述主要全局 balance 策略。
#### 2.4.2 Sequential MTP
V3 的第 `k` 个 MTP module 接收上一深度 state 与未来 Token embedding,预测额外未来 Token:
```text
L = L_NTP + λ · mean_k(L_MTP^k)
```
MTP embedding/output head 与主模型共享。报告明确:
- 训练目标主要为 densify signals / pre-plan representations;
- 推理时可以直接丢弃 MTP module;
- 也可以将其改作 speculative decoding。
这与“并行一次输出多 Token”不是同一概念。
#### 2.4.3 FP8 mixed precision
必须用角色合同描述:
| 角色 | V3 报告处理 |
|---|---|
| 高密度 GEMM inputs | 细粒度量化后 FP8 |
| GEMM accumulation | Tensor Core 路径外补 FP32 精确累加策略 |
| master weights / optimizer | 高精度保存与更新 |
| 敏感算子 | BF16/FP32 |
| activation cache | 部分低精度保存 |
| communication | 结合低精度减少带宽 |
“V3 用 FP8”不能压缩成单一 dtype 标签。
#### 2.4.4 DualPipe + DeepEP
DualPipe:
- 从 pipeline 两端注入 micro-batches;
- 在成对前/后向 chunk 中重叠计算与通信;
- 相对经典 schedule 减少 bubble;
- 仍有 divisibility、activation memory 和 stage balance 条件。
DeepEP 官方仓库承载高吞吐/低延迟 expert dispatch/combine kernel;它是系统实现节点,不是 V3 模型算法的新 loss。
证据:
- `research/sources/moe/2412.19437.txt:437-448,532-602,644-713,772-999`
- `https://github.com/deepseek-ai/DualPipe`
- `https://github.com/deepseek-ai/DeepEP`
### W5 / DeepSeekMath:GRPO 首先是一笔 critic 账
DeepSeekMath(`2402.03300`)对同一 prompt 采样 `G` 个输出,以组内 reward 构造 outcome advantage:
```text
A_i = (r_i - mean(r_1…r_G)) / (std(r_1…r_G) + ε)
```
完整目标仍含:
- importance ratio;
- clipping;
- reference-policy KL;
- 每题多 rollout;
- reward/verifier 执行。
所以 GRPO 去掉 value model,不是去掉 RL 系统。
该论文在特定 7B 数学设置中观察到 Maj@K 改善而 Pass@K 未同样改善,应解释为输出分布重排证据,而非基础覆盖能力的普遍增长。
证据缓存:`research/sources/reasoning/2402.03300.txt`。
### W6 / R1-Zero → R1:先做隔离实验,再做可用模型
#### R1-Zero
- base:DeepSeek-V3 Base;
- 无 reasoning SFT;
- GRPO;
- accuracy reward + format reward;
- reasoning 域使用规则验证,避免大规模 neural RM reward hacking;
- 训练中报告 AIME accuracy 与平均 response length 轨迹。
这证明在该强 base 和验证域上,RL 能进一步塑造搜索/反思行为;不证明知识与算法从零产生。
#### 正式 R1
```text
V3 Base
→ cold-start reasoning data
→ reasoning-oriented RL
→ rejection sampling + reasoning/general SFT mix
→ general RL with rule + preference/safety rewards
```
R1-Zero 的可读性和语言混合问题是正式 R1 增加 cold start 与后续阶段的直接理由。
#### Distillation
六个 1.5B–70B 学生使用约 800K R1 生成/筛选样本进行 SFT。它说明强教师轨迹可迁移,不说明学生内部重演了大规模 RL 探索。
证据缓存:`research/sources/reasoning/2501.12948.txt:85-225,324-437,742-844`。
### W7 / DAPO 与 Dr.GRPO:复现不是尾注,而是算法显微镜
二者都不是 DeepSeek 官方 R1 配方;它们是公开后续研究。
#### DAPO(`2503.14476`)
论文公开四项技术:
1. **Clip-Higher**:上下 clip 解耦,提高上界,缓解熵崩;
2. **Dynamic Sampling**:过滤 reward 全同、优势为零的组并补采;
3. **Token-Level Policy Gradient Loss**:跨 batch Token 聚合,改变长短 response 的权重;
4. **Overlong Reward Shaping**:过滤或平滑惩罚被硬截断的长回答,降低 reward noise。
DAPO 报告的 AIME 分数绑定 Qwen2.5-32B Base、数据、系统和协议,不可写成“算法无条件超过 R1”。
证据缓存:`research/sources/reasoning/2503.14476.txt:79-91,234-459`。
#### Dr.GRPO(`2503.20783`)
论文指出两类偏差:
- response-level length bias:response loss 除以自身长度,使每个 Token 的总权重依赖长度;
- question-level difficulty bias:优势除以组内 reward std,使低 std 问题获得更大尺度。
其实现用固定全局最大 Token 数作分母,并移除组 std normalization。论文还观察 DeepSeek-V3 Base 在 RL 前即可生成 “aha/wait” 表达,因此单个措辞不能作为 RL 创造反思的因果证据。
这是一组明确假设和实验,不等于“推翻所有 GRPO”。
证据缓存:`research/sources/reasoning/2503.20783.txt:319-343,521-611`。
### W8 / V3.2:Attention 与 Agent 数据同时转向
#### DSA
DeepSeek Sparse Attention:
1. lightning indexer 对 query–history 计算 index score;
2. 选择 top-k KV entries;
3. 主 attention 只在选中 entries 上计算;
4. 在 MLA 架构下实例化;
5. 先 dense warm-up 初始化 indexer,再 sparse continued pre-training 对齐。
主 attention 从 `O(L²)` 降到 `O(Lk)`;indexer 本身仍扫描历史并有额外成本。top-k 是容量约束,不是 recall 保证。
#### Specialist distillation + mixed RL
V3.2 将 reasoning、general agent、agentic coding/search 与 human alignment specialists 蒸馏到同一模型,再做 mixed RL。
Agent 数据必须区分:
| 类型 | 环境 | Prompt |
|---|---|---|
| Code agent | 真实 | 抽取 |
| Search agent | 真实 API | 合成 |
| General agent | 合成工具环境 | 合成 |
报告给出 1,827 个 general-agent environments,并通过 `<environment, tools, task, verifier>` 闭环生成。不能将其简化为“更多工具调用文本”。
证据缓存:`research/sources/long-context/2512.02556.txt:122-234,296-371,557-636`。
### W9 / V4:百万上下文是一组异构状态
V4(`2606.19348`)不只是把 V3.2 context 拉长。
#### CSA
- 先按相邻 hidden states 形成压缩 KV entries;
- indexer 在压缩 entries 上做 DSA-style top-k;
- 主 attention 只读选中的压缩 entries;
- 兼有序列压缩与稀疏选择。
#### HCA
- 使用显著更大的 compression rate;
- 不做与 CSA 相同的 overlapped compression / top-k sparse selection;
- 保留所有更少的压缩 entries;
- 追求更激进的固定状态压缩。
#### 共同细节
- head-wise query 与 compressed KV RMSNorm;
- 最后 64 维 partial RoPE;
- shared-KV MQA;
- grouped output projection;
- 混合层还包含短窗状态,服务端因此维护异构 KV/state cache。
#### mHC
将 residual mapping `B_l` 投影到 doubly stochastic matrices 的 Birkhoff polytope:
```text
B_l ≥ 0
rowsum(B_l) = 1
colsum(B_l) = 1
||B_l||₂ ≤ 1
```
V4 expansion factor 为 4。它改变相邻层 residual streams 的混合,不等于 AttnRes 沿历史层检索。
#### Muon 与稳定化
- 主要二维矩阵采用 Muon;
- embedding、prediction head、RMSNorm weights 等保留 AdamW;
- attention Q/K 路径做额外 Norm;
- SwiGLU linear branch clamp 到 `[-10,10]`,gate upper cap `10`;
- Muon、mHC、Norm、clamp 解决不同对象。
#### Reasoning effort
V4 支持多个 effort mode。任何 benchmark 必须带 model variant、effort、context、tool budget 和 harness;“V4 分数”不是单一协议。
证据缓存:`research/sources/long-context/2606.19348.txt:318-741,783-853,1203-1312,1369-1488,1587-1742`。
### W10 / K3:继承图必须允许“没有箭头”
| DeepSeek 节点 | K3 落点 | 关系类型 | 禁止结论 |
|---|---|---|---|
| DeepSeekMoE fine-grained + shared/routed | Stable LatentMoE shared/routed | 明确结构祖先 | 不代表 expert 数和 router 相同 |
| V2 MLA | 周期性 Gated MLA | 明确采用并改造 | K3 不是全 MLA |
| V3 loss-free balance | Quantile Balancing | 同问题新方案 | QB 不是 expert bias 改名 |
| V3 FP8 | MXFP4 weights + MXFP8 activations QAT | 低精度方向延伸 | 精度角色合同不同 |
| GRPO / R1 | multi-domain/multi-effort RL | 共享范式 | K3 未公开等同 R1 的训练轨迹 |
| V3.2/V4 long context | 3 KDA + 1 NoPE Gated MLA | 同目标不同状态 | 不把 DSA/CSA/HCA 套到 KDA |
| V4 mHC | Block Attention Residuals | 同期不同深度拓扑 | mHC 不是 AttnRes |
| V4 Muon | Per-Head Muon | 同优化器族不同参数分组 | 不写相同 optimizer recipe |
| R1 distillation | MOPD | 都有 teacher/student | MOPD student rollout 是 on-policy,不能等同离线 SFT |
K3 直接证据:`research/sources/kimi-k3/k3_tech_report.txt`。
特别边界:
- K3 主模型的 93 层以 12 层为 AttnRes block,得到 8 个 layer blocks,加 embedding 共 9 个来源;
- K3 报告的推理芯片 nano-model 原型另使用 block size 2;那是芯片概念验证配置,不能回填主模型架构。
## 3. 四个交互实验合同
### Lab 01 / Sparse Capacity Ledger
**输入**
- architecture:Dense / coarse MoE / DeepSeekMoE / V3;
- experts `E`;
- routed top-k `k`;
- shared experts `s`;
- expert width ratio;
- EP nodes。
**输出**
- total expert units;
- active expert units;
- theoretical combinations `C(E,k)`(只作组合空间,不作能力);
- toy compute ratio;
- toy communication pressure;
- shared/routed 角色说明。
**强制边界**
- 组合数使用对数或科学计数,避免溢出;
- 通信为教学指标,不写 GB/s;
- total params 与 active params 分列。
### Lab 02 / MLA Cache Workbench
**输入**
- layers、context、batch;
- MHA heads、head dim;
- GQA KV groups;
- MLA latent dim、RoPE dim;
- bytes/element。
**公式**
```text
MHA elements/token/layer = 2 · n_h · d_h
GQA elements/token/layer = 2 · n_kv · d_h
MLA elements/token/layer = d_c + d_h^R
total bytes = per-token-layer · L · T · B · bytes
```
**输出**
- 元素、GiB、相对当前 MHA 基线的 reduction;
- 显式显示“作者报告值 ≠ 当前教学配置”;
- weight absorption / RoPE 分叉图。
### Lab 03 / V3 Co-design Board
**输入**
- pipeline stages;
- micro-batches;
- compute/communication ratio;
- schedule:1F1B / dual-ended toy;
- precision contract:BF16 / naive FP8 / mixed FP8;
- MTP:off / train / speculative。
**输出**
- toy bubble fraction;
- exposed communication;
- activation/master/accumulator dtype 角色;
- NTP/MTP supervision count;
- MTP inference role。
**边界**
- 不声称复现 DualPipe schedule;
- bubble/communication 是方向模型;
- naive FP8 必须显示风险,不让它看起来更先进。
### Lab 04 / GRPO Bias Microscope
**输入**
- 4–8 条 rollout rewards;
- 每条长度;
- algorithm:GRPO / DAPO-style / Dr.GRPO;
- clip low/high;
- std norm;
- response-level / token-level aggregation;
- overlong threshold。
**输出**
- normalized advantage;
- 每个 response / token 的 toy gradient weight;
- reward 全同零信号;
- length/difficulty bias 提示;
- DAPO/Dr.GRPO 与 R1 的 provenance 标签。
**边界**
- 不模拟完整 optimizer 或真实 policy ratio;
- 不把 toy gradient 当训练曲线;
- DAPO/Dr.GRPO 明确标“后续公开研究,不是 R1 已披露配方”。
## 4. 六十节点正式阅读链
| # | 年份 | 节点 | 一手链接 | 在本页承担的角色 |
|---:|---:|---|---|---|
| 01 | 1991 | Adaptive Mixtures of Local Experts | https://proceedings.neurips.cc/paper/1991/hash/59b90e1005a220e2ebc542eb9d950b1e-Abstract.html | 专家门控前史 |
| 02 | 2000 | Learning to Reason with Neural Networks / Conditional Computation | https://arxiv.org/abs/cs/0008102 | 条件计算 |
| 03 | 2003 | A Neural Probabilistic Language Model | https://www.jmlr.org/papers/v3/bengio03a.html | Dense LM 坐标 |
| 04 | 2017 | Attention Is All You Need | https://arxiv.org/abs/1706.03762 | Transformer 主干 |
| 05 | 2017 | Outrageously Large Neural Networks | https://arxiv.org/abs/1701.06538 | 稀疏 MoE |
| 06 | 2017 | Proximal Policy Optimization Algorithms | https://arxiv.org/abs/1707.06347 | GRPO 对照 |
| 07 | 2018 | GPipe | https://arxiv.org/abs/1811.06965 | Pipeline 前史 |
| 08 | 2018 | PipeDream | https://arxiv.org/abs/1806.03377 | Pipeline schedule |
| 09 | 2019 | Fast Transformer Decoding / MQA | https://arxiv.org/abs/1911.02150 | KV 共享 |
| 10 | 2019 | Megatron-LM | https://arxiv.org/abs/1909.08053 | 模型并行 |
| 11 | 2019 | ZeRO | https://arxiv.org/abs/1910.02054 | 状态分片 |
| 12 | 2019 | RMSNorm | https://arxiv.org/abs/1910.07467 | 尺度控制 |
| 13 | 2020 | GShard | https://arxiv.org/abs/2006.16668 | 大规模 MoE |
| 14 | 2020 | QK-Normalization | https://arxiv.org/abs/2010.04245 | attention logit 稳定 |
| 15 | 2021 | Switch Transformers | https://arxiv.org/abs/2101.03961 | coarse top-1 MoE |
| 16 | 2021 | RoFormer / RoPE | https://arxiv.org/abs/2104.09864 | MLA 位置分叉 |
| 17 | 2022 | ST-MoE | https://arxiv.org/abs/2202.08906 | MoE 稳定性 |
| 18 | 2022 | DeepNet | https://arxiv.org/abs/2203.00555 | 深层残差 |
| 19 | 2022 | InstructGPT | https://arxiv.org/abs/2203.02155 | SFT/RM/PPO 合同 |
| 20 | 2022 | FlashAttention | https://arxiv.org/abs/2205.14135 | IO-aware exact attention |
| 21 | 2022 | Process and Outcome Feedback | https://arxiv.org/abs/2211.14275 | reasoning reward 前史 |
| 22 | 2022 | Self-Consistency | https://arxiv.org/abs/2203.11171 | 多采样聚合 |
| 23 | 2023 | GQA | https://arxiv.org/abs/2305.13245 | KV 分组 |
| 24 | 2023 | Let's Verify Step by Step | https://arxiv.org/abs/2305.20050 | verifier / PRM |
| 25 | 2023 | Direct Preference Optimization | https://arxiv.org/abs/2305.18290 | RL 外偏好路线 |
| 26 | 2023 | FlashAttention-2 | https://arxiv.org/abs/2307.08691 | attention kernel |
| 27 | 2023 | PagedAttention / vLLM | https://arxiv.org/abs/2309.06180 | KV 服务状态 |
| 28 | 2024 | DeepSeek LLM | https://arxiv.org/abs/2401.02954 | Dense/scaling 基线 |
| 29 | 2024 | DeepSeek-Coder | https://arxiv.org/abs/2401.14196 | 代码数据旁支 |
| 30 | 2024 | DeepSeekMoE | https://arxiv.org/abs/2401.06066 | 细粒度 + shared |
| 31 | 2024 | DeepSeekMath | https://arxiv.org/abs/2402.03300 | 数学数据 + GRPO |
| 32 | 2024 | RLOO | https://arxiv.org/abs/2402.14740 | critic-free 对照 |
| 33 | 2024 | DeepSeek-V2 | https://arxiv.org/abs/2405.04434 | MLA + MoE |
| 34 | 2024 | Better & Faster LLMs via MTP | https://arxiv.org/abs/2404.19737 | MTP 祖先 |
| 35 | 2024 | DeepSeek-Coder-V2 | https://arxiv.org/abs/2406.11931 | V2 continued pretrain 旁支 |
| 36 | 2024 | ESFT | https://arxiv.org/abs/2407.01906 | 专家特化微调 |
| 37 | 2024 | DeepSeek-Prover-V1.5 | https://arxiv.org/abs/2408.08152 | proof feedback RL |
| 38 | 2024 | Hyper-Connections | https://arxiv.org/abs/2409.19606 | mHC 前身 |
| 39 | 2024 | DeepSeek-V3 | https://arxiv.org/abs/2412.19437 | FP8/DualPipe/MTP |
| 40 | 2025 | DeepSeek-R1 | https://arxiv.org/abs/2501.12948 | R1-Zero/R1/蒸馏 |
| 41 | 2025 | Muon is Scalable for LLM Training | https://arxiv.org/abs/2502.16982 | V4 optimizer 前史 |
| 42 | 2025 | DAPO | https://arxiv.org/abs/2503.14476 | GRPO 工程修正 |
| 43 | 2025 | Understanding R1-Zero-Like Training | https://arxiv.org/abs/2503.20783 | Dr.GRPO / 偏差 |
| 44 | 2025 | DeepSeek-Prover-V2 | https://arxiv.org/abs/2504.21801 | subgoal + RL |
| 45 | 2025 | DeepEP | https://github.com/deepseek-ai/DeepEP | Expert Parallel kernel |
| 46 | 2025 | DualPipe | https://github.com/deepseek-ai/DualPipe | V3/R1 pipeline 实现 |
| 47 | 2025 | DeepGEMM | https://github.com/deepseek-ai/DeepGEMM | FP8 GEMM 实现 |
| 48 | 2025 | DeepSeek-VL2 | https://arxiv.org/abs/2412.10302 | 多模态理解旁支 |
| 49 | 2025 | Janus-Pro | https://arxiv.org/abs/2501.17811 | 统一理解/生成旁支 |
| 50 | 2025 | Kimi k1.5 | https://arxiv.org/abs/2501.12599 | 同期 reasoning RL |
| 51 | 2025 | Kimi K2 | https://arxiv.org/abs/2507.20534 | MLA/MoE/Muon 对照 |
| 52 | 2025 | Kimi Linear | https://arxiv.org/abs/2510.26692 | KDA 前身 |
| 53 | 2025 | DeepSeek-V3.2 | https://arxiv.org/abs/2512.02556 | DSA + Agent |
| 54 | 2025 | mHC | https://arxiv.org/abs/2512.24880 | 受约束 residual |
| 55 | 2026 | Engram | https://arxiv.org/abs/2601.07372 | 条件记忆新稀疏轴 |
| 56 | 2026 | LatentMoE | https://arxiv.org/abs/2601.18089 | K3 routed latent 前身 |
| 57 | 2026 | Attention Residuals | https://arxiv.org/abs/2603.15031 | K3 深度路由 |
| 58 | 2026 | DeepSeek-V4 | https://arxiv.org/abs/2606.19348 | CSA/HCA/mHC/Muon |
| 59 | 2026 | Kimi K3 | https://arxiv.org/abs/2607.24653 | 对照锚点 |
| 60 | 2026 | Kimi K3 official code/model repository | https://github.com/MoonshotAI/Kimi-K3 | 开放实现边界 |
## 5. 允许进入正文的报告数字
所有数字必须带比较对象:
| 数字 | 允许写法 | 禁止写法 |
|---|---|---|
| V2 `42.5% / 93.3% / 5.76×` | V2 报告相对 DeepSeek 67B 特定设置 | MLA 固有加速 |
| V3 `671B / 37B` | total / activated params | 等价 37B dense 端到端成本 |
| V3 `14.8T` | 报告预训练 token 总量 | 数据质量证明 |
| V3 `2.788M H800 hours` | 报告完整训练口径;硬件限定 | 跨模型统一成本 |
| R1 `~800K` | 教师生成/筛选的 distill SFT samples | 小模型自主 RL 数据 |
| V3.2 `1,827 environments` | general-agent 合成环境数 | 全部 Agent 数据规模 |
| V4 `1.6T/49B`、`284B/13B` | Pro/Flash total/active | 两模型性能排序 |
| V4 `27%/10%` 等 | 报告相对 V3.2、1M context 的 FLOPs/KV | 所有服务栈固定比例 |
| K3 `2.8T/104B` | total/active | 与 V4 单轴优劣 |
## 6. 事实审计红线
- [x] DAPO 与 Dr.GRPO 不写成 DeepSeek 官方 R1 recipe。
- [x] “aha/wait” 不写成 RL 从零创造推理的因果证据。
- [x] R1 与 R1-Zero 分开。
- [x] Distill students 不写成重跑 RL。
- [x] aux-loss-free 不写成没有任何 auxiliary balance。
- [x] MLA content cache 与 decoupled RoPE cache 都进入公式。
- [x] FP8 用完整角色合同。
- [x] MTP 训练、可丢弃推理与 speculative role 分开。
- [x] DSA indexer 成本与漏检风险保留。
- [x] CSA 与 HCA 分开。
- [x] mHC 与 AttnRes 分开。
- [x] Muon 与 AdamW 参数分组保留。
- [x] V4 与 K3 按状态对象对照,不按 1M 标签归并。
- [x] 主模型 AttnRes block size 12 与 MiniTriton benchmark block size 2 分开。
- [x] 所有 benchmark/成本数字带报告、配置和比较对象。
## 7. 页面验收合同
- 至少 24 张问题账;
- 至少 20 个正文目录;
- 60 个一手/官方阅读节点;
- 四个独立可操作实验;
- DeepSeekMath 必须在主时间线中;
- DAPO / Dr.GRPO 必须标后续公开研究;
- MLA 实验必须把 RoPE cache 算进去;
- V3 实验必须显示 FP8 角色而不是单一开关;
- R1 pipeline 必须同时可见 Zero 与正式 R1;
- V4/K3 表必须包含“直接祖先 / 同题新解 / 同期不同路线”;
- 桌面与 390px 移动端无文档级横向溢出;
- tabs 支持键盘方向键;
- toy model、作者报告和公式推导使用不同标签;
- 专属 Chrome 回归并纳入全站回归。