From cd96dab22d72af9cbb77b805d6179afabe10f6e7 Mon Sep 17 00:00:00 2001 From: wuyang <5700876+banisherwy@user.noreply.gitee.com> Date: Wed, 29 Jul 2026 11:17:53 +0800 Subject: [PATCH] feat: deepen DeepSeek technical lineage --- PROGRESS.md | 13 +- README.md | 5 +- ROADMAP.md | 5 + package.json | 3 +- research/DEEPSEEK_GROK_LEADS.md | 189 ++++ research/DEEPSEEK_RESEARCH.md | 570 +++++++++++ scripts/check-agents-browser.mjs | 4 +- scripts/check-alignment-browser.mjs | 4 +- scripts/check-data-browser.mjs | 6 +- scripts/check-deepseek-browser.mjs | 303 ++++++ scripts/check-evaluation-browser.mjs | 4 +- scripts/check-inference-serving-browser.mjs | 4 +- scripts/check-moe-browser.mjs | 2 +- scripts/check-multimodal-browser.mjs | 4 +- scripts/check-numerics-browser.mjs | 6 +- scripts/check-reasoning-browser.mjs | 2 +- scripts/check-representation-browser.mjs | 4 +- scripts/check-scaling-browser.mjs | 4 +- scripts/check-training-systems-browser.mjs | 2 +- scripts/check-transformer-browser.mjs | 6 +- src/components/DeepSeekLab.astro | 623 ++++++++++++ src/components/DeepSeekLineage.astro | 28 +- src/data/deepseek.ts | 110 ++ src/data/papers.ts | 54 + src/pages/deepseek/index.astro | 1014 +++++++++++++++++-- src/pages/index.astro | 28 +- src/pages/progress/index.astro | 10 +- 27 files changed, 2905 insertions(+), 102 deletions(-) create mode 100644 research/DEEPSEEK_GROK_LEADS.md create mode 100644 research/DEEPSEEK_RESEARCH.md create mode 100644 scripts/check-deepseek-browser.mjs create mode 100644 src/components/DeepSeekLab.astro create mode 100644 src/data/deepseek.ts diff --git a/PROGRESS.md b/PROGRESS.md index 7daf1f9..a08501c 100644 --- a/PROGRESS.md +++ b/PROGRESS.md @@ -14,7 +14,7 @@ | 表示、位置与残差高速公路 | 完成首版 | 81% | 真实 hidden-state / norm traces、长上下文位置外推与深层稳定性消融 | | Scaling Laws | 完成首版 | 74% | 真实拟合复现、置信区间与更多模型族对照 | | 数据工程与预训练配方 | 完成首版 | 73% | FineWeb / DCLM 逐图精读、真实去重误伤与 mixture traces | -| DeepSeek 专题 | 进行中 | 71% | 补 R1 / DAPO 的逐图训练轨迹与复现对照 | +| DeepSeek 专题 | 完成二轮 | 83% | 真实专家负载 / MLA kernel / RL 训练 traces 与独立复现 | | 指令微调与人类偏好 | 完成首版 | 75% | 真实偏好分歧、RM 长度偏置与 PPO/DPO 小模型复现 | | 推理与测试时扩展 | 完成首版 | 76% | 真实模型采样曲线、PRM 案例与逐篇图表精读 | | 工具使用与长程 Agent | 完成首版 | 74% | 真实环境 traces、cross-harness 对照、Agent RL 曲线与安全案例 | @@ -38,10 +38,10 @@ - [x] 提炼参考网站的编辑设计语言。 - [x] 确认 `git.k1412.top` 为 Gitea/Forgejo 兼容服务且本机 HTTPS 凭据可用于既有仓库。 - [x] 使用 Grok CLI 检索并形成约 95 篇一手论文的补充路线,主代理已回查关键来源。 -- [x] 完成 480 篇关键论文索引,覆盖 16 个标签专题与 Kimi/DeepSeek 聚光主线。 +- [x] 完成 486 篇关键论文索引,覆盖 16 个标签专题与 Kimi/DeepSeek 聚光主线。 - [x] 完成可检索、可按专题筛选的论文库页面。 - [x] 完成 K3、语言模型前史、Transformer 基础、表示/位置/残差、DeepSeek 谱系、Scaling Laws、数据工程、长上下文、MoE、指令微调与人类偏好、推理、Agent、原生多模态、训练系统、推理服务、数值优化与评测安全十七篇首版长文。 -- [x] 完成 K3 三轴架构、语言模型前史四联实验、Transformer 四联实验、表示深度四联实验、DeepSeek 谱系、长上下文、MoE 路由、推理三页签,以及训练系统、推理服务、Scaling、数据工程、数值、Alignment、Agent、原生多模态与评测安全专题各四页签等五十五个原创交互视图。 +- [x] 完成 K3 三轴架构、语言模型前史四联实验、Transformer 四联实验、表示深度四联实验、DeepSeek 四联实验、长上下文、MoE 路由、推理三页签,以及训练系统、推理服务、Scaling、数据工程、数值、Alignment、Agent、原生多模态与评测安全专题各四页签等五十九个原创交互视图。 - [x] 完成长上下文首版:五张成本账、26 篇一手论文、10+ 机制图与 8 策略交互实验室。 - [x] 核验 FlashAttention、DeepSeek-V2/V3.2/V4、Kimi Linear/K3 等六份论文原文,并建立长上下文研究账本。 - [x] 核验 Switch、ST-MoE、DeepSeekMoE、Loss-Free、V3、LatentMoE 与 K3 原文,并建立 MoE 研究账本。 @@ -142,9 +142,16 @@ - [x] Astro 类型检查、生产构建、21 个页面、1145 个站内引用和 14 个跨页锚点通过;桌面 / 移动端无文档级横向溢出。 - [x] 表示深度与既有十三个专题共十四套本地真实 Chrome 回归全部通过。 - [x] 表示深度首版以源提交 `a2c9298`、不可变镜像 `20260729T023329Z-a2c9298` 发布;NAS、VPS/Tailscale、NPM、DNS、HTTPS、证书、门户、公开 Forgejo 与十四套生产 Chrome 回归全链路通过。 +- [x] 启动 DeepSeek 二轮深读:Grok Headless 只用于发散候选问题,正式事实逐项回到 DeepSeek 论文、官方代码仓库与 K3 报告。 +- [x] 建立 24 张正式问题账、10 次历史转向、4 个实验合同和 60 个一手 / 官方节点;明确 R1-Zero / R1、DAPO / Dr.GRPO、MLA RoPE cache、V3 FP8 角色与 V4/K3 状态边界。 +- [x] 完成 DeepSeek 二轮正文:24 个目录、Dense→MoE→MLA→V3→R1→V3.2→V4 因果链、五条旁支、证据审计与稀疏容量—MLA 缓存—V3 协同—RL 偏差四联实验。 +- [x] 论文库新增 DeepSeek-Coder/Coder-V2、ESFT、Prover-V1.5/V2 与 Engram 6 个节点,从 480 篇扩充至 486 篇。 +- [x] DeepSeek 专属 Chrome 断言通过:24 张账、10 次转向、60 节点、MLA 576 元素、FP8 角色、DualPipe、MTP、GRPO/DAPO/Dr.GRPO、R1 身份、键盘 tabs 与 390px 移动端均正确响应。 +- [x] Astro 类型检查、生产构建、21 个页面、1145 个站内引用和 14 个跨页锚点通过;DeepSeek 与既有十四专题共十五套本地真实 Chrome 回归全部通过。 ## 正在进行 +- [ ] DeepSeek 三轮:真实专家负载、MLA kernel、FP8 / pipeline 与 R1-like RL traces,外加独立小模型复现。 - [ ] 表示、位置与残差二轮:真实 hidden-state / norm traces、长上下文位置外推复现与 mHC / AttnRes 深层稳定性消融。 - [ ] 评测安全二轮:真实 cross-harness / pass@k 复跑、Judge 元评测、动态污染与过拒案例。 - [ ] 推理服务二轮:真实 GPU kernel / workload traces、功耗与成本、跨 vLLM / SGLang / TensorRT-LLM 复现。 diff --git a/README.md b/README.md index 470f786..9c0f69e 100644 --- a/README.md +++ b/README.md @@ -17,9 +17,10 @@ - 持续进度:[PROGRESS.md](./PROGRESS.md) - 证据与写作规范:[research/METHODOLOGY.md](./research/METHODOLOGY.md) -当前里程碑包含 17 专题学习地图、480 篇关键论文索引、Kimi K3 完整导读, +当前里程碑包含 17 专题学习地图、486 篇关键论文索引、Kimi K3 完整导读, 语言模型前史、Transformer 基础、表示/位置/残差、DeepSeek 技术谱系、Scaling Laws、数据工程、长上下文、MoE、指令微调与人类偏好、推理、工具使用与长程 Agent、原生多模态、训练系统、推理服务、数值优化,以及评测与安全深度专题, -以及 55 个覆盖核心机制的原创交互视图。 +以及 59 个覆盖核心机制的原创交互视图。DeepSeek 二轮专题以 24 张问题账、10 次技术转向、 +4 个交互实验和 60 个一手/官方节点,串起 Dense、MoE、MLA、V3 协同、R1 与 V4。 其余专题按进度账本持续扩建。 ## 本地开发 diff --git a/ROADMAP.md b/ROADMAP.md index 7450a62..efaefb8 100644 --- a/ROADMAP.md +++ b/ROADMAP.md @@ -100,6 +100,11 @@ SFT / RM / PPO / DPO / RLAIF / RLVR 的角色合同,重点追踪 DeepSeek LLM CoT、自洽性、搜索、验证器、过程奖励、GRPO、DeepSeekMath、DeepSeek-R1/R1-Zero、Kimi k1.5、multi-effort RL 与 on-policy distillation。 +DeepSeek 聚光二轮已完成:以 24 张问题账和 10 次问题转向,串起 DeepSeek LLM、DeepSeekMoE、 +DeepSeekMath、V2、V3、R1-Zero/R1、V3.2 与 V4;DAPO / Dr.GRPO 明确作为公开后续反查, +Coder/Prover/VL/OCR/系统实现/Engram 作为旁支。配套稀疏容量、MLA 缓存、V3 协同与 RL 偏差四个实验, +并以 60 个一手论文或官方仓库节点连接 Kimi K2/K3。 + ### 12. 工具使用与长程 Agent WebGPT、Toolformer、ReAct、Reflexion、代码 Agent、Computer Use、环境奖励、可验证任务、沙箱、百万 Token 轨迹与 K3 Agentic RL。 diff --git a/package.json b/package.json index 97ede52..53efbf9 100644 --- a/package.json +++ b/package.json @@ -23,7 +23,8 @@ "check:multimodal-browser": "node scripts/check-multimodal-browser.mjs", "check:inference-serving-browser": "node scripts/check-inference-serving-browser.mjs", "check:evaluation-browser": "node scripts/check-evaluation-browser.mjs", - "check:representation-browser": "node scripts/check-representation-browser.mjs" + "check:representation-browser": "node scripts/check-representation-browser.mjs", + "check:deepseek-browser": "node scripts/check-deepseek-browser.mjs" }, "dependencies": { "@astrojs/sitemap": "3.7.3", diff --git a/research/DEEPSEEK_GROK_LEADS.md b/research/DEEPSEEK_GROK_LEADS.md new file mode 100644 index 0000000..d664ee9 --- /dev/null +++ b/research/DEEPSEEK_GROK_LEADS.md @@ -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` + diff --git a/research/DEEPSEEK_RESEARCH.md b/research/DEEPSEEK_RESEARCH.md new file mode 100644 index 0000000..d00358b --- /dev/null +++ b/research/DEEPSEEK_RESEARCH.md @@ -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,并通过 `` 闭环生成。不能将其简化为“更多工具调用文本”。 + +证据缓存:`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 回归并纳入全站回归。 diff --git a/scripts/check-agents-browser.mjs b/scripts/check-agents-browser.mjs index 565cfe6..38f4b5f 100644 --- a/scripts/check-agents-browser.mjs +++ b/scripts/check-agents-browser.mjs @@ -228,8 +228,8 @@ if (numeric(reliability.initial.passAt) <= numeric(reliability.k2.passAt) || num if (reliability.nonIdempotent.sideRisk === "LOW") failures.push("非幂等写操作风险没有提升"); if (numeric(rl.wait.utilization) >= numeric(rl.full.utilization) || numeric(rl.wait.lostWork) <= numeric(rl.full.lostWork)) failures.push("wait-all 长尾/重算方向异常"); if (!rl.wait.takeaway.includes("wait-all") || rl.keyboardSelected !== "rl" || rl.keyboardVisible !== "rl") failures.push("长程 RL 解释或键盘导航异常"); -if (home.releaseCards !== 15 || !home.firstRelease.includes("hidden state") || home.firstHref !== "/architecture/representation/") failures.push("首页评测首发入口异常"); -if (home.paperCount !== "480" || papers.total !== 480 || !papers.hasAgentFilter || papers.agentVisible < 52) failures.push("论文库 Agent 标签或论文总数异常"); +if (home.releaseCards !== 16 || !home.firstRelease.includes("从 Dense 到百万上下文") || home.firstHref !== "/deepseek/") failures.push("首页评测首发入口异常"); +if (home.paperCount !== "486" || papers.total !== 486 || !papers.hasAgentFilter || papers.agentVisible < 52) failures.push("论文库 Agent 标签或论文总数异常"); if (!mobile.menuVisible || mobile.menuOpen !== "true" || mobile.tabs !== 4) failures.push("移动端导航或实验异常"); if (exceptions.length) failures.push(`浏览器异常:${exceptions.join(" | ")}`); diff --git a/scripts/check-alignment-browser.mjs b/scripts/check-alignment-browser.mjs index 1d02202..3b5d32f 100644 --- a/scripts/check-alignment-browser.mjs +++ b/scripts/check-alignment-browser.mjs @@ -226,8 +226,8 @@ if (!update.steps[0].includes("Fixed preference")) failures.push("DPO 更新流 if (!recipe.family.includes("Multi-effort") || !recipe.regime.includes("9 RL experts") || !recipe.constraints.includes("verbosity")) failures.push("K3 配方合同异常"); if (!recipe.path.some((step) => step.includes("3 domains × 3 efforts")) || !recipe.path.some((step) => step.includes("MOPD"))) failures.push("K3 配方路径异常"); if (recipe.keyboardSelected !== "recipe" || recipe.keyboardVisible !== "recipe") failures.push("实验 tab 键盘导航异常"); -if (home.releaseCards !== 15 || !home.firstRelease.includes("hidden state") || home.firstHref !== "/architecture/representation/") failures.push("首页评测首发入口异常"); -if (home.paperCount !== "480" || papers.total !== 480 || !papers.hasAlignmentFilter || papers.alignmentVisible < 35) failures.push("论文库后训练标签或论文总数异常"); +if (home.releaseCards !== 16 || !home.firstRelease.includes("从 Dense 到百万上下文") || home.firstHref !== "/deepseek/") failures.push("首页评测首发入口异常"); +if (home.paperCount !== "486" || papers.total !== 486 || !papers.hasAlignmentFilter || papers.alignmentVisible < 35) failures.push("论文库后训练标签或论文总数异常"); if (!mobile.menuVisible || mobile.menuOpen !== "true" || mobile.tabs !== 4) failures.push("移动端导航或实验异常"); if (exceptions.length) failures.push(`浏览器异常:${exceptions.join(" | ")}`); diff --git a/scripts/check-data-browser.mjs b/scripts/check-data-browser.mjs index e240093..6399475 100644 --- a/scripts/check-data-browser.mjs +++ b/scripts/check-data-browser.mjs @@ -234,11 +234,11 @@ if (layout.navLinks !== 20 || mobile.mobileLinks !== 20 || home.navLinks !== 20) if (layout.documentOverflow > 0 || mobile.documentOverflow > 0 || home.documentOverflow > 0) failures.push("页面存在横向溢出"); if (layout.navGap < 0) failures.push(`桌面导航碰撞:${layout.navGap}px`); if (!mobile.menuVisible || mobile.menuOpen !== "true") failures.push("移动端菜单不可用"); -if (home.releaseCards !== 15 || !home.firstRelease.includes("hidden state") || home.firstHref !== "/architecture/representation/") { +if (home.releaseCards !== 16 || !home.firstRelease.includes("从 Dense 到百万上下文") || home.firstHref !== "/deepseek/") { failures.push("首页 Transformer 新章入口异常"); } -if (home.paperCount !== "480") failures.push(`首页论文总数异常:${home.paperCount}`); -if (!papers.hasDataFilter || papers.total !== 480 || papers.visible < 25) failures.push("论文库数据标签或论文总数异常"); +if (home.paperCount !== "486") failures.push(`首页论文总数异常:${home.paperCount}`); +if (!papers.hasDataFilter || papers.total !== 486 || papers.visible < 25) failures.push("论文库数据标签或论文总数异常"); if (exceptions.length) failures.push(`浏览器脚本异常:${exceptions.join("; ")}`); socket.close(); diff --git a/scripts/check-deepseek-browser.mjs b/scripts/check-deepseek-browser.mjs new file mode 100644 index 0000000..8b0c7cc --- /dev/null +++ b/scripts/check-deepseek-browser.mjs @@ -0,0 +1,303 @@ +import { writeFileSync } from "node:fs"; + +const cdpPort = process.env.CDP_PORT ?? "9227"; +const baseUrl = process.env.SITE_URL ?? "http://127.0.0.1:4327"; +const pages = await fetch(`http://127.0.0.1:${cdpPort}/json/list`).then((response) => response.json()); +const page = pages.find((entry) => entry.type === "page"); +if (!page) throw new Error(`CDP ${cdpPort} 没有可用页面`); + +const socket = new WebSocket(page.webSocketDebuggerUrl); +await new Promise((resolve, reject) => { + socket.addEventListener("open", resolve, { once: true }); + socket.addEventListener("error", reject, { once: true }); +}); + +let nextId = 0; +const pending = new Map(); +const exceptions = []; +socket.addEventListener("message", (event) => { + const message = JSON.parse(event.data); + if (message.id && pending.has(message.id)) { + const { resolve, reject } = pending.get(message.id); + pending.delete(message.id); + if (message.error) reject(new Error(message.error.message)); + else resolve(message.result); + } + if (message.method === "Runtime.exceptionThrown") { + exceptions.push(message.params.exceptionDetails.exception?.description ?? message.params.exceptionDetails.text); + } +}); + +const command = (method, params = {}) => new Promise((resolve, reject) => { + const id = ++nextId; + pending.set(id, { resolve, reject }); + socket.send(JSON.stringify({ id, method, params })); +}); +const pause = (milliseconds) => new Promise((resolve) => setTimeout(resolve, milliseconds)); +const evaluate = async (expression) => { + const result = await command("Runtime.evaluate", { expression, returnByValue: true, awaitPromise: true }); + if (result.exceptionDetails) throw new Error(result.exceptionDetails.exception?.description ?? result.exceptionDetails.text); + return result.result.value; +}; +const navigate = async (path) => { + await command("Page.navigate", { url: `${baseUrl}${path}` }); + for (let attempt = 0; attempt < 70; attempt += 1) { + await pause(100); + if (await evaluate("document.readyState === 'complete'")) return; + } + throw new Error(`${path} 加载超时`); +}; +const screenshot = async (path) => { + const result = await command("Page.captureScreenshot", { format: "png", captureBeyondViewport: false }); + writeFileSync(path, Buffer.from(result.data, "base64")); +}; + +await command("Page.enable"); +await command("Runtime.enable"); +await command("Emulation.setDeviceMetricsOverride", { + width: 1440, + height: 1100, + deviceScaleFactor: 1, + mobile: false, +}); + +await navigate("/deepseek/"); +await screenshot("/tmp/llm-atlas-deepseek-desktop.png"); + +const overview = await evaluate(`(() => ({ + title: document.querySelector("h1")?.textContent.trim(), + sections: document.querySelectorAll(".article-section").length, + tocLinks: document.querySelectorAll(".side-rail a").length, + ledgers: document.querySelectorAll(".ledger-card").length, + waves: document.querySelectorAll(".wave-grid > article").length, + paperLinks: document.querySelectorAll("[data-deepseek-paper-chain] a").length, + labTabs: document.querySelectorAll("[data-ds-tab]").length, + labPanels: document.querySelectorAll("[data-ds-panel]").length, + branches: document.querySelectorAll(".branch-grid > a").length, + followups: document.querySelectorAll(".lineage-row.followup").length, + navLinks: document.querySelectorAll(".top-nav a").length, + activeNav: document.querySelector('.top-nav a[aria-current="page"]')?.textContent.trim(), + documentOverflow: document.documentElement.scrollWidth - document.documentElement.clientWidth, +}))()`); + +const capacity = await evaluate(`(() => { + const root = document.querySelector("[data-deepseek-lab]"); + const read = () => ({ + panel: root.querySelector("[data-ds-panel]:not([hidden])").dataset.dsPanel, + total: root.querySelector("[data-total-capacity]").textContent.trim(), + active: root.querySelector("[data-active-compute]").textContent.trim(), + combinations: root.querySelector("[data-combinations]").textContent.trim(), + communication: root.querySelector("[data-communication]").textContent.trim(), + name: root.querySelector("[data-capacity-name]").textContent.trim(), + explain: root.querySelector("[data-capacity-explain]").textContent.trim(), + }); + const initial = read(); + root.querySelector('[data-capacity-preset="dense"]').click(); + const dense = read(); + root.querySelector('[data-capacity-preset="deepseekmoe"]').click(); + const fine = read(); + root.querySelector('[data-capacity-preset="v3"]').click(); + const v3 = read(); + return { initial, dense, fine, v3 }; +})()`); + +const cache = await evaluate(`(() => { + const root = document.querySelector("[data-deepseek-lab]"); + root.querySelector('[data-ds-tab="cache"]').click(); + const read = () => ({ + panel: root.querySelector("[data-ds-panel]:not([hidden])").dataset.dsPanel, + mha: root.querySelector("[data-mha-elements]").textContent.trim(), + gqa: root.querySelector("[data-gqa-elements]").textContent.trim(), + mla: root.querySelector("[data-mla-elements]").textContent.trim(), + rope: root.querySelector("[data-rope-cache]").textContent.trim(), + selected: root.querySelector("[data-selected-cache]").textContent.trim(), + baseline: root.querySelector("[data-mha-cache]").textContent.trim(), + reduction: root.querySelector("[data-cache-reduction]").textContent.trim(), + boundary: root.querySelector("[data-cache-boundary]").textContent.trim(), + }); + const initial = read(); + const rope = root.querySelector("[data-rope-dim]"); + rope.value = "0"; + rope.dispatchEvent(new Event("input", { bubbles: true })); + const noRope = read(); + const context = root.querySelector("[data-context-length]"); + context.value = "1048576"; + context.dispatchEvent(new Event("input", { bubbles: true })); + const million = read(); + return { initial, noRope, million }; +})()`); + +const codesign = await evaluate(`(() => { + const root = document.querySelector("[data-deepseek-lab]"); + root.querySelector('[data-ds-tab="codesign"]').click(); + const readSchedule = () => ({ + bubble: root.querySelector("[data-bubble]").textContent.trim(), + exposed: root.querySelector("[data-exposed-comm]").textContent.trim(), + }); + const oneWay = readSchedule(); + root.querySelector('[data-schedule="dual"]').click(); + const dual = readSchedule(); + root.querySelector('[data-precision="naive"]').click(); + const naive = { + risk: root.querySelector("[data-risk-label]").textContent.trim(), + accum: root.querySelector("[data-accum-dtype]").textContent.trim(), + explain: root.querySelector("[data-precision-explain]").textContent.trim(), + }; + root.querySelector('[data-precision="mixed"]').click(); + const mixed = { + risk: root.querySelector("[data-risk-label]").textContent.trim(), + accum: root.querySelector("[data-accum-dtype]").textContent.trim(), + sensitive: root.querySelector("[data-sensitive-dtype]").textContent.trim(), + }; + root.querySelector('[data-mtp-role="off"]').click(); + const off = root.querySelector("[data-mtp-supervision]").textContent.trim(); + root.querySelector('[data-mtp-role="draft"]').click(); + const draft = { + supervision: root.querySelector("[data-mtp-supervision]").textContent.trim(), + cost: root.querySelector("[data-mtp-main-cost]").textContent.trim(), + explain: root.querySelector("[data-mtp-explain]").textContent.trim(), + }; + return { panel: root.querySelector("[data-ds-panel]:not([hidden])").dataset.dsPanel, oneWay, dual, naive, mixed, off, draft }; +})()`); + +const rl = await evaluate(`(() => { + const root = document.querySelector("[data-deepseek-lab]"); + root.querySelector('[data-ds-tab="rl"]').click(); + const read = () => ({ + signal: root.querySelector("[data-signal-state]").textContent.trim(), + mean: root.querySelector("[data-reward-mean]").textContent.trim(), + std: root.querySelector("[data-reward-std]").textContent.trim(), + effective: root.querySelector("[data-effective]").textContent.trim(), + provenance: root.querySelector("[data-provenance]").textContent.trim(), + algorithm: root.querySelector("[data-algorithm-name]").textContent.trim(), + boundary: root.querySelector("[data-rl-boundary]").textContent.trim(), + weights: [...root.querySelectorAll("[data-advantage-rows] > div span:last-child")].map((node) => node.textContent.trim()), + }); + const initial = read(); + root.querySelector('[data-reward-preset="same"]').click(); + const same = read(); + root.querySelector('[data-reward-preset="longwrong"]').click(); + root.querySelector('[data-rl-algorithm="dapo"]').click(); + const dapo = read(); + root.querySelector('[data-rl-algorithm="dr"]').click(); + const dr = read(); + root.querySelector('[data-r1-mode="r1"]').click(); + const r1 = root.querySelector("[data-r1-mode-explain]").textContent.trim(); + root.querySelector('[data-r1-mode="distill"]').click(); + const distill = root.querySelector("[data-r1-mode-explain]").textContent.trim(); + const first = root.querySelector('[data-ds-tab="capacity"]'); + first.focus(); + first.dispatchEvent(new KeyboardEvent("keydown", { key: "ArrowRight", bubbles: true })); + return { + initial, same, dapo, dr, r1, distill, + keyboardSelected: root.querySelector('[data-ds-tab][aria-selected="true"]').dataset.dsTab, + keyboardVisible: root.querySelector("[data-ds-panel]:not([hidden])").dataset.dsPanel, + }; +})()`); + +await evaluate(`(() => { + document.querySelector("[data-deepseek-lab]").scrollIntoView({ block: "start", behavior: "instant" }); + window.scrollBy(0, -82); +})()`); +await pause(180); +await screenshot("/tmp/llm-atlas-deepseek-lab-desktop.png"); + +await navigate("/"); +const home = await evaluate(`(() => ({ + releaseCards: document.querySelectorAll(".release-card").length, + firstRelease: document.querySelector(".release-card h2").textContent.trim(), + firstHref: document.querySelector(".release-card").getAttribute("href"), + paperCount: document.querySelector(".hero-stats div:nth-child(3) b").textContent.trim(), + navLinks: document.querySelectorAll(".top-nav a").length, +}))()`); + +await navigate("/papers/"); +const papers = await evaluate(`(() => { + const button = [...document.querySelectorAll("[data-filter]")].find((node) => node.textContent.trim() === "DeepSeek"); + button?.click(); + return { + total: document.querySelectorAll("[data-paper]").length, + visible: document.querySelectorAll("[data-paper]:not([hidden])").length, + hasFilter: Boolean(button), + hasCoder: document.body.textContent.includes("DeepSeek-Coder-V2"), + hasEngram: document.body.textContent.includes("Conditional Memory via Scalable Lookup"), + }; +})()`); + +await command("Emulation.setDeviceMetricsOverride", { + width: 390, + height: 844, + deviceScaleFactor: 1, + mobile: true, +}); +await navigate("/deepseek/"); +const mobile = await evaluate(`(() => { + const root = document.querySelector("[data-deepseek-lab]"); + root.scrollIntoView({ block: "start", behavior: "instant" }); + const toggle = document.querySelector("#menu-toggle"); + toggle?.click(); + return { + documentOverflow: document.documentElement.scrollWidth - document.documentElement.clientWidth, + menuVisible: getComputedStyle(toggle).display !== "none", + menuOpen: toggle.getAttribute("aria-expanded"), + mobileLinks: document.querySelectorAll("#mobile-nav a").length, + tabs: root.querySelectorAll("[data-ds-tab]").length, + offenders: [...document.querySelectorAll("body *")] + .filter((node) => !node.closest(".paper-chain, .advantage-table, .precision-table, .mapping-table, [data-deepseek-lab]")) + .filter((node) => node.getBoundingClientRect().right > document.documentElement.clientWidth + 1) + .slice(0, 12) + .map((node) => ({ + tag: node.tagName, + className: typeof node.className === "string" ? node.className : "", + right: Math.round(node.getBoundingClientRect().right), + width: Math.round(node.getBoundingClientRect().width), + })), + }; +})()`); +await evaluate(`(() => { + document.querySelector("#menu-toggle")?.click(); + window.scrollBy(0, -82); +})()`); +await pause(180); +await screenshot("/tmp/llm-atlas-deepseek-mobile.png"); + +const report = { overview, capacity, cache, codesign, rl, home, papers, mobile, exceptions }; +console.log(JSON.stringify(report, null, 2)); + +const numeric = (text) => Number.parseFloat(text.replaceAll(",", "")); +const failures = []; +if (!overview.title.includes("为什么转向")) failures.push("专题标题异常"); +if (overview.sections !== 25 || overview.tocLinks !== 25) failures.push("二十四个编号专题加阅读链的目录结构异常"); +if (overview.ledgers !== 24 || overview.waves !== 10) failures.push("二十四张问题账或十次转向结构异常"); +if (overview.paperLinks !== 60 || overview.branches !== 5 || overview.followups !== 1) failures.push("论文链、旁支或公开后续标记异常"); +if (overview.labTabs !== 4 || overview.labPanels !== 4) failures.push("四联实验结构异常"); +if (overview.navLinks !== 20 || home.navLinks !== 20 || mobile.mobileLinks !== 20 || overview.activeNav !== "DeepSeek") failures.push("全站导航未同步 DeepSeek"); +if (overview.documentOverflow > 1 || mobile.documentOverflow > 1) failures.push("桌面或移动端存在文档级横向溢出"); +if (capacity.initial.panel !== "capacity" || capacity.initial.total !== "32.1× FFN" || capacity.initial.active !== "1.13× FFN") failures.push("V3 稀疏容量初始账异常"); +if (!capacity.dense.name.includes("DENSE") || capacity.dense.communication !== "NONE" || numeric(capacity.dense.total) !== numeric(capacity.dense.active)) failures.push("Dense 容量预设异常"); +if (!capacity.fine.name.includes("FINE-GRAINED") || !capacity.fine.explain.includes("shared")) failures.push("DeepSeekMoE 预设异常"); +if (!capacity.v3.combinations.includes("10^") || capacity.v3.communication !== "HIGH") failures.push("V3 路由组合或通信方向异常"); +if (cache.initial.panel !== "cache" || numeric(cache.initial.mha) !== 32768 || numeric(cache.initial.gqa) !== 2048 || numeric(cache.initial.mla) !== 576 || numeric(cache.initial.rope) !== 64) failures.push("MLA 精确元素账异常"); +if (numeric(cache.initial.reduction) !== 98.2 || numeric(cache.noRope.mla) !== 512 || numeric(cache.noRope.reduction) <= numeric(cache.initial.reduction)) failures.push("RoPE cache 或 MLA reduction 异常"); +if (!cache.million.selected.includes("GiB") || !cache.million.boundary.includes("1,048,576")) failures.push("百万 Token 缓存账异常"); +if (numeric(codesign.dual.bubble) >= numeric(codesign.oneWay.bubble) || numeric(codesign.dual.exposed) >= numeric(codesign.oneWay.exposed)) failures.push("Dual-ended toy 没有减少空泡或暴露通信"); +if (codesign.naive.risk !== "CRITICAL" || codesign.naive.accum !== "FP8" || codesign.mixed.risk !== "MANAGED" || !codesign.mixed.accum.includes("FP32")) failures.push("FP8 角色合同异常"); +if (!codesign.off.includes("1 token") || !codesign.draft.supervision.includes("draft") || !codesign.draft.explain.includes("验收率")) failures.push("MTP 生命周期异常"); +if (rl.initial.signal !== "GROUP-RELATIVE SIGNAL" || rl.same.signal !== "ZERO GROUP SIGNAL" || !rl.same.boundary.includes("优势为零")) failures.push("GRPO 零方差信号异常"); +if (!rl.dapo.provenance.includes("2503.14476") || !rl.dapo.algorithm.includes("FOLLOW-UP") || !rl.dr.provenance.includes("2503.20783")) failures.push("DAPO / Dr.GRPO 来源边界异常"); +if (!rl.r1.includes("cold start") || !rl.distill.includes("没有重演")) failures.push("R1 / distill 身份切换异常"); +if (rl.keyboardSelected !== "cache" || rl.keyboardVisible !== "cache") failures.push("实验键盘 tab 导航异常"); +if (home.releaseCards !== 16 || !home.firstRelease.includes("从 Dense 到百万上下文") || home.firstHref !== "/deepseek/" || home.paperCount !== "486") failures.push("首页 DeepSeek 首发入口或论文数异常"); +if (papers.total !== 486 || !papers.hasFilter || papers.visible < 20 || !papers.hasCoder || !papers.hasEngram) failures.push("论文库 DeepSeek 聚光异常"); +if (!mobile.menuVisible || mobile.menuOpen !== "true" || mobile.tabs !== 4) failures.push("移动端导航或实验异常"); +if (mobile.offenders.length) failures.push(`移动端越界元素:${JSON.stringify(mobile.offenders)}`); +if (exceptions.length) failures.push(`浏览器异常:${exceptions.join(" | ")}`); + +if (failures.length) { + console.error(`\nFAIL\n- ${failures.join("\n- ")}`); + process.exitCode = 1; +} else { + console.log("\nPASS DeepSeek browser regression"); +} + +socket.close(); diff --git a/scripts/check-evaluation-browser.mjs b/scripts/check-evaluation-browser.mjs index 8b102a4..307bb5d 100644 --- a/scripts/check-evaluation-browser.mjs +++ b/scripts/check-evaluation-browser.mjs @@ -277,8 +277,8 @@ if (numeric(system.initial.success) <= numeric(system.initial.model) || numeric( if (numeric(system.cheap.success) >= numeric(system.initial.success) || numeric(system.cheap.cost) !== 4) failures.push("低预算没有降低成功率 / 成本"); if (numeric(system.locked.unsafe) !== 0 || numeric(system.locked.overrefusal) <= numeric(system.initial.overrefusal)) failures.push("安全壳没有展现危险服从 / 过拒权衡"); if (system.keyboardSelected !== "judge" || system.keyboardVisible !== "judge") failures.push("实验键盘 tab 导航异常"); -if (home.releaseCards !== 15 || !home.firstRelease.includes("hidden state") || home.firstHref !== "/architecture/representation/") failures.push("首页评测首发入口异常"); -if (home.paperCount !== "480" || home.topicCount !== "17" || papers.total !== 480 || !papers.hasFilter || papers.visible < 80) failures.push("首页 / 论文库评测索引异常"); +if (home.releaseCards !== 16 || !home.firstRelease.includes("从 Dense 到百万上下文") || home.firstHref !== "/deepseek/") failures.push("首页评测首发入口异常"); +if (home.paperCount !== "486" || home.topicCount !== "17" || papers.total !== 486 || !papers.hasFilter || papers.visible < 80) failures.push("首页 / 论文库评测索引异常"); if (!mobile.menuVisible || mobile.menuOpen !== "true" || mobile.tabs !== 4) failures.push("移动端导航或实验异常"); if (mobile.offenders.length) failures.push(`移动端越界元素:${JSON.stringify(mobile.offenders)}`); if (exceptions.length) failures.push(`浏览器异常:${exceptions.join(" | ")}`); diff --git a/scripts/check-inference-serving-browser.mjs b/scripts/check-inference-serving-browser.mjs index 9447469..9af065e 100644 --- a/scripts/check-inference-serving-browser.mjs +++ b/scripts/check-inference-serving-browser.mjs @@ -264,8 +264,8 @@ if (!fleet.k3.avoided.includes("320K") || fleet.k3.shortSlo !== "PROTECTED") fai if (!fleet.failed.state.includes("SECONDARY RE-PREFILL") || !fleet.failed.recompute.includes("FAILED PRIMARY")) failures.push("缓存故障没有触发原子失效后的重算"); if (fleet.bursty.shortSlo !== "VIOLATED") failures.push("平均并发阈值没有暴露长请求突发"); if (fleet.keyboardSelected !== "phase" || fleet.keyboardVisible !== "phase") failures.push("实验键盘 tab 导航异常"); -if (home.releaseCards !== 15 || !home.firstRelease.includes("hidden state") || home.firstHref !== "/architecture/representation/") failures.push("首页评测首发入口异常"); -if (home.paperCount !== "480" || papers.total !== 480 || !papers.hasFilter || papers.visible !== 45) failures.push("论文库推理服务标签或总数异常"); +if (home.releaseCards !== 16 || !home.firstRelease.includes("从 Dense 到百万上下文") || home.firstHref !== "/deepseek/") failures.push("首页评测首发入口异常"); +if (home.paperCount !== "486" || papers.total !== 486 || !papers.hasFilter || papers.visible !== 46) failures.push("论文库推理服务标签或总数异常"); if (!mobile.menuVisible || mobile.menuOpen !== "true" || mobile.tabs !== 4) failures.push("移动端导航或实验异常"); if (mobile.offenders.length) failures.push(`移动端越界元素:${JSON.stringify(mobile.offenders)}`); if (exceptions.length) failures.push(`浏览器异常:${exceptions.join(" | ")}`); diff --git a/scripts/check-moe-browser.mjs b/scripts/check-moe-browser.mjs index 87abb20..7a4070f 100644 --- a/scripts/check-moe-browser.mjs +++ b/scripts/check-moe-browser.mjs @@ -177,7 +177,7 @@ if (layout.documentOverflow > 0 || mobile.documentOverflow > 0 || home.documentO } if (layout.navGap < 0) failures.push(`桌面导航碰撞:${layout.navGap}px`); if (!mobile.menuVisible) failures.push("移动端菜单按钮未显示"); -if (home.releaseCards !== 15) failures.push(`首页新章卡数量异常:${home.releaseCards}`); +if (home.releaseCards !== 16) failures.push(`首页新章卡数量异常:${home.releaseCards}`); if (exceptions.length) failures.push(`浏览器脚本异常:${exceptions.join("; ")}`); socket.close(); diff --git a/scripts/check-multimodal-browser.mjs b/scripts/check-multimodal-browser.mjs index a0e62c5..c584144 100644 --- a/scripts/check-multimodal-browser.mjs +++ b/scripts/check-multimodal-browser.mjs @@ -246,8 +246,8 @@ if (ocr.unreported.status !== "OUT OF EVIDENCE" || ocr.unreported.accuracy !== " if (loop.toolsStart.state !== "OPEN" || loop.toolsEnd.state !== "VERIFIED" || loop.toolsEnd.evidence !== "97%" || loop.toolsEnd.tools !== "3") failures.push("vision-in-the-loop 终局异常"); if (loop.cotEnd.state !== "FAILED" || !loop.cotEnd.takeaway.includes("不能凭空增加")) failures.push("文字 CoT 与新观察没有分开"); if (loop.keyboardSelected !== "connector" || loop.keyboardVisible !== "connector") failures.push("实验键盘 tab 导航异常"); -if (home.releaseCards !== 15 || !home.firstRelease.includes("hidden state") || home.firstHref !== "/architecture/representation/") failures.push("首页评测首发入口异常"); -if (home.paperCount !== "480" || papers.total !== 480 || !papers.hasFilter || papers.multimodalVisible < 59) failures.push("论文库多模态标签或总数异常"); +if (home.releaseCards !== 16 || !home.firstRelease.includes("从 Dense 到百万上下文") || home.firstHref !== "/deepseek/") failures.push("首页评测首发入口异常"); +if (home.paperCount !== "486" || papers.total !== 486 || !papers.hasFilter || papers.multimodalVisible < 59) failures.push("论文库多模态标签或总数异常"); if (!mobile.menuVisible || mobile.menuOpen !== "true" || mobile.tabs !== 4) failures.push("移动端导航或实验异常"); if (mobile.offenders.length) failures.push(`移动端越界元素:${JSON.stringify(mobile.offenders)}`); if (exceptions.length) failures.push(`浏览器异常:${exceptions.join(" | ")}`); diff --git a/scripts/check-numerics-browser.mjs b/scripts/check-numerics-browser.mjs index 692f919..b69910e 100644 --- a/scripts/check-numerics-browser.mjs +++ b/scripts/check-numerics-browser.mjs @@ -277,11 +277,11 @@ if (layout.navLinks !== 20 || mobile.mobileLinks !== 20 || home.navLinks !== 20) if (layout.documentOverflow > 0 || mobile.documentOverflow > 0 || home.documentOverflow > 0) failures.push("页面存在横向溢出"); if (layout.navGap < 0) failures.push(`桌面导航碰撞:${layout.navGap}px`); if (!mobile.menuVisible || mobile.menuOpen !== "true") failures.push("移动端菜单不可用"); -if (home.releaseCards !== 15 || !home.firstRelease.includes("hidden state") || home.firstHref !== "/architecture/representation/") { +if (home.releaseCards !== 16 || !home.firstRelease.includes("从 Dense 到百万上下文") || home.firstHref !== "/deepseek/") { failures.push("首页 Transformer 新章入口异常"); } -if (home.paperCount !== "480") failures.push(`首页论文总数异常:${home.paperCount}`); -if (!papers.hasOptimizerFilter || papers.total !== 480 || papers.visible < 8) failures.push("论文库优化器标签或论文总数异常"); +if (home.paperCount !== "486") failures.push(`首页论文总数异常:${home.paperCount}`); +if (!papers.hasOptimizerFilter || papers.total !== 486 || papers.visible < 8) failures.push("论文库优化器标签或论文总数异常"); if (exceptions.length) failures.push(`浏览器脚本异常:${exceptions.join("; ")}`); socket.close(); diff --git a/scripts/check-reasoning-browser.mjs b/scripts/check-reasoning-browser.mjs index 2898751..6444bb6 100644 --- a/scripts/check-reasoning-browser.mjs +++ b/scripts/check-reasoning-browser.mjs @@ -289,7 +289,7 @@ if (layout.documentOverflow > 0 || mobile.documentOverflow > 0 || home.documentO } if (layout.navGap < 0) failures.push(`桌面导航碰撞:${layout.navGap}px`); if (!mobile.menuVisible || mobile.menuOpen !== "true") failures.push("移动端菜单不可用"); -if (home.releaseCards !== 15 || !home.firstRelease.includes("hidden state")) failures.push("首页评测新章入口异常"); +if (home.releaseCards !== 16 || !home.firstRelease.includes("从 Dense 到百万上下文")) failures.push("首页评测新章入口异常"); if (exceptions.length) failures.push(`浏览器脚本异常:${exceptions.join("; ")}`); socket.close(); diff --git a/scripts/check-representation-browser.mjs b/scripts/check-representation-browser.mjs index 762fca0..f1e451b 100644 --- a/scripts/check-representation-browser.mjs +++ b/scripts/check-representation-browser.mjs @@ -288,8 +288,8 @@ if (numeric(residual.attnres.states) !== 9 || !residual.attnres.routeExplain.inc if (!residual.clamp.activation.includes("V4") || !residual.clamp.bound.includes("100")) failures.push("DeepSeek-V4 clamp 展示异常"); if (!residual.situ.activation.includes("KIMI") || !residual.situ.bound.includes("100")) failures.push("K3 SiTU 上界展示异常"); if (residual.keyboardSelected !== "position" || residual.keyboardVisible !== "position") failures.push("实验键盘 tab 导航异常"); -if (home.releaseCards !== 15 || !home.firstRelease.includes("hidden state") || home.firstHref !== "/architecture/representation/") failures.push("首页表示新章入口异常"); -if (home.paperCount !== "480" || home.topicCount !== "17" || papers.total !== 480 || !papers.hasFilter || papers.visible < 30) failures.push("首页 / 论文库表示索引异常"); +if (home.releaseCards !== 16 || !home.firstRelease.includes("从 Dense 到百万上下文") || home.firstHref !== "/deepseek/") failures.push("首页表示新章入口异常"); +if (home.paperCount !== "486" || home.topicCount !== "17" || papers.total !== 486 || !papers.hasFilter || papers.visible < 30) failures.push("首页 / 论文库表示索引异常"); if (!mobile.menuVisible || mobile.menuOpen !== "true" || mobile.tabs !== 4) failures.push("移动端导航或实验异常"); if (mobile.offenders.length) failures.push(`移动端越界元素:${JSON.stringify(mobile.offenders)}`); if (exceptions.length) failures.push(`浏览器异常:${exceptions.join(" | ")}`); diff --git a/scripts/check-scaling-browser.mjs b/scripts/check-scaling-browser.mjs index b7e0d60..ec543a8 100644 --- a/scripts/check-scaling-browser.mjs +++ b/scripts/check-scaling-browser.mjs @@ -273,10 +273,10 @@ if (layout.navLinks !== 20 || mobile.mobileLinks !== 20 || home.navLinks !== 20) if (layout.documentOverflow > 0 || mobile.documentOverflow > 0 || home.documentOverflow > 0) failures.push("页面存在横向溢出"); if (layout.navGap < 0) failures.push(`桌面导航碰撞:${layout.navGap}px`); if (!mobile.menuVisible || mobile.menuOpen !== "true") failures.push("移动端菜单不可用"); -if (home.releaseCards !== 15 || !home.firstRelease.includes("hidden state") || home.firstHref !== "/architecture/representation/") { +if (home.releaseCards !== 16 || !home.firstRelease.includes("从 Dense 到百万上下文") || home.firstHref !== "/deepseek/") { failures.push("首页 Transformer 新章入口异常"); } -if (home.paperCount !== "480") failures.push(`首页论文总数异常:${home.paperCount}`); +if (home.paperCount !== "486") failures.push(`首页论文总数异常:${home.paperCount}`); if (exceptions.length) failures.push(`浏览器脚本异常:${exceptions.join("; ")}`); socket.close(); diff --git a/scripts/check-training-systems-browser.mjs b/scripts/check-training-systems-browser.mjs index 4e9ebb6..de5b0ac 100644 --- a/scripts/check-training-systems-browser.mjs +++ b/scripts/check-training-systems-browser.mjs @@ -233,7 +233,7 @@ if (layout.articleSections !== 16 || layout.paperLinks !== 37 || layout.labTabs if (layout.documentOverflow > 0 || mobile.documentOverflow > 0 || home.documentOverflow > 0) failures.push("页面存在横向溢出"); if (layout.navGap < 0) failures.push(`桌面导航碰撞:${layout.navGap}px`); if (!mobile.menuVisible || mobile.menuOpen !== "true") failures.push("移动端菜单不可用"); -if (home.releaseCards !== 15 || !home.firstRelease.includes("hidden state")) failures.push("首页评测新章入口异常"); +if (home.releaseCards !== 16 || !home.firstRelease.includes("从 Dense 到百万上下文")) failures.push("首页评测新章入口异常"); if (exceptions.length) failures.push(`浏览器脚本异常:${exceptions.join("; ")}`); socket.close(); diff --git a/scripts/check-transformer-browser.mjs b/scripts/check-transformer-browser.mjs index 0853f67..f922d66 100644 --- a/scripts/check-transformer-browser.mjs +++ b/scripts/check-transformer-browser.mjs @@ -172,7 +172,7 @@ const home = await evaluate(`(() => ({ releaseCards: document.querySelectorAll(".release-card").length, firstRelease: document.querySelector(".release-card h2").textContent, firstHref: document.querySelector(".release-card").getAttribute("href"), - paperCount: [...document.querySelectorAll(".hero-stats b")].map((node) => node.textContent.trim()).find((value) => value === "480"), + paperCount: [...document.querySelectorAll(".hero-stats b")].map((node) => node.textContent.trim()).find((value) => value === "486"), }))()`); await navigate("/papers/"); @@ -236,8 +236,8 @@ if (block.family.trim() !== "Hybrid MoE" || !block.kv.includes("3 KDA : 1 Gated if (!block.path.some((step) => step.includes("KDA × 3")) || !block.note.includes("AttnRes")) failures.push("K3 Block 路径异常"); if (block.context.trim() !== "128K" || numeric(block.mha) !== 400 || numeric(block.kda) !== 1) failures.push("KV 成本缩放异常"); if (block.keyboardSelected !== "block" || block.keyboardVisible !== "block") failures.push("实验 tab 键盘导航异常"); -if (home.releaseCards !== 15 || !home.firstRelease.includes("hidden state") || home.firstHref !== "/architecture/representation/") failures.push("首页评测首发入口异常"); -if (home.paperCount !== "480" || papers.total !== 480 || papers.transformerVisible < 30) failures.push("论文库或首页论文数量异常"); +if (home.releaseCards !== 16 || !home.firstRelease.includes("从 Dense 到百万上下文") || home.firstHref !== "/deepseek/") failures.push("首页评测首发入口异常"); +if (home.paperCount !== "486" || papers.total !== 486 || papers.transformerVisible < 30) failures.push("论文库或首页论文数量异常"); if (!mobile.menuVisible || mobile.menuOpen !== "true" || mobile.tabs !== 4) failures.push("移动端导航或实验异常"); if (exceptions.length) failures.push(`浏览器异常:${exceptions.join(" | ")}`); diff --git a/src/components/DeepSeekLab.astro b/src/components/DeepSeekLab.astro new file mode 100644 index 0000000..463eada --- /dev/null +++ b/src/components/DeepSeekLab.astro @@ -0,0 +1,623 @@ +
+
+
+

INTERACTIVE / DEEPSEEK SYSTEM ATLAS

+

四本账,把“模型创新”拆回可计算对象

+
+

+ 这里混合精确计数与显式 toy model:参数组合和 KV 元素按公式计算;通信、bubble 与梯度权重只展示方向。 + 每个面板都标出证据边界,不能拿来替代真实 checkpoint 或集群复跑。 +

+
+ +
+ + + + +
+ +
+
+
WORKBENCH 01 / SPARSE CAPACITY

总参数很大,不代表每个 Token 都经过全部专家

+

切换架构或自定义专家配置,分开观察总容量、激活计算和跨设备通信;组合数只是可选路径,不是能力分数。

+
+ +
+ + + + +
+ +
+ + + + + +
+ +
+
+ TOKENhtrouter scores +
+ → +
+ → +
COMBINEΣ gᵢEᵢ(h)shared + routed
+
+ +
+
TOTAL EXPERT CAPACITY33.0× FFN

按 expert width 折算,不含 attention

+
ACTIVE EXPERT COMPUTE2.0× FFN

每 Token 的教学 FFN 单位

+
ROUTE COMBINATIONS≈ 10¹⁵

只表示可组合路径,不代表专长质量

+
COMMUNICATION PRESSUREHIGH

教学指标;不是 GB/s 实测

+
+ +
+ DEEPSEEK-V3 / CAPACITY CONTRACT +

V3 每层含 1 个 shared 与 256 个 routed experts,每 Token 激活 8 个 routed;理论稀疏计算仍需要 expert dispatch/combine 与负载均衡。

+
+
+ + + + + + + +
+ 证据分层 + KV 元素与组合参数按公式;FP8/MTP/R1 角色来自官方报告;bubble、通信、数值风险和梯度 weight 为本站教学模型。 +
+
+ + + + diff --git a/src/components/DeepSeekLineage.astro b/src/components/DeepSeekLineage.astro index 2e6b84e..f7bc291 100644 --- a/src/components/DeepSeekLineage.astro +++ b/src/components/DeepSeekLineage.astro @@ -14,6 +14,13 @@ const milestones = [ bridge: "把容量扩张和每 Token 计算量分开。", url: "https://arxiv.org/abs/2401.06066", }, + { + year: "2024.02", + model: "DeepSeekMath", + idea: "从大规模数学数据工程走到 GRPO:用同题多条回答的相对奖励,省去独立 critic。", + bridge: "R1 的推理 RL 不是突然出现;算法与可验证数据的预演在这里发生。", + url: "https://arxiv.org/abs/2402.03300", + }, { year: "2024.05", model: "DeepSeek-V2", @@ -31,10 +38,18 @@ const milestones = [ { year: "2025.01", model: "DeepSeek-R1", - idea: "R1-Zero 展示纯大规模 RL 可涌现推理;R1 用冷启动数据修复可读性与稳定性。", + idea: "R1-Zero 从强 V3 Base 直接做规则奖励 RL、没有 reasoning SFT;R1 再用冷启动与多阶段训练修复可读性和广度。", bridge: "从“模仿答案”转向用可验证奖励塑造推理策略。", url: "https://arxiv.org/abs/2501.12948", }, + { + year: "2025.03", + model: "DAPO / Dr.GRPO", + idea: "公开后续研究分别暴露 clipping、采样、截断、响应长度与题目难度归一偏差。", + bridge: "复现不是 R1 的内部 recipe,而是一台看清 RL 优化对象的显微镜。", + url: "https://arxiv.org/abs/2503.14476", + followup: true, + }, { year: "2025.12", model: "DeepSeek-V3.2", @@ -45,7 +60,7 @@ const milestones = [ { year: "2026.06", model: "DeepSeek-V4", - idea: "围绕百万 Token 上下文效率继续扩展,成为 K3 报告直接比较的开放前沿之一。", + idea: "CSA/HCA 构成异构长状态,mHC 约束深层残差,Muon 与数值边界共同支撑百万 Token。", bridge: "长上下文不再只是位置外推,而是注意力、训练与服务的全系统问题。", url: "https://arxiv.org/abs/2606.19348", }, @@ -54,13 +69,13 @@ const milestones = [
{milestones.map((item, index) => ( - +
{item.year}
- DS / {String(index + 1).padStart(2, "0")} + {item.followup ? "PUBLIC FOLLOW-UP" : `DS / ${String(index + 1).padStart(2, "0")}`}

{item.model}

{item.idea}

@@ -93,6 +108,11 @@ const milestones = [ background: var(--paper-raised); } + .lineage-row.followup { + border-right: 3px solid var(--copper); + background: var(--copper-pale); + } + .lineage-time { display: grid; grid-template-columns: 1fr 12px; diff --git a/src/data/deepseek.ts b/src/data/deepseek.ts new file mode 100644 index 0000000..19662a5 --- /dev/null +++ b/src/data/deepseek.ts @@ -0,0 +1,110 @@ +export const deepseekLedgers = [ + ["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 K/V?", "无位置项时可利用矩阵乘结合律,把 K/V 上投影吸收到 query/output 投影。"], + ["Q10", "位置分叉", "为什么要 decoupled RoPE?", "RoPE 会阻断固定权重吸收,所以 V2 另设小 RoPE query/key 分支,并缓存 key。"], + ["Q11", "FP8 合同", "“FP8 训练”包含哪些角色?", "主要 GEMM 用 FP8,并配细粒度缩放、较高精度累加和高精度敏感算子;不是全路径 FP8。"], + ["Q12", "Pipeline", "DualPipe 隐藏了什么?", "从两端注入 micro-batch,让成对前后向 chunk 与通信重叠;它减少而非清零 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 修的是哪类问题?", "它们处理 clip、采样、聚合、截断、长度和难度偏差;是后续研究,不是已披露 R1 内部配方。"], + ["Q20", "DSA", "可学习 indexer 为什么不是固定稀疏?", "indexer 对历史内容评分,主 attention 只读 top-k;它需要专门训练,也可能漏检。"], + ["Q21", "Agent 数据", "V3.2 怎样把 reasoning 放进环境?", "specialist distillation + mixed RL;环境、工具、任务、解法和 verifier 构成数据闭环。"], + ["Q22", "V4 Attention", "CSA 与 HCA 各压什么?", "CSA 先压缩再稀疏 top-k;HCA 更强压缩后保留全部 compressed entries。"], + ["Q23", "V4 稳定化", "mHC、Muon、QK/RMSNorm、clamp 各管什么?", "它们分别管残差混合、矩阵更新、attention 尺度和 FFN 极值,不能合成一个技巧。"], + ["Q24", "K3 对照", "哪些是祖先,哪些只是同题新解?", "DeepSeekMoE/MLA 有明确继承;QB、KDA、AttnRes、SiTU、MOPD 多是新解或同期路线。"], +] as const; + +export const deepseekWaves = [ + ["W1", "2024.01", "Dense 坐标", "先固定数据、tokenizer、训练与 scaling 对照,后面的结构收益才有可比起点。"], + ["W2", "2024.01", "稀疏容量", "细粒度 routed experts 加 shared experts,把总容量与单 Token 激活计算第一次清楚分开。"], + ["W3", "2024.05", "服务状态", "MLA 不再只优化训练 FLOPs,而是直接改写随请求增长的 KV Cache。"], + ["W4", "2024.12", "协同训练", "V3 把路由、FP8、MTP、pipeline 与通信写成同一套训练合同。"], + ["W5", "2024.02 → 2025.01", "推理 RL", "DeepSeekMath 先减掉 critic;R1-Zero 再隔离规则奖励,R1 恢复可读性与通用性。"], + ["W6", "2025.03", "复现显微镜", "DAPO 与 Dr.GRPO 暴露 clipping、采样、截断、长度归一和题目难度偏差。"], + ["W7", "2025.12", "稀疏检索", "V3.2 用学习型 indexer 选历史,再让主 attention 读取 top-k。"], + ["W8", "2025.12", "Agent 环境", "推理从静态题目进入含工具、状态转移和 verifier 的交互数据闭环。"], + ["W9", "2026.06", "异构长状态", "V4 用 CSA 与 HCA 处理不同时间尺度,并联合 mHC、Muon 和数值约束。"], + ["W10", "2026.07", "K3 对照", "继承图必须允许没有箭头:相同的百万上下文目标,可以有完全不同的状态机器。"], +] as const; + +export const deepseekBranches = [ + ["代码与专家", "DeepSeek-Coder → Coder-V2 → ESFT", "代码数据配方、continued pretraining 与只微调相关专家,说明 MoE 的价值不只在通用模型参数量。", "https://arxiv.org/abs/2406.11931"], + ["数学与证明", "DeepSeekMath → Prover-V1.5 → Prover-V2", "从数学语料、GRPO 走到 formal proof feedback、subgoal decomposition 与可验证证明搜索。", "https://arxiv.org/abs/2504.21801"], + ["视觉与压缩", "DeepSeek-VL/VL2 → Janus → OCR", "理解、生成与光学压缩形成另一条主干;它们不应被挤进纯文本 V2→V4 时间线。", "https://arxiv.org/abs/2412.10302"], + ["系统实现", "DeepEP → DualPipe → DeepGEMM / FlashMLA", "论文里的稀疏计算、流水线、FP8 与 MLA 最终必须落到可调用的通信和 kernel 实现。", "https://github.com/deepseek-ai/DeepEP"], + ["条件记忆", "Engram", "把可查表的静态模式从动态网络中分离,增加一条不同于 MoE 与 attention 的稀疏轴。", "https://arxiv.org/abs/2601.07372"], +] as const; + +export const deepseekPaperChain = [ + ["01", "1991", "Adaptive Mixtures of Local Experts", "https://proceedings.neurips.cc/paper/1991/hash/59b90e1005a220e2ebc542eb9d950b1e-Abstract.html", "专家门控前史"], + ["02", "2000", "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", "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 repository", "https://github.com/MoonshotAI/Kimi-K3", "开放实现边界"], +] as const; diff --git a/src/data/papers.ts b/src/data/papers.ts index 6b51484..9342c61 100644 --- a/src/data/papers.ts +++ b/src/data/papers.ts @@ -3896,6 +3896,60 @@ export const papers: Paper[] = [ contribution: "公开 Pre-LN decoder 训练配置与模型族,为深度、归一化和复现提供对照。", verified: true, }, + { + year: 2024, + title: "DeepSeek-Coder: When the Large Language Model Meets Programming — The Rise of Code Intelligence", + url: "https://arxiv.org/abs/2401.14196", + topics: ["数据", "推理", "评测"], + contribution: "公开代码语料构造、fill-in-the-blank 目标与 1B–33B 模型族,建立 DeepSeek 代码能力旁支。", + spotlight: "DeepSeek", + verified: true, + }, + { + year: 2024, + title: "DeepSeek-Coder-V2: Breaking the Barrier of Closed-Source Models in Code Intelligence", + url: "https://arxiv.org/abs/2406.11931", + topics: ["数据", "MoE", "推理", "评测"], + contribution: "从 DeepSeek-V2 checkpoint continued pretrain,扩展代码语言、上下文和数学/代码能力。", + spotlight: "DeepSeek", + verified: true, + }, + { + year: 2024, + title: "Let the Expert Stick to His Last: Expert-Specialized Fine-Tuning for Sparse Architectural Large Language Models", + url: "https://arxiv.org/abs/2407.01906", + topics: ["MoE", "后训练"], + contribution: "ESFT 依据专家相关性只更新任务相关 routed experts,研究 MoE 专长怎样进入低成本微调。", + spotlight: "DeepSeek", + verified: true, + }, + { + year: 2024, + title: "DeepSeek-Prover-V1.5: Harnessing Proof Assistant Feedback for Reinforcement Learning and Monte-Carlo Tree Search", + url: "https://arxiv.org/abs/2408.08152", + topics: ["推理", "后训练", "评测"], + contribution: "把 Lean proof assistant 的可验证反馈用于 formal proof RL,并结合 MCTS 扩展证明搜索。", + spotlight: "DeepSeek", + verified: true, + }, + { + year: 2025, + title: "DeepSeek-Prover-V2: Advancing Formal Mathematical Reasoning via Reinforcement Learning for Subgoal Decomposition", + url: "https://arxiv.org/abs/2504.21801", + topics: ["推理", "后训练", "评测"], + contribution: "用递归子目标分解构造 cold-start 数据,再以可验证证明奖励强化 formal reasoning。", + spotlight: "DeepSeek", + verified: true, + }, + { + year: 2026, + title: "Conditional Memory via Scalable Lookup: A New Axis of Sparsity for Large Language Models", + url: "https://arxiv.org/abs/2601.07372", + topics: ["基础", "MoE", "数据", "推理服务"], + contribution: "Engram 把可查表的静态模式与动态计算分离,提出不同于 MoE 与 attention 的条件记忆稀疏轴。", + spotlight: "DeepSeek", + verified: true, + }, ]; export const paperTopics: PaperTopic[] = [ diff --git a/src/pages/deepseek/index.astro b/src/pages/deepseek/index.astro index c151cad..0b8b795 100644 --- a/src/pages/deepseek/index.astro +++ b/src/pages/deepseek/index.astro @@ -1,44 +1,61 @@ --- import BaseLayout from "@/layouts/BaseLayout.astro"; import DeepSeekLineage from "@/components/DeepSeekLineage.astro"; +import DeepSeekLab from "@/components/DeepSeekLab.astro"; +import { deepseekBranches, deepseekLedgers, deepseekPaperChain, deepseekWaves } from "@/data/deepseek"; const toc = [ - ["00", "lineage", "先看完整论文谱系"], - ["01", "dense", "LLM:先建立 Dense 基线"], - ["02", "moe", "DeepSeekMoE:专家特化"], - ["03", "mla", "V2:MLA 压缩 KV Cache"], - ["04", "v3", "V3:算法—系统协同"], - ["05", "grpo", "DeepSeekMath:GRPO"], - ["06", "r1", "R1:RL 涌现推理"], - ["07", "v32", "V3.2:稀疏注意力与 Agent"], - ["08", "v4", "V4:百万上下文"], - ["09", "k3", "DeepSeek 怎样流入 K3"], - ["↳", "papers", "精读顺序与来源"], + ["00", "compass", "先问清二十四张账"], + ["01", "lineage", "十次问题转向"], + ["02", "grammar", "读参数与成本数字"], + ["03", "dense", "LLM:Dense 坐标"], + ["04", "moe", "MoE:专家特化"], + ["05", "mla", "V2:缓存状态"], + ["06", "absorption", "MLA:吸收与位置分叉"], + ["07", "v3", "V3:四层协同"], + ["08", "balance", "路由:均衡不干扰能力"], + ["09", "fp8", "FP8:精度角色合同"], + ["10", "dualpipe", "DualPipe:隐藏空泡"], + ["11", "mtp", "MTP:训练与推理两用"], + ["12", "grpo", "Math:GRPO"], + ["13", "r1zero", "R1-Zero:隔离实验"], + ["14", "r1", "R1:可用训练链"], + ["15", "dapo", "DAPO / Dr.GRPO 反查"], + ["16", "v32", "V3.2:稀疏注意力"], + ["17", "agent-data", "V3.2:Agent 环境"], + ["18", "v4", "V4:百万上下文"], + ["19", "v4-state", "V4:异构状态与稳定性"], + ["20", "k3", "与 K3 的继承边界"], + ["21", "lab", "四联交互实验"], + ["22", "branches", "别漏掉旁支"], + ["23", "audit", "事实、推导与教学模型"], + ["↳", "papers", "六十节点阅读链"], ]; ---
-

SPOTLIGHT / DEEPSEEK ALGORITHM × SYSTEM

-

一条少见的、环环相扣的
开放论文主线

+

SPOTLIGHT / DEEPSEEK · ROUND 02 ALGORITHM × SYSTEM × EVIDENCE

+

不要背模型名
要看懂每次为什么转向

- DeepSeek 的价值不只在某个模型分数,而在持续公开“为什么这样设计”: - 容量贵,就做细粒度 MoE;KV Cache 贵,就做 MLA;训练贵,就做 FP8 与通信重叠; - 推理难,就把可验证奖励规模化。 + 这不是七篇报告的摘要,而是一套可追问、可计算、可反驳的技术谱系: + 容量、激活、缓存、通信、数值、奖励和长程状态各自记账,再看它们怎样从 DeepSeek LLM + 一路汇入 V4,并与 Kimi K3 发生继承或分叉。

SPAN
2024.01 → 2026.06
-
CORE
MoE · MLA · FP8 · GRPO
-
LINE
Dense → Sparse → Reasoning
-
K3 LINK
MLA · MoE · Muon · 1M
-
STATUS
重点专题 · 首版
+
LEDGERS
24 张问题账
+
LINEAGE
10 次技术转向
+
LABS
4 个可操作实验
+
EVIDENCE
60 个一手 / 官方节点
+
STATUS
重点专题 · 二轮深读
@@ -52,20 +69,51 @@ const toc = [ ))}
- 本页选择 - 聚焦通用模型主线;Coder、Prover、VL/OCR、Engram 与硬件论文将在对应专题展开。 + 阅读约定 + 作者报告、公式推导与教学模型使用不同标签;DAPO / Dr.GRPO 明确标为公开后续研究,不冒充 R1 内部配方。
+
+

00 THE PROBLEM COMPASS

+

先把二十四个对象分开,才不会被“大、快、强”三个字带走

+

+ 一篇技术报告最容易制造的错觉,是把参数量、激活计算、缓存、训练成本、吞吐和能力揉成一个“效率”。 + 下面每张账只问一个对象,并把回答能走到哪里、不能走到哪里同时写出来。 +

+
+ {deepseekLedgers.map(([id, object, question, boundary]) => ( +
+
{id}{object}
+

{question}

+

{boundary}

+
+ ))} +
+
+ 一条贯穿全文的读法 +

先认对象→再看瓶颈→找到机制→核对系统代价→最后看证据边界

+
+
+
-

00 THE LINEAGE

-

每一代都在偿还上一代最昂贵的账单

+

01 TEN PROBLEM SHIFTS

+

时间线不是发布会日历,而是十次“问题定义”转向

把 DeepSeek 看成模型名字序列会很乱;把它看成“容量、缓存、训练、推理、长上下文”五张账单, 技术演进就清楚了。

+
+ {deepseekWaves.map(([id, time, title, text]) => ( +
+
{id}
+

{title}

+

{text}

+
+ ))} +
核心观察

@@ -76,8 +124,42 @@ const toc = [

+
+

02 NUMBER GRAMMAR

+

先学会读报告数字:总容量、激活路径和系统成本不是同一列

+
+
+ TOTAL PARAMETERS + 模型“装得下”多少容量 +

MoE 的绝大多数专家参数对某个 Token 并未激活,但部署时权重仍要存放、调度和读取。

+
+
+ ACTIVATED PARAMETERS + 单 Token 经过哪部分参数 +

它比 total 更接近稀疏计算量,却仍不包含 attention、router、通信、padding 和 kernel 效率。

+
+
+ STATE / BYTES + 请求进行时不断增长的历史 +

KV/latent state 与层数、上下文、batch 和存储格式相乘,是 V2 之后独立的一等架构对象。

+
+
+ WALL CLOCK / SCORE + 系统与协议共同产出的结果 +

GPU hours、吞吐和 benchmark 必须携带硬件、软件、预算、脚手架与比较基线。

+
+
+
+ 以 V3 的 671B-A37B 为例 +

+ 671B 描述总容量,37B 描述每 Token 激活的参数子集;它不等于“和 37B dense 一样便宜”, + 因为 attention、专家 dispatch/combine、负载长尾、并行通信与实际 kernel 都没有被这个缩写计算进去。 +

+
+
+
-

01 DEEPSEEK LLM

+

03 DEEPSEEK LLM

先用 Dense 模型建立基线:规模、数据和双语能力

2024 年初的 DeepSeek LLM 发布 7B 与 67B dense 模型, @@ -100,7 +182,7 @@ const toc = [

-

02 DEEPSEEKMOE

+

04 DEEPSEEKMOE

专家越大不一定越专:把一个大专家拆成许多细粒度专家

传统 MoE 往往把 FFN 分成少数大专家,每个 Token 选 1–2 个。问题是一个大专家仍可能同时处理许多无关知识, @@ -144,7 +226,7 @@ const toc = [

-

03 DEEPSEEK-V2 / MLA

+

05 DEEPSEEK-V2 / MLA

训练只付一次参数成本,KV Cache 却在每个请求、每个 Token 上重复付费

DeepSeek-V2 是整条谱系的关键转折: @@ -191,8 +273,48 @@ const toc = [

+
+

06 WEIGHT ABSORPTION × DECOUPLED ROPE

+

MLA 真正精巧的地方:低秩只是第一步,能否不还原才决定推理价值

+

+ V2 把历史内容压到联合 latent cₜᴷⱽ。如果每次 attention 又把它上投影回所有 head 的完整 + content K/V,缓存虽然小了,解码计算和中间张量仍会把收益吃掉。线性代数的结合律允许把固定上投影移到 + query 与 output 权重一侧。 +

+
+
+ KEY CONTENT + qᵀ(Wᵁᴷc) = (Wᵁᴷᵀq)ᵀc +

先变换当前 query,再直接与缓存 latent 相乘;不需要物化完整多头 content key。

+
+
+ VALUE CONTENT + Wᴼ(Wᵁⱽc) = (WᴼWᵁⱽ)c +

value 上投影也可预先并入 output projection,计算对象仍停留在低维 latent。

+
+
+ POSITION BREAKS IT + qᵀR(t−j)Wᵁᴷc +

RoPE 的旋转依赖相对位置,不能成为一组固定吸收权重,所以 V2 把位置分支单独拆出。

+
+
+
+ cacheMLA / token / layer = dc + dhR = 512 + 64 = 576 elements + + 这是 V2 配置的 content latent 与 decoupled RoPE key 之和。只写 512 会漏掉位置缓存;字节数还要乘 dtype、层数、上下文与 batch。 + +
+
+ MLA、MQA、GQA 不能只比一个压缩百分比 +

+ MQA/GQA 通过共享 K/V 头减少状态;MLA 用联合低秩内容空间与独立位置分支减少状态。 + 表达能力、投影计算、kernel 支持和量化元数据都依配置而变,实验台会把“元素公式”与“报告数字”分开展示。 +

+
+
+
-

04 DEEPSEEK-V3

+

07 DEEPSEEK-V3

V3 的亮点不是一个技巧,而是四层协同

DeepSeek-V3 扩到 671B 总参数、37B 激活参数, @@ -233,8 +355,105 @@ const toc = [

+
+

08 ROUTING WITHOUT OBJECTIVE COLLISION

+

让系统更均匀,但别让“均匀”改写模型真正想选的专家

+

+ 路由有两种意图:模型想把 Token 交给最适合的专家,集群希望每个专家收到近似相同的负载。 + 传统辅助损失直接进入训练目标,均衡梯度可能与语言建模梯度争夺方向。V3 给每个 routed expert 维护动态 bias: + 热门专家下调,冷门专家上调。 +

+
+
+ SELECTION + top-k(sᵢ + bᵢ) +

动态 bias 只改变谁能进入候选集合。

+
+ ≠ +
+ COMBINATION + Σ gᵢEᵢ(h) +

真正组合专家输出时,gate weight 不含这个 balance bias。

+
+ + +
+ SAFETY RAIL + sequence-wise aux +

报告仍保留序列级辅助项,防止单个序列出现极端失衡。

+
+
+

+ 所以 “auxiliary-loss-free” 指主要全局负载策略不靠辅助损失,并不等于训练系统完全没有辅助均衡约束。 + K3 的 Quantile Balancing 继续处理同一个问题,但面对近千专家使用不同的分位数反馈,属于同题新解。 +

+
+ +
+

09 FP8 ROLE CONTRACT

+

“用 FP8 训练”不是一个开关,而是一张谁低精度、谁负责兜底的岗位表

+
+
数值角色V3 的处理为什么不能一刀切
+
主要 GEMM 输入FP8 + 细粒度缩放

吞吐和通信收益最大,但要控制不同 tile/block 的动态范围。

+
乘加累积更高精度路径

大量小乘积累积会放大舍入误差,不能把输入 dtype 等同于累加 dtype。

+
master / optimizer stateBF16 / FP32 角色

权重更新需要保留微小变化,优化器矩对精度更敏感。

+
Norm、Softmax 等敏感算子高精度保留

尺度估计和概率归一若失真,会向全层传播。

+
activation 与通信按路径选择

节省保存与带宽,但要把缩放元数据和转换成本一起计入。

+
+
+ 判断任何“低精度训练”声明时,至少问六个问题 +

输入是什么格式?如何缩放?在哪里累加?master weight 放哪?哪些敏感算子保留高精度?通信和缓存是否也量化?

+
+
+ +
+

10 DUALPIPE × DEEPEP

+

理论 FLOPs 不会自动变成训练吞吐:GPU 等待和跨节点搬运都要付墙钟时间

+

+ Pipeline Parallel 把连续层分给不同 stage。一次前向必须沿 stage 传播,反向又沿相反方向返回; + micro-batch 不够多或调度不佳时,管线两端会出现大片空泡。DualPipe 从两端注入 micro-batch, + 把成对的 forward/backward chunk 排在一起,并尝试将 MoE 的 dispatch/combine 隐藏在计算之后。 +

+ +

+ DeepEP 则负责专家并行的高吞吐/低延迟 all-to-all。两者解释了一个重要边界: + DeepSeekMoE 的参数稀疏性是模型性质,真实集群效率必须由拓扑、路由分布和通信 kernel 兑现。 +

+
+ +
+

11 MULTI-TOKEN PREDICTION

+

MTP 不是把一次采样魔法般变成多 Token,而是给每层表示更多未来监督

+

+ 标准 next-token prediction 每个位置只监督下一个 Token。V3 在主模型之后串联多个 MTP module: + 第 k 个模块结合上一模块的状态与更远未来 Token 的 embedding,预测第 k+1 个未来目标。 + embedding 与 output head 可与主模型共享。 +

+
+
TRAIN增加未来监督密度

每段文本为中间表示提供更多学习信号,并鼓励预先组织未来信息。

+ → +
PLAIN INFERENCE模块可以丢弃

主模型仍按标准自回归方式运行,不必为训练辅助头永久付费。

+ 或 +
DRAFT INFERENCE改作推测解码

让 MTP 给出候选未来 Token,再由主模型验证;收益依接受率与 kernel 而定。

+
+
+ L = LNTP + λ · meank(LMTPk) + V3 的目标是顺序多未来监督;它与一次并行确定输出多个 Token、blockwise decoding 或独立 draft model 都不完全相同。 +
+
+
-

05 DEEPSEEKMATH / GRPO

+

12 DEEPSEEKMATH / GRPO

GRPO:不用再养一个和策略模型同样昂贵的 Critic

DeepSeekMath 不只是数学模型论文。 @@ -270,20 +489,40 @@ const toc = [

+
+

13 R1-ZERO / ISOLATION EXPERIMENT

+

它隔离掉的是 reasoning SFT,不是预训练知识、提示先验和验证器

+

+ R1-Zero 从 DeepSeek-V3 Base 开始,直接用 GRPO 与规则奖励训练,没有先用人工或教师 CoT 做 reasoning SFT。 + 这让研究者能单独观察:强 base model 中已有的求解分布,能否被结果奖励重新排序和继续塑造。 +

+
+
刻意移除reasoning SFT

不先规定“优秀推理轨迹应该长什么样”。

+
依然存在V3 Base

大规模预训练已经提供数学、代码、语言和潜在反思模式。

+
依然存在rule verifier

准确性与格式奖励定义了什么会被强化。

+
依然存在rollout + GRPO

同题多样采样、相对优势、clip 与 KL 仍构成优化系统。

+
+

+ 训练中出现更长轨迹、反思、回溯与自我验证,论文把部分轨迹描述为 “aha moment”。 + 但公开的 Dr.GRPO 研究观察到 V3 Base 本身也能生成 “wait”等反思词,因此词面现象不能作为“RL 从零发明推理”的因果证据。 +

+
+ R1-Zero 证明的是可塑性,不是无中生有 +

+ 更严谨的结论是:在强 base、可验证任务和大规模 rollout 条件下,无 reasoning SFT 的规则奖励 RL + 能显著改变求解策略与测试时计算。开放任务、不可验证质量和 base 能力边界仍然没有被这个实验消除。 +

+
+
+
-

06 DEEPSEEK-R1

-

R1-Zero 最重要的实验:先不教推理格式,只给可验证结果奖励

+

14 DEEPSEEK-R1 / USABLE PIPELINE

+

正式 R1 的贡献,是承认隔离实验不等于可直接使用的助手

DeepSeek-R1 的历史意义, - 是把“推理可以通过大规模 RL 从强 base model 中被激发”做成公开、可研究的系统证据。 + 不只在 R1-Zero 的能力增长,也在把可读性、广度、帮助性和安全重新接回训练流程。

-

R1-Zero 做了什么

-

- 从 DeepSeek-V3 Base 出发,不先做推理 SFT,直接以 GRPO 进行大规模 RL。 - 奖励以答案正确性为主,并加入格式奖励。训练中出现更长推理、反思、回溯和自我验证等行为; - 论文把某些突然延长思考的轨迹称为 “aha moment”。 -

-

它也明确暴露了纯 RL 的问题

+

R1-Zero 暴露的问题决定了后面的每个阶段

R1-Zero 会重复、可读性差、混合语言。奖励只关心最终正确时,模型没有充分动力照顾人类阅读体验。 正式 R1 因而先加入少量高质量 cold-start CoT 数据,再做 reasoning-oriented RL; @@ -302,7 +541,7 @@ const toc = [

Distillation 的关键发现

- 团队用 R1 生成的推理样本微调 Qwen/Llama dense 模型,发布 1.5B–70B 蒸馏版本。 + 团队用 R1 生成并筛选的约 800K 样本微调 Qwen/Llama dense 模型,发布 1.5B–70B 蒸馏版本。 这说明小模型不一定要自己承担完整的探索式 RL 成本,可以模仿强 reasoning teacher 的轨迹; 但蒸馏得到的是 teacher 数据分布上的能力,不等于小模型内部复现了同样的 RL 发现过程。

@@ -316,8 +555,51 @@ const toc = [ 进入推理专题:从 DeepSeekMath、R1 到 DAPO / Dr.GRPO 的完整推导 → +
+

15 PUBLIC FOLLOW-UP / DAPO × DR.GRPO

+

复现不是脚注:它把“R1-like 训练有效”拆成了四种优化偏差

+

+ DAPO 与 + Understanding R1-Zero-Like Training + 都是 R1 之后的公开研究,不是 DeepSeek 已披露的内部 R1 recipe。它们的价值是让研究者看到: + 一条奖励曲线上升,可能同时包含能力改善、采样过滤、长度倾向和损失聚合偏差。 +

+
+
+ DAPO / CLIP-HIGHER

正向更新别太早被截断

+

提高正优势样本的上界,为少见但正确的长推理保留更大上升空间。

+
+
+ DAPO / DYNAMIC SAMPLING

全对与全错组不给相对信号

+

过滤组内奖励方差为零的 prompt,避免花 rollout 成本却得到近零归一优势。

+
+
+ DAPO / TOKEN-LEVEL LOSS

先按 Token 聚合再更新

+

改变不同长度响应对 batch 梯度的权重,避免 response-level aggregation 的隐含偏置。

+
+
+ DAPO / OVERLONG SHAPING

截断不该制造奖励悬崖

+

对接近长度上限的轨迹做平滑惩罚,降低突然截断带来的噪声。

+
+
+ DR.GRPO / TWO BIASES

响应长度偏差 + 题目难度偏差

+

+ response-level 长度归一会改变长短答案的 Token 权重;用每题组内标准差归一,又会让不同奖励方差的题目获得不同尺度。 + Dr.GRPO 去掉这些归一项,追问“我们究竟在优化正确率,还是在无意中优化长度与题型权重?” +

+
+
+
+ 这些修正没有给出唯一正确的 RL 算法 +

+ 它们给出的是审计工具:观察采样组是否有方差、clip 是否非对称、长响应怎样进入损失、截断怎样进入奖励、 + 不同难度题是否被标准差重新加权。页面实验台会让这些偏差在一个小样本里显形。 +

+
+
+
-

07 DEEPSEEK-V3.2

+

16 DEEPSEEK-V3.2 / DSA

从会推理到会在长上下文里使用工具

DeepSeek-V3.2 把三条线合并: @@ -346,8 +628,32 @@ const toc = [

+
+

17 V3.2 / AGENTIC DATA LOOP

+

从“回答一道题”到“在环境里留下可验证的状态变化”

+

+ V3.2 的 Agent 能力不是在聊天模板上多放几个 tool token。报告把 specialist distillation 与 mixed RL 结合, + 分别训练 search、code 和 general-agent 能力,再把它们蒸馏回统一模型。general-agent 部分报告了 + 1,827 个合成环境;这个数字只代表该报告口径,不是所有 Agent 数据的总量。 +

+
+
ENVIRONMENT有状态世界

文件、网页、API 或模拟器会因动作而改变。

+ → +
TOOLS受约束动作

schema、权限、错误和延迟共同限定策略空间。

+ → +
TASK + SOLUTION可执行轨迹

不只要语言通顺,还要工具调用能够推进状态。

+ → +
VERIFIER检查最终世界

最终答案、测试、文件或环境状态构成奖励证据。

+
+

+ 这条线与 K3 的 white-box harness、知识图谱任务合成和百万 Token Agentic RL 同期呼应; + 两份报告都把竞争焦点从静态 benchmark 推向“环境能否生成、执行、验证和归因”。 + Agent 专题给出了完整环境合同与失败树 → +

+
+
-

08 DEEPSEEK-V4

+

18 DEEPSEEK-V4

百万上下文从“支持”变成一套专门架构

2026 年的 DeepSeek-V4 preview 包含 @@ -379,8 +685,46 @@ const toc = [

+
+

19 V4 / HETEROGENEOUS STATE MACHINE

+

CSA 与 HCA 不是两个稀疏率档位,而是两种不同的历史表示

+
+
+
CSACompressed Sparse Attention
+
原序列压缩compressed KVindextop-kattend输出
+

先以较温和压缩率形成历史条目,再用 DSA 风格 indexer 选 top-k,让主 attention 只访问相关子集。

+
+
+
HCAHeavily Compressed Attention
+
原序列强压缩少量全局条目all全部读取
+

使用更激进的压缩率,把所有 compressed entries 保留下来,不再走与 CSA 相同的 top-k 稀疏路径。

+
+
+

为什么长上下文还需要一整套稳定性与优化器设计

+
+
ATTENTION SCALEheadwise Q/K RMSNorm

按 head 控制 query 与 compressed KV 的尺度。

+
POSITIONpartial RoPE · last 64 dims

只在部分维度编码旋转位置,保留内容与位置的职责分离。

+
RESIDUALmHC · expansion 4

把 residual mixing 映射到双随机 Birkhoff polytope,约束深层信息混合。

+
OPTIMIZERMuon + AdamW roles

多数二维参数用 Muon;embedding、head、RMSNorm 等角色仍由 AdamW 处理。

+
FFN EXTREMESSwiGLU clamp

线性分支截到 [−10, 10]、gate 设上限 10,限制极端激活。

+
KV SHARINGshared-KV MQA

再配 grouped output,把内容压缩与 head 组织一起设计。

+
+
+
V4 变体骨架稀疏 / 压缩合同
+
V4-Pro61 layers · width 7168 · 1.6T-A49B

top-6 routed experts;HCA rate 128、CSA rate 4、CSA top-k 1024。

+
V4-Flash43 layers · width 4096 · 284B-A13B

top-6 routed experts;同样混合 HCA/CSA,CSA top-k 512。

+
+
+ 27% FLOPs 与 10% KV Cache 是报告内比较,不是通用常数 +

+ V4 报告把 Pro 在 1M context 下与 V3.2 比较。真实服务还受 batch、序列分布、量化、page allocator、 + kernel、并行策略和硬件影响;这里保留“作者报告”标签,不把比例外推到任意部署。 +

+
+
+
-

09 INTO KIMI K3

+

20 INTO KIMI K3

DeepSeek 的哪些思想直接流入 K3,哪些只是同期呼应

DeepSeek 线索K3 中的落点关系
@@ -389,28 +733,93 @@ const toc = [
V3 Auxiliary-loss-free balancingQuantile Balancing 应对近千专家同一问题的新方案
V3 FP8 / 低精度协同专家 MXFP4 权重、MXFP8 激活与 QAT更低精度的延伸
DeepSeekMath / R1 的 GRPO 与 RL多 domain、多 effort RL + MOPD共享测试时扩展范式
-
V4 Muon 与深度残差创新Per-Head Muon + Attention Residuals同期不同设计
-
V3.2/V4 长上下文KDA + Gated MLA + KDA system co-design同目标、不同路线
+
V4 的 Muon 参数分工Per-Head Muon 按 attention head 组织更新同优化器族的新粒度
+
V4 mHC:扩宽并约束 residual streamAttnRes:93 层按 12 层 block 路由到 9 个深度来源同期不同设计
+
V3.2 DSA / V4 CSA-HCA3 层 KDA + 1 层 NoPE Gated MLA 周期同目标、不同状态机器
+
R1 / V4 的离线教师与 RL 配方MOPD 让多教师给 on-policy Token 分布同题新解

这正是为什么 DeepSeek 值得在 LLM Atlas 中作为贯穿案例:它不是 K3 的“对手名单”之一, 而是 K3 架构里多条思想的公开祖先与同代参照。读懂 V2 的 MLA 和 DeepSeekMoE, K3 的一半架构会突然变得熟悉。

+
+ 不要把 K3 报告里的两个 “block size” 混在一起 +

+ 主模型 AttnRes 以 12 层为一个深度 block;报告中 block size 2 出现在芯片设计 nano-model 的 + MiniTriton proof-of-concept,不是 93 层主模型结构。这类同词异义正是继承图必须保留上下文的原因。 +

+
+
+ +
+

21 FOUR INTERACTIVE LEDGERS

+

把四个最容易被口号遮住的对象,重新变成可以动手改的变量

+

+ 稀疏容量实验区分总容量、激活计算与通信;MLA 实验给出精确缓存元素并把 RoPE key 算进去; + V3 协同实验拆开 FP8、pipeline 与 MTP;RL 偏差镜则让零方差、长度偏差和难度归一在同一组样本里显形。 +

+ +
+ +
+

22 THE MAIN LINE IS NOT THE WHOLE TREE

+

如果只读 V2 → V3 → R1 → V4,会漏掉五条反过来影响主线的旁支

+
+ {deepseekBranches.map(([name, line, text, url]) => ( + + {name} +

{line}

+

{text}

+ 打开一手来源 → +
+ ))} +
+

+ 旁支不是“其它产品”清单:Coder-V2 检验 V2 架构如何继续预训练,ESFT 检验 expert specialization + 如何进入微调,Prover 把可验证奖励推进 formal proof,DeepEP/DualPipe 把模型假设变成系统实现, + Engram 则提出不同于专家和注意力的条件记忆稀疏轴。 +

+
+ +
+

23 EVIDENCE AUDIT

+

同一张页面里有三种知识,它们的语气必须不同

+
+
+ AUTHOR-REPORTED

作者报告或官方仓库明确写出的事实

+

模型配置、训练阶段、V2 的 93.3%、V3 的 2.788M H800 hours、V3.2 的 1,827 environments、V4 的 27%/10% 都属于这一层,必须携带比较对象。

+
+
+ FORMULA-DERIVED

从公开配置按公式重新计算

+

例如 MHA 的 2nₕdₕ 与 V2 MLA 的 d꜀+dᴿ 元素数。公式可以精确,换成 GiB 时仍依赖 dtype、batch、allocator 与实现。

+
+
+ TEACHING MODEL

为了看趋势而构造的交互近似

+

通信压力、pipeline bubble 和 RL 权重是方向性玩具模型;它们不冒充 H800 集群、真实 checkpoint 或论文复跑。

+
+
+
+

不写:R1-Zero 没有任何监督或先验;RL 从零发明了 “aha”。

+

不写:DAPO / Dr.GRPO 是 DeepSeek 官方 R1 recipe。

+

不写:aux-loss-free 就是完全没有辅助均衡;FP8 就是全模型都用 8 位。

+

不写:V4 和 K3 都是 1M,所以架构相同;蒸馏学生就是小号 R1-Zero。

+

↳ READING ORDER

-

建议精读顺序:不要直接从 R1 开始

-
- DeepSeek LLM

建立 dense、数据与 scaling 基线;精读架构与 scaling law 部分。

- DeepSeekMoE

精读 fine-grained segmentation、shared expert isolation 与消融。

- DeepSeek-V2

精读 MLA 推导、RoPE 解耦、权重吸收和 KV Cache 对比。

- DeepSeek-V3

分四遍读:架构、FP8、DualPipe/通信、MTP 与后训练。

- DeepSeekMath

先理解 PPO,再推导 GRPO 的组相对优势与 KL 项。

- DeepSeek-R1

对照 R1-Zero 与 R1 pipeline,区分 RL 涌现、冷启动与蒸馏。

- DeepSeek-V3.2

把稀疏 attention 与 agentic task synthesis 放在一起读。

- DeepSeek-V4

从百万上下文成本倒推 CSA/HCA、mHC 与 Muon。

+

六十个一手 / 官方节点:从祖先、对照、主线、复现到 K3 汇流点

+

+ 不建议直接从 R1 开始。先读 MoE、MQA/GQA、RoPE、PPO 和 pipeline 的祖先,再进入 DeepSeek 主线; + DAPO / Dr.GRPO 放在 R1 后作为反查,Kimi K2/K3 放在末端做同题对照。 +

+
+ {deepseekPaperChain.map(([number, year, title, url, role]) => ( + + {title}

{year}{role}

+
+ ))}
精读 MLA、DSA、CSA/HCA 与 KDA → @@ -796,10 +1205,478 @@ const toc = [ font-style: normal; } + .ledger-grid { + display: grid; + grid-template-columns: repeat(3, minmax(0, 1fr)); + max-width: 980px; + margin: 34px 0; + border-top: 1px solid var(--line); + border-left: 1px solid var(--line); + } + + .ledger-card { + min-height: 235px; + padding: 21px; + border-right: 1px solid var(--line); + border-bottom: 1px solid var(--line); + background: var(--paper-raised); + } + + .ledger-card header, + .wave-grid header, + .state-machines header { + display: flex; + align-items: center; + justify-content: space-between; + gap: 12px; + } + + .ledger-card header span, + .wave-grid header span, + .wave-grid time, + .number-grammar span, + .absorption-explainer span, + .routing-contract span, + .precision-table .head, + .schedule-diagram span, + .mtp-life span, + .zero-contract span, + .followup-grid span, + .agent-loop span, + .state-machines header span, + .v4-contract span, + .branch-grid > a > span, + .audit-grid > article > span { + color: var(--copper); + font: .54rem/1.4 var(--mono); + letter-spacing: .07em; + } + + .ledger-card header b { + color: var(--muted); + font: 600 .57rem/1.4 var(--mono); + } + + .ledger-card h3 { + min-height: 66px; + margin: 25px 0 13px; + font-size: .88rem; + line-height: 1.45; + } + + .ledger-card p, + .wave-grid p, + .number-grammar p, + .absorption-explainer p, + .routing-contract p, + .precision-table p, + .schedule-diagram p, + .mtp-life p, + .zero-contract p, + .followup-grid p, + .agent-loop p, + .state-machines p, + .v4-contract p, + .branch-grid p, + .audit-grid p { + color: var(--muted); + font-size: .67rem; + line-height: 1.7; + } + + .reading-rule { + max-width: 980px; + margin: 24px 0 38px; + padding: 25px; + background: var(--ink); + color: white; + } + + .reading-rule > span { + color: #d8a183; + font: .55rem var(--mono); + } + + .reading-rule p { + display: flex; + flex-wrap: wrap; + align-items: center; + gap: 12px; + margin-top: 17px; + } + + .reading-rule b { color: white; font: 650 .72rem var(--sans); } + .reading-rule i { color: #d8a183; font-style: normal; } + + .wave-grid { + display: grid; + grid-template-columns: repeat(2, minmax(0, 1fr)); + max-width: 960px; + margin: 35px 0; + gap: 1px; + border: 1px solid var(--line); + background: var(--line); + } + + .wave-grid article { + min-height: 185px; + padding: 22px; + background: var(--paper-raised); + } + + .wave-grid time { color: var(--muted); } + .wave-grid h3 { margin: 24px 0 10px; font-size: 1rem; } + + .number-grammar, + .precision-table, + .v4-contract { + display: grid; + grid-template-columns: repeat(4, minmax(0, 1fr)); + max-width: 960px; + margin: 34px 0; + border-top: 1px solid var(--line); + border-left: 1px solid var(--line); + } + + .number-grammar article, + .v4-contract article { + min-height: 220px; + padding: 22px; + border-right: 1px solid var(--line); + border-bottom: 1px solid var(--line); + background: var(--paper-raised); + } + + .number-grammar b, + .v4-contract b { + display: block; + min-height: 54px; + margin: 25px 0 12px; + font-size: .8rem; + } + + .absorption-explainer { + display: grid; + grid-template-columns: repeat(3, minmax(0, 1fr)); + max-width: 940px; + margin: 34px 0; + border: 1px solid var(--line); + } + + .absorption-explainer article { + min-height: 235px; + padding: 24px; + border-right: 1px solid var(--line); + background: var(--paper-raised); + } + + .absorption-explainer article:last-child { border-right: 0; } + .absorption-explainer article.position { background: var(--copper-pale); } + + .absorption-explainer code { + display: block; + margin: 28px 0 20px; + color: var(--ink); + font: 650 .76rem/1.6 var(--mono); + white-space: normal; + } + + .routing-contract { + display: grid; + grid-template-columns: 1fr 40px 1fr 40px 1fr; + align-items: center; + max-width: 940px; + margin: 34px 0; + } + + .routing-contract article { + min-height: 185px; + padding: 22px; + border: 1px solid var(--line); + background: var(--paper-raised); + } + + .routing-contract > i { + color: var(--copper); + font: normal 1rem var(--mono); + text-align: center; + } + + .routing-contract b, + .mtp-life b, + .zero-contract b, + .agent-loop b { + display: block; + margin: 25px 0 12px; + font: 650 .72rem/1.45 var(--mono); + } + + .precision-table { + grid-template-columns: .9fr 1fr 1.6fr; + } + + .precision-table > div { + display: contents; + } + + .precision-table > div > * { + min-height: 72px; + padding: 15px 17px; + border-right: 1px solid var(--line); + border-bottom: 1px solid var(--line); + background: var(--paper-raised); + } + + .precision-table .head > * { + min-height: auto; + background: var(--ink); + color: white; + } + + .precision-table strong { font-size: .66rem; line-height: 1.6; } + .precision-table.compact { grid-template-columns: .65fr 1.25fr 1.5fr; } + + .schedule-diagram { + display: grid; + grid-template-columns: 1fr 1fr; + max-width: 940px; + margin: 34px 0; + gap: 12px; + } + + .schedule-diagram article { + padding: 24px; + border: 1px solid var(--line); + background: var(--paper-raised); + } + + .schedule-diagram article.dual { background: var(--sage-pale); } + + .schedule-diagram article > div { + display: grid; + grid-template-columns: repeat(7, 1fr); + gap: 4px; + margin: 25px 0 17px; + } + + .schedule-diagram i { + display: grid; + place-items: center; + height: 42px; + background: var(--sage); + color: white; + font: normal .55rem var(--mono); + } + + .schedule-diagram i.idle { background: var(--line); color: var(--muted); } + .schedule-diagram i.comm { background: var(--copper); } + + .mtp-life, + .agent-loop { + display: grid; + grid-template-columns: 1fr 35px 1fr 35px 1fr; + align-items: center; + max-width: 950px; + margin: 34px 0; + } + + .mtp-life article, + .agent-loop article { + min-height: 195px; + padding: 22px; + border: 1px solid var(--line); + background: var(--paper-raised); + } + + .mtp-life > i, + .agent-loop > i { color: var(--copper); font-style: normal; text-align: center; } + + .zero-contract { + display: grid; + grid-template-columns: repeat(4, minmax(0, 1fr)); + max-width: 960px; + margin: 34px 0; + border: 1px solid var(--line); + } + + .zero-contract article { + min-height: 215px; + padding: 22px; + border-right: 1px solid var(--line); + background: var(--paper-raised); + } + + .zero-contract article:last-child { border-right: 0; } + .zero-contract article.removed { background: var(--copper-pale); } + + .followup-grid { + display: grid; + grid-template-columns: repeat(2, minmax(0, 1fr)); + max-width: 960px; + margin: 34px 0; + gap: 1px; + border: 1px solid var(--line); + background: var(--line); + } + + .followup-grid article { + min-height: 205px; + padding: 23px; + background: var(--paper-raised); + } + + .followup-grid article.wide { + grid-column: 1 / -1; + min-height: auto; + background: var(--copper-pale); + } + + .followup-grid h3 { margin: 24px 0 11px; font-size: .92rem; } + + .agent-loop { + grid-template-columns: 1fr 28px 1fr 28px 1fr 28px 1fr; + } + + .agent-loop article { min-height: 210px; } + + .state-machines { + display: grid; + grid-template-columns: 1fr 1fr; + max-width: 960px; + margin: 34px 0; + gap: 12px; + } + + .state-machines article { + min-height: 290px; + padding: 24px; + border: 1px solid var(--line); + background: var(--paper-raised); + } + + .state-machines header b { font-size: .68rem; } + + .state-flow { + display: flex; + flex-wrap: wrap; + align-items: center; + gap: 7px; + margin: 32px 0 22px; + } + + .state-flow i { + padding: 10px; + background: var(--sky-pale); + font: normal .54rem var(--mono); + } + + .state-flow u { + color: var(--copper); + font: .48rem var(--mono); + text-decoration: none; + } + + .v4-contract { + grid-template-columns: repeat(3, minmax(0, 1fr)); + } + + .v4-contract article { min-height: 205px; } + + .branch-grid { + display: grid; + grid-template-columns: repeat(2, minmax(0, 1fr)); + max-width: 960px; + margin: 34px 0; + gap: 12px; + } + + .branch-grid > a { + min-height: 230px; + padding: 24px; + border: 1px solid var(--line); + background: var(--paper-raised); + color: inherit; + text-decoration: none; + } + + .branch-grid > a:last-child { + grid-column: 1 / -1; + min-height: 190px; + } + + .branch-grid h3 { margin: 24px 0 12px; font-size: 1rem; } + .branch-grid > a > b { display: block; margin-top: 20px; color: var(--copper); font: .55rem var(--mono); } + + .audit-grid { + display: grid; + grid-template-columns: repeat(3, minmax(0, 1fr)); + max-width: 960px; + margin: 34px 0 18px; + gap: 1px; + border: 1px solid var(--line); + background: var(--line); + } + + .audit-grid > article { + min-height: 280px; + padding: 24px; + background: var(--paper-raised); + } + + .audit-grid > article.derived { background: var(--sage-pale); } + .audit-grid > article.toy { background: var(--copper-pale); } + .audit-grid h3 { min-height: 62px; margin: 27px 0 13px; font-size: .92rem; } + + .audit-rules { + display: grid; + max-width: 960px; + margin-bottom: 36px; + border-top: 1px solid var(--line); + } + + .audit-rules p { padding: 13px 5px; border-bottom: 1px solid var(--line); font-size: .68rem; } + .audit-rules b { color: var(--copper); } + + .paper-chain.expanded { + display: grid; + grid-template-columns: repeat(2, minmax(0, 1fr)); + max-width: 980px; + margin: 34px 0; + border-top: 1px solid var(--line); + border-left: 1px solid var(--line); + } + + .paper-chain.expanded .paper-row { + display: grid; + grid-template-columns: 35px 1fr; + min-height: 125px; + padding: 17px; + border-right: 1px solid var(--line); + border-bottom: 1px solid var(--line); + background: var(--paper-raised); + } + + .paper-chain.expanded time { grid-row: 1 / 3; color: var(--copper); font: .54rem var(--mono); } + .paper-chain.expanded b { font-size: .68rem; line-height: 1.45; } + .paper-chain.expanded p { color: var(--muted); font-size: .57rem; } + .paper-chain.expanded p span { margin-right: 10px; color: var(--copper); font: .5rem var(--mono); } + @media (max-width: 820px) { .moe-compare, .four-layer, - .stat-strip { + .stat-strip, + .ledger-grid, + .wave-grid, + .number-grammar, + .absorption-explainer, + .schedule-diagram, + .zero-contract, + .followup-grid, + .state-machines, + .v4-contract, + .branch-grid, + .audit-grid, + .paper-chain.expanded { grid-template-columns: 1fr; } @@ -810,18 +1687,33 @@ const toc = [ .mla-visual, .grpo-visual, .r1-pipeline, - .sparse-visual { + .sparse-visual, + .routing-contract, + .mtp-life, + .agent-loop { grid-template-columns: 1fr; } .mla-visual > strong, - .r1-pipeline > i { + .r1-pipeline > i, + .mtp-life > i, + .agent-loop > i { transform: rotate(90deg); } - .mapping-table > div { + .mapping-table > div, + .precision-table, + .precision-table.compact { grid-template-columns: 1fr; } + + .precision-table > div { display: grid; } + .precision-table > div > * { min-height: auto; } + .routing-contract > i { transform: rotate(90deg); } + .followup-grid article.wide, + .branch-grid > a:last-child { grid-column: auto; } + .absorption-explainer article, + .zero-contract article { border-right: 0; border-bottom: 1px solid var(--line); } } diff --git a/src/pages/index.astro b/src/pages/index.astro index c8b1359..62c1e4c 100644 --- a/src/pages/index.astro +++ b/src/pages/index.astro @@ -112,7 +112,7 @@ const paths = [
17核心专题
151K3 报告来源
-
480关键论文索引
+
486关键论文索引
47pK3 技术报告
@@ -126,6 +126,22 @@ const paths = [
+ +
+

NEW / DEEPSEEK ROUND 02 CAPACITY · STATE · SYSTEM · REASONING

+

从 Dense 到百万上下文:每次创新都在偿还上一代最贵的一张账

+

+ 用二十四张问题账和十次技术转向,从 DeepSeek LLM、MoE、V2 的 MLA 权重吸收, + 走到 V3 的 FP8 / DualPipe / MTP、R1 与 DAPO / Dr.GRPO 反查、V3.2 Agent 环境和 V4 异构长状态。 +

+
+
+
LINEAGE
1991 → 2026 · 10 次转向
+
NODES
60 个一手 / 官方节点
+
LAB
MoE · MLA · V3 协同 · RL 偏差
+
+ +

NEW / CHAPTER 03 TOKEN · POSITION · DEPTH · FFN

@@ -599,6 +615,7 @@ const paths = [ transition: transform 180ms ease, border-color 180ms ease; } + .deepseek-release, .representation-release, .inference-release, .agent-release, @@ -614,6 +631,14 @@ const paths = [ min-height: 510px; } + .deepseek-release { + background: + radial-gradient(circle at 80% 18%, rgba(159, 91, 52, .24), transparent 30%), + radial-gradient(circle at 61% 72%, rgba(35, 86, 84, .2), transparent 28%), + repeating-linear-gradient(90deg, transparent 0 48px, rgba(159, 91, 52, .04) 48px 49px), + var(--paper-raised); + } + .representation-release { background: radial-gradient(circle at 82% 18%, rgba(159, 91, 52, 0.22), transparent 31%), @@ -760,6 +785,7 @@ const paths = [ padding-bottom: 76px; } + .deepseek-release, .representation-release, .inference-release, .alignment-release, diff --git a/src/pages/progress/index.astro b/src/pages/progress/index.astro index 6853d89..dc8b55c 100644 --- a/src/pages/progress/index.astro +++ b/src/pages/progress/index.astro @@ -15,7 +15,7 @@ const workstreams = [ { label: "表示、位置与残差高速公路", value: 81, next: "加入真实 hidden-state / norm traces、长上下文位置外推复现与更多深层稳定性消融" }, { label: "Scaling Laws", value: 74, next: "加入真实拟合复现、置信区间与更多模型族对照" }, { label: "数据工程与预训练配方", value: 73, next: "逐图精读 FineWeb / DCLM,加入真实去重与 mixture traces" }, - { label: "DeepSeek 专题", value: 71, next: "补 R1 / DAPO 的逐图训练轨迹与复现对照" }, + { label: "DeepSeek 专题", value: 83, next: "加入真实专家负载、MLA kernel、RL 训练 traces 与独立复现" }, { label: "指令微调与人类偏好", value: 75, next: "加入真实偏好分歧样本、RM 长度偏置与 PPO/DPO 小模型复现" }, { label: "推理与测试时扩展", value: 76, next: "真实模型采样曲线、PRM 案例与逐篇图表精读" }, { label: "工具使用与长程 Agent", value: 74, next: "补真实环境 traces、cross-harness 对照、Agent RL 训练曲线与安全案例" }, @@ -50,7 +50,7 @@ const workstreams = [
OVERALL
专题平均 {average}%
READABLE
{published} 个首版可读专题
ACTIVE
{researching} 个研究/写作中
-
UPDATED
2026-07-29 10:26 CST
+
UPDATED
2026-07-29 11:10 CST
MODE
持续迭代,不锁死版本
@@ -97,11 +97,12 @@ const workstreams = [
✓

K3 报告已结构化拆解

47 页报告目录、151 条参考来源和架构/后训练/系统主线已经提取。

✓

17 专题知识图

从语言模型基础到评测安全,包含先修依赖和三条贯穿案例。

✓

编辑式网站系统

响应式导航、章节模板、侧栏、进度、论文链和证据提示组件。

-
✓

五十五个原创交互视图

K3、语言模型前史、Transformer、表示深度、DeepSeek、长上下文、MoE、推理、Agent、多模态,以及训练系统、推理服务、Scaling、数据工程、数值、Alignment 与评测安全专题。

+
✓

五十九个原创交互视图

K3、语言模型前史、Transformer、表示深度、DeepSeek 四联实验、长上下文、MoE、推理、Agent、多模态,以及训练系统、推理服务、Scaling、数据工程、数值、Alignment 与评测安全专题。

✓

十七篇首版长文

K3、语言模型前史、Transformer、表示/位置/残差、DeepSeek、Scaling、数据工程、长上下文、MoE、后训练、推理、Agent、原生多模态、训练系统、推理服务、数值优化与评测安全专题。

✓

语言模型前史深度专题

八张独立问题账、33 个正式节点、20 段长文与概率—向量—记忆—对齐四联实验。

✓

Transformer 深度专题

十张独立问题账、40 个正式节点、21 段正文与 QKV—Mask—多头位置—Block 成本四联实验。

✓

表示、位置与残差高速公路深度专题

二十张问题账、66 个一手节点、DeepSeek/Kimi 双谱系,以及 Token—位置—Norm—Residual/FFN 四联实验。

+
✓

DeepSeek 技术谱系二轮深读

二十四张问题账、十次技术转向、60 个一手/官方节点,以及稀疏容量—MLA 缓存—V3 协同—RL 偏差四联实验。

✓

Scaling Laws 深度专题

九张账、29 个一手节点、DeepSeek/Kimi 双谱系与曲面—部署—复用—涌现四联实验。

✓

数据工程深度专题

十二张账、31 个一手节点、DeepSeek/Kimi 双谱系与流水线—去重—混合—改写四联实验。

✓

长上下文深度专题

五张成本账、26 篇一手论文、10+ 机制图与 8 策略交互实验室。

@@ -114,7 +115,7 @@ const workstreams = [
✓

原生多模态深度专题

十六张账、55 个一手节点、DeepSeek 三分支、Kimi 三代 MoonViT,以及 Token—连接器—光学压缩—视觉闭环四联实验。

✓

推理服务与低成本部署深度专题

十八本账、62 个一手节点、DeepSeek V2→V4 与 Mooncake→K3 双谱系,以及显存—阶段—推测—集群四联实验。

✓

评测、安全与“到底强不强”深度专题

二十二张账、80 个一手节点、DeepSeek/K3 评测协议谱系,以及指标—Judge—污染—系统安全四联实验。

-
✓

480 篇关键论文索引

新增 output embedding、ELMo、BLT、Fixup、ReZero、Hyper-Connections、mHC、xPos、FIRE、LongRoPE 等 30 个表示与深度节点。

+
✓

486 篇关键论文索引

新增 DeepSeek-Coder/Coder-V2、ESFT、Prover-V1.5/V2 与 Engram 6 个 DeepSeek 旁支节点。

✓

公开仓库与自托管发布

源码公开到 git.k1412.top,网站由不可变镜像、Compose Manager 与 HTTPS 交付。

@@ -129,6 +130,7 @@ const workstreams = [
优先级专题本轮交付完成闸门
+
P0DeepSeek 三轮

真实 expert load / MLA kernel → FP8 / pipeline traces → R1-like RL 小模型复现

运行证据 + 独立复现
P0Transformer 二轮

多头电路逐图 → Pre/Post-LN 真实 traces → Flash/KV 配置与 kernel 对照

逐图笔记 + 实测边界
P0表示、位置与残差二轮

真实 hidden-state / norm traces → 长上下文位置外推 → mHC / AttnRes 深层稳定性消融

可复现实验 + 逐图笔记
P0语言模型前史二轮

Kneser–Ney / LSTM / Bahdanau 逐图 → 真实小语料复现 → tokenizer 公平性

可复现实验 + 逐图笔记