diff --git a/PROGRESS.md b/PROGRESS.md
index 0b57a96..b15d4d6 100644
--- a/PROGRESS.md
+++ b/PROGRESS.md
@@ -1,16 +1,17 @@
# 持续进度
-最后更新:2026-07-28
+最后更新:2026-07-29
## 总体状态
| 工作流 | 状态 | 完成度 | 下一检查点 |
|---|---:|---:|---|
-| 研究框架与规范 | 进行中 | 76% | 给 130 篇索引补充逐篇精读层级 |
+| 研究框架与规范 | 进行中 | 82% | 给推理专题补逐篇图表/实验精读层级 |
| 网站设计系统 | 进行中 | 89% | 打印样式与更多通用可视化组件 |
-| Kimi K3 深读 | 进行中 | 55% | 扩写 scaling / infra 逐图笔记 |
+| Kimi K3 深读 | 进行中 | 64% | 扩写 scaling / pre-training / infra 逐图笔记 |
| Transformer 基础 | 进行中 | 52% | 矩阵形状动画与手算练习 |
-| DeepSeek 专题 | 进行中 | 61% | GRPO 完整公式与训练轨迹推导 |
+| DeepSeek 专题 | 进行中 | 71% | 补 R1 / DAPO 的逐图训练轨迹与复现对照 |
+| 推理与测试时扩展 | 完成首版 | 76% | 真实模型采样曲线、PRM 案例与逐篇图表精读 |
| 稀疏计算与 MoE | 完成首版 | 74% | 真实负载 traces 与专家特化案例 |
| 长上下文专题 | 完成首版 | 72% | 真实模型配置、内核细节与失败案例 |
| 引用与事实检查 | 进行中 | 54% | 自动化外链复查与来源等级扩展 |
@@ -26,14 +27,18 @@
- [x] 提炼参考网站的编辑设计语言。
- [x] 确认 `git.k1412.top` 为 Gitea/Forgejo 兼容服务且本机 HTTPS 凭据可用于既有仓库。
- [x] 使用 Grok CLI 检索并形成约 95 篇一手论文的补充路线,主代理已回查关键来源。
-- [x] 完成首批 130 篇关键论文索引,覆盖 12 个专题与 Kimi/DeepSeek 聚光主线。
+- [x] 完成 146 篇关键论文索引,覆盖 12 个专题与 Kimi/DeepSeek 聚光主线。
- [x] 完成可检索、可按专题筛选的论文库页面。
-- [x] 完成 K3、Transformer 基础、DeepSeek 谱系、长上下文与 MoE 五篇首版长文。
-- [x] 完成 K3 三轴架构、Self-Attention 实验、DeepSeek 谱系、长上下文成本与 MoE 路由实验室五张原创交互图。
+- [x] 完成 K3、Transformer 基础、DeepSeek 谱系、长上下文、MoE 与推理六篇首版长文。
+- [x] 完成 K3 三轴架构、Self-Attention、DeepSeek 谱系、长上下文、MoE 路由与推理专题三页签等八个原创交互视图。
- [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 研究账本。
- [x] 完成 MoE 首版:六张账、19 篇一手论文、完整 DeepSeek/K3 主线与路由—容量—通信实验室。
+- [x] 为推理专题缓存并核验 23 份一手论文,另复用 K3 原报告,建立 24 份来源的研究账本。
+- [x] 明确 CoT / verifier / test-time compute、PPO → GRPO、DeepSeek-R1 与 Kimi k1.5 → K3 四条主线。
+- [x] 分清 K3 partial rollout 的 off-policy 稳定化与 MOPD 的 student on-policy 逐 Token 蒸馏。
+- [x] 完成推理首版:八张账、30 篇一手论文链、DeepSeek/Kimi 双主线与预算—GRPO—MOPD 三页签实验室。
- [x] Astro 类型检查、生产构建、9 个内部路由和桌面/移动端视觉检查通过。
- [x] 创建 `wuyang/llm-atlas` 公开仓库,匿名 API 确认 `private: false`。
- [x] 本地生产镜像通过健康检查与全部 9 个页面路由烟雾测试。
@@ -41,7 +46,8 @@
## 正在进行
-- [ ] 推理模型与测试时扩展:CoT、verifier、GRPO、R1、Kimi k1.5 与 K3 MOPD。
+- [ ] 大规模训练系统:ZeRO / Megatron → Expert/Context Parallel → DualPipe / MoonEP。
+- [ ] 推理专题二轮:真实 pass@k 曲线、PRM 失败案例与逐篇图表精读。
- [ ] 长上下文专题的真实模型配置对比、内核细节与失败案例二轮深化。
- [ ] MoE 专题的真实集群 traces、专家特化案例与二轮外部证据。
@@ -53,13 +59,16 @@
| 2026-07-28 | K3 作为“汇流点”,不是课程起点 | 初学者可以先学基础,高阶读者可以从 K3 反向跳转 |
| 2026-07-28 | 优先重绘论文图并标明“简化/改绘” | 图可缩放、可交互,也减少脱离上下文复制论文图片 |
| 2026-07-28 | Grok 只用于线索扩展与交叉检查 | 正文事实必须回到论文、官方仓库或正式文档 |
-| 2026-07-28 | 首批论文库收录 130 篇,按问题与专题多标签组织 | 论文库承担发现入口,专题正文承担深度精读与机制复核 |
+| 2026-07-28 | 首批论文库按问题与专题多标签组织,推理研究后扩充至 146 篇 | 论文库承担发现入口,专题正文承担深度精读与机制复核 |
| 2026-07-28 | 源码公开到 `git.k1412.top/wuyang/llm-atlas` | 路线、进度、研究方法和内容变更均可追踪 |
| 2026-07-28 | 站点使用不可变镜像与 Compose Manager 部署 | 每次发布保留明确版本、健康检查和回滚点 |
| 2026-07-28 | 长上下文按计算、缓存、位置、状态容量、系统五张账单组织 | 避免把 FlashAttention、位置外推和“记住更久”混成同一个问题 |
| 2026-07-28 | 交互缓存数字统一标记为教学估算 | 展示增长规律,不冒充任一模型的真实线上显存基准 |
| 2026-07-28 | MoE 按六张账组织,路由算法与集群执行分开核算 | 避免用“稀疏所以便宜”跳过容量、负载、通信与权重读取 |
| 2026-07-28 | “aux-loss-free”保留论文真实边界 | 区分 selection bias、mixture weight、z-loss 与 V3 的极小 sequence-wise loss |
+| 2026-07-29 | 推理专题按结果、覆盖、选择、过程、预算、优化、分布、系统八张账组织 | 避免把 pass@1、pass@k、搜索收益、RL 能力增长与系统吞吐混成“会思考” |
+| 2026-07-29 | K3 partial rollout RL 与 MOPD 在正文中强制并排 | 前者显式容忍跨迭代 stale trajectory,后者由当前 student 采样并接收稠密 teacher signal |
+| 2026-07-29 | 推理首版用 30 篇一手论文和三页签实验闭环 | 分开演示预算分配、GRPO 聚合偏置和 K3 九教师 MOPD,不合成伪“总分” |
## 未决问题
diff --git a/README.md b/README.md
index a011fa1..6aff892 100644
--- a/README.md
+++ b/README.md
@@ -17,7 +17,7 @@
- 持续进度:[PROGRESS.md](./PROGRESS.md)
- 证据与写作规范:[research/METHODOLOGY.md](./research/METHODOLOGY.md)
-当前里程碑包含 16 专题学习地图、130 篇关键论文索引、Kimi K3 完整导读、
+当前里程碑包含 16 专题学习地图、146 篇关键论文索引、Kimi K3 完整导读、
Transformer 基础、DeepSeek 技术谱系、长上下文与 MoE 深度专题,以及五张原创交互可视化。
其余专题按进度账本持续扩建。
diff --git a/package.json b/package.json
index 0e70d59..12aa527 100644
--- a/package.json
+++ b/package.json
@@ -10,7 +10,8 @@
"preview": "astro preview --host 0.0.0.0",
"check": "astro check",
"check:site": "node scripts/check-site.mjs",
- "check:moe-browser": "node scripts/check-moe-browser.mjs"
+ "check:moe-browser": "node scripts/check-moe-browser.mjs",
+ "check:reasoning-browser": "node scripts/check-reasoning-browser.mjs"
},
"dependencies": {
"@astrojs/sitemap": "3.7.3",
diff --git a/research/REASONING_RESEARCH.md b/research/REASONING_RESEARCH.md
new file mode 100644
index 0000000..f7b5bb9
--- /dev/null
+++ b/research/REASONING_RESEARCH.md
@@ -0,0 +1,898 @@
+# 推理模型与测试时扩展研究账本
+
+状态:原始论文核验中,正文尚未发布
+研究截止:2026-07-28
+本轮本地缓存:23 份一手 PDF / 文本,另复用 Kimi K3 官方技术报告
+线索发现:K3 references、论文引用网络、作者/机构页面、Grok CLI
+结论依据:原论文正文、附录、官方技术报告;Grok 只用于扩大检索覆盖
+
+## 0. 这一章真正要回答什么
+
+“模型会推理”不是一个单一指标。至少要把下面八张账分开:
+
+1. **结果账**:第一次回答是否正确,通常看 pass@1。
+2. **覆盖账**:多采样以后,至少有一个正确答案的概率,通常看 pass@k。
+3. **选择账**:如果正确答案已经在候选里,投票、ORM、PRM 或 verifier 能否选出来。
+4. **过程账**:中间步骤是否有效、可检查,以及写出来的 CoT 是否真是模型决策的因果解释。
+5. **预算账**:额外计算花在更长的单条轨迹、更多并行样本、树搜索,还是工具调用。
+6. **优化账**:PPO、GRPO、DAPO、Dr.GRPO 与 Kimi 的目标函数究竟改变了哪个梯度。
+7. **分布账**:训练是在发现新解法,还是把已有正确解法的概率质量推到前面,同时牺牲多样性。
+8. **系统账**:长尾 rollout、KV 状态、沙箱、验证器和教师 prefill 让训练吞吐付出什么代价。
+
+本章核心问题不是“哪篇论文赢了 benchmark”,而是:
+
+> 给定一个模型、一个问题和一笔有限预算,
+> 如何产生候选、分配计算、评价过程、选择答案,并知道能力到底来自哪里?
+
+## 1. 贯穿全章的三条因果链
+
+### 1.1 从“写步骤”到“分配测试时计算”
+
+```text
+直接回答
+→ Chain-of-Thought:把计算摊到更多串行 Token
+→ Self-Consistency:对多条 CoT 做并行采样与投票
+→ ORM / PRM:不只投票,而是学习判断结果或中间步骤
+→ Tree of Thoughts:主动展开、评价、回溯
+→ ReAct:把内部推理与外部行动/观察交错
+→ compute-optimal allocation:按问题难度在串行、并行、搜索之间分预算
+→ reasoning effort:训练一个模型在 low / high / max 下改变推理预算
+```
+
+### 1.2 从“人类偏好 RL”到“可验证奖励 RL”
+
+```text
+PPO:actor + critic + clipped surrogate
+→ RLHF:偏好奖励模型给标量奖励
+→ DeepSeekMath GRPO:同题成组采样,用组内相对奖励代替 critic
+→ DeepSeek-R1-Zero:规则奖励直接驱动长 CoT
+→ DeepSeek-R1:cold start + reasoning RL + rejection/SFT + general RL
+→ DAPO:Clip-Higher、Dynamic Sampling、token-level loss、overlong shaping
+→ Dr.GRPO:去掉长度与组标准差归一化,揭示原始 GRPO 的两类偏置
+→ RLVR 边界争论:pass@1 上升是否伴随大 k 覆盖下降
+```
+
+### 1.3 Kimi 的长轨迹与能力整合线
+
+```text
+Kimi k1.5
+ 128K RL context + partial rollout + online mirror-descent surrogate
+ + long2short(merge / RS / DPO / RL)
+→ Kimi K2
+ verifiable rewards gym + self-critique rubric reward
+ + budget control + PTX + temperature decay
+→ Kimi K2.5
+ token-level off-policy clipping + Toggle 预算训练
+ + unified agentic RL + 100K concurrent tasks
+→ Kimi K3
+ 3 domains × 3 reasoning efforts = 9 RL teachers
+ + extreme off-policy partial rollout stabilization
+ + Multi-Teacher On-Policy Distillation
+ + million-token agentic RL / AgentENV
+```
+
+## 2. 指标词典:先统一“正确率”口径
+
+### 2.1 pass@1
+
+从指定采样策略抽一个答案时正确的概率。很多论文为了降低方差,会对同一题生成多次,再使用无偏估计汇总成 pass@1;它不一定等于“贪心解码一次”的准确率。
+
+必须同时记录:
+
+- temperature / top-p;
+- 最大输出长度;
+- 是否有工具;
+- prompt template;
+- 重复运行次数;
+- 是否使用 grader / verifier。
+
+### 2.2 pass@k
+
+在 `k` 次候选中至少出现一个正确答案的概率。若一共采样 `n` 个,其中 `c` 个正确,无偏估计为:
+
+```text
+pass@k = 1 - C(n-c, k) / C(n, k)
+```
+
+它近似回答“这个分布里还覆盖着正确解法吗”,但不是能力的完美真值:
+
+- 有限 `k` 只能看到有限尾部;
+- temperature 会改变覆盖;
+- prompt 与答案解析器会改变 `c`;
+- 高 pass@k 不代表实际系统能找到并选中正确答案。
+
+### 2.3 majority@k / consensus@k
+
+采样 `k` 条推理,把最终答案归一化后多数投票。它依赖“正确答案形成稳定簇”的假设:
+
+- 多样错误彼此抵消时很有效;
+- 同一种系统性错误占多数时会一起错;
+- 自由文本任务难以稳定抽取等价答案。
+
+### 2.4 best-of-N
+
+先生成 `N` 个候选,再由 verifier / reward model 选择最高分答案。最终成功率拆成两部分:
+
+```text
+候选覆盖:正确答案有没有生成
+×
+选择可靠性:评分器有没有把正确答案排到前面
+```
+
+因此 best-of-N 的提升不能全部归功于生成模型,也不能只报告 verifier 分数而不报告候选覆盖。
+
+### 2.5 训练时计算与测试时计算
+
+| 口径 | 花在哪里 | 常见混淆 |
+|---|---|---|
+| 预训练计算 | 更多数据、参数、训练 Token | 与 inference scaling 不是同一条轴 |
+| 后训练计算 | SFT、RL rollout、reward、teacher prefill | 训练变贵不代表单次推理变贵 |
+| 串行测试时计算 | 更长 CoT、反思、修订 | Token 多不必然更正确 |
+| 并行测试时计算 | 多采样、self-consistency、best-of-N | 可并行但总 Token 大 |
+| 搜索计算 | 分支、评价、回溯 | verifier 错误会被搜索放大 |
+| 工具计算 | 搜索、代码执行、环境交互 | 延迟和成本不只来自模型 Token |
+
+## 3. 八张教学账
+
+### 3.1 结果账:它最后答对了吗
+
+最适合规则可验证任务,例如数学最终答案、单元测试、棋局合法性。优势是奖励便宜且客观;局限是:
+
+- 最终答案对,不保证过程可靠;
+- 奖励函数有漏洞时,模型会学会利用漏洞;
+- 二元奖励在极难或极易题上几乎不给区分信号;
+- 开放式写作、研究与复杂代理任务没有唯一 verifier。
+
+### 3.2 覆盖账:正确路径还在分布里吗
+
+pass@1 上升可能来自两种完全不同的变化:
+
+```text
+A. 真正扩展:新增原先几乎不会出现的解法模式
+B. 分布锐化:把原先低概率的正确模式推到更高概率
+```
+
+DeepSeekMath 已在 2024 年报告:RL 提升 Maj@K,却没有改善 Pass@K;作者谨慎解释为输出分布更稳健、正确答案从 Top-K 被推向前面,而不是已经证明基础能力扩展。
+
+2025 年的 RLVR capacity-limit 工作把这一问题扩大到多个数学、代码和视觉设置:当前测试中的 RLVR 模型常在小 `k` 更强,但基础模型会在大 `k` 追上或超过。它是对一组当前算法的实证边界,不是“RL 永远不能创造能力”的定理。
+
+### 3.3 选择账:如何从候选里找到对的
+
+选择器的主要分支:
+
+1. **答案投票**:不训练 verifier,只看答案频次。
+2. **Outcome Reward Model(ORM)**:整条解答得到一个分数。
+3. **Process Reward Model(PRM)**:每一步得到分数,再聚合。
+4. **规则 verifier**:执行代码、比较数学答案、检查约束。
+5. **Generative Reward Model(GRM)**:先生成评价过程/rubric,再给分。
+
+选择器不是免费 oracle。它可能:
+
+- 偏爱格式、长度或表面完整性;
+- 在分布外候选上失准;
+- 把局部错误一路传播到树搜索;
+- 被策略模型共同训练后产生共谋式 reward hacking。
+
+### 3.4 过程账:步骤好看、有效、忠实是三回事
+
+必须分开:
+
+- **有效性**:这一步是否有助于得到正确答案;
+- **可验证性**:外部规则或 PRM 能否判断这一步;
+- **可读性**:人是否容易理解;
+- **忠实性**:公开写出的步骤是否真反映模型产生答案的因果过程。
+
+Turpin 等人的偏置提示实验显示,模型能给出听起来合理但隐瞒偏置影响的解释;“正确/流畅的 CoT”不能自动当作模型内部因果证词。这不是说所有 CoT 都不可信,而是说明公开推理文本必须接受独立 faithfulness 检查。
+
+### 3.5 预算账:四种测试时扩展不是一回事
+
+#### 串行深度
+
+同一条轨迹继续写、检查、修订。适合一个局部错误可以被后续发现的题;风险是错误前提越写越深。
+
+#### 并行宽度
+
+从同一问题采样多个独立候选。适合模型有多种可行路径、错误较分散的题;风险是样本高度相关,新增候选边际收益迅速下降。
+
+#### 显式搜索
+
+在“状态—候选思路—评价—回溯”树上分配预算。适合步骤可局部评价的问题;风险是搜索控制和 verifier 本身消耗大量计算。
+
+#### 工具/环境
+
+让模型通过搜索、代码执行、浏览器或软件环境获得新观察。它不只是“想更久”,而是改变信息集。对 agentic RL 来说,这也是最可能超越单轮静态提示能力边界的路径。
+
+Snell 等人的 compute-optimal 工作在专门训练的 PaLM 2 模型与 MATH 设置中表明:
+
+- 最优策略依题目难度和模型而变;
+- 其最优分配在特定实验中可用约 4 倍更少计算超过 best-of-N;
+- 在一些 FLOPs 匹配条件下,小模型可超过约 14 倍大的模型;
+- 但最难题常从当前测试时计算中获益很少,继续预训练更有效。
+
+这些数字不能外推成“推理计算总能替代参数规模”。
+
+### 3.6 优化账:每个目标函数到底改了什么
+
+#### PPO
+
+PPO 使用 actor 产生动作、critic 估计价值/优势,并通过 clipped surrogate 限制单次策略更新。用于 LLM RLHF 时还常加入 reference KL、reward model 和 GAE。它的工程代价包括:
+
+- 额外价值网络或 value head;
+- rollout、reference、reward、critic 多模型协调;
+- 长序列信用分配;
+- 训练/推理引擎概率不一致。
+
+#### DeepSeekMath GRPO
+
+对同一问题 `q`,从旧策略采样一组 `G` 个输出。用组内奖励均值作为 baseline,并以组内标准差归一化:
+
+```text
+A_i = (r_i - mean(r_1...r_G)) / std(r_1...r_G)
+```
+
+Outcome supervision 时,同一输出的每个 token 共用 `A_i`。原始 DeepSeekMath GRPO:
+
+- 不训练 critic;
+- 对每个回答先做 token 平均,再对组平均;
+- 把 KL 直接加入目标,而不是先从 reward 中扣;
+- 使用论文给出的正值 KL 估计器;
+- 只对“组内有奖励差异”的问题产生相对信号。
+
+DeepSeekMath-RL 的报告设置包括:约 144K 个 GSM8K/MATH CoT 问题、每题 64 个输出、最大 1024 tokens、KL 系数 0.04。该模型在报告中 MATH 从 46.8 提升到 51.7,64-sample self-consistency 为 60.9;只能按论文设置解释。
+
+#### DAPO
+
+DAPO 不是简单“把 GRPO 再跑大一点”,而是修复实际训练中的四个断点:
+
+1. **Clip-Higher**:上下裁剪范围解耦,给低概率 token 更大上升空间,缓解熵坍缩。
+2. **Dynamic Sampling**:过滤组内全对或全错的 prompt,因为相对优势全为零。
+3. **Token-level Policy Gradient Loss**:整批 token 等权聚合,改变长短回答的梯度权重。
+4. **Overlong Reward Shaping**:在长度上限附近平滑惩罚,避免硬截断制造噪声。
+
+DAPO 在其 Qwen2.5-32B Base、数据、系统和评测设置中达到 AIME 2024 平均 50;论文对比的 naive GRPO 为 30、引用的 R1-Zero-Qwen-32B 为 47。由于复现数据与系统并不完全相同,不能写成无条件“DAPO 超过 R1”。
+
+#### Dr.GRPO
+
+Dr.GRPO 指出原始 GRPO 的两个潜在偏置:
+
+1. **response-level length bias**:每条回答除以自己的长度,会让短正确答案获得更强正梯度、长错误答案获得更弱负梯度。
+2. **question-level difficulty bias**:再除以组内 reward 标准差,会使某些难度的题获得不同权重。
+
+其改法是去掉回答长度与组标准差归一化,用固定全局最大 token 数作为实现中的分母。论文还展示 DeepSeek-V3 Base 在 RL 前已经会出现 “aha”/反思式表达,因此不能仅凭训练后出现 “wait/aha” 就断言 RL 从零发明了反思。
+
+这是一个有明确假设和实验范围的批判,不代表所有 GRPO 结果无效。
+
+#### Kimi k1.5 的 mirror-descent surrogate
+
+k1.5 从迭代参考策略采样 `k` 条回答,使用组均值奖励 baseline,并优化“奖励 − 与迭代参考策略的 KL 正则”对应的 surrogate。论文强调:
+
+- 不使用 value network;
+- 每轮重置优化器;
+- 允许使用 off-policy 数据;
+- 128K context 与 partial rollout 让一条超长轨迹跨训练迭代;
+- 局部错误之后仍可能恢复,因此不在本文框架里依赖 PRM/value/MCTS。
+
+“不依赖 PRM/MCTS”只描述 k1.5 的选择,不能泛化为搜索与过程监督无效。
+
+#### Kimi K2 的统一 RL
+
+K2 延续 k1.5 的组相对奖励与 squared log-ratio 正则,并扩展任务/奖励:
+
+- 数学、STEM、逻辑、代码、软件工程、复杂指令等 verifiable gym;
+- 对开放任务使用 self-critique rubric reward;
+- critic 用可验证任务的 on-policy rollout 持续校准;
+- 分任务 token budget,超预算截断并惩罚;
+- 高质量 PTX loss 防遗忘;
+- temperature decay 从探索过渡到稳定利用。
+
+K2 的“self-critique”不是模型随口说“我觉得好”,而是 pairwise 比较,结合 core、prescriptive 和人工 rubric;它仍可能受 judge 偏差与 reward hacking 影响。
+
+#### Kimi K2.5 的 token-level off-policy clipping
+
+K2.5 对每个 token 的新旧策略比率做 `[α, β]` 区间裁剪。正文明确说明:
+
+- 区间内正常计算 policy gradient;
+- 区间外梯度屏蔽;
+- 只依据 log-ratio 是否越界;
+- 不像标准 PPO 那样根据 advantage 正负决定截哪一边;
+- 目的是约束训练引擎与推理引擎差异放大的 off-policy drift。
+
+K2.5 同时提出 **Toggle**:
+
+- Phase 0:当同题平均正确率超过阈值时,才按正确样本长度分位数施加预算;
+- Phase 1:恢复最大长度,继续学习利用更多推理计算;
+- 两阶段每 `m` 轮交替。
+
+直觉是避免只做“越短越好”以后失去向上扩展预算的能力。
+
+### 3.7 分布账:pass@1 上升不等于能力空间变大
+
+教学时固定画两张分布:
+
+```text
+基础模型:正确模式概率低,但模式覆盖较宽
+RL 模型:正确模式概率高,但部分低概率模式消失
+```
+
+需要同时问:
+
+- pass@1 是否上升;
+- pass@k 曲线在多大 `k` 后交叉;
+- entropy 是否下降;
+- 相同 temperature 还是 entropy-matched temperature;
+- 训练 prompt 和测试 prompt 是否相同;
+- distillation 是否从更强教师引入了基础模型原本没有的模式。
+
+RLVR capacity-limit 论文观察到,蒸馏模型的 pass@k 可以超过基础模型,并据此把“从更强教师转入新模式”与“当前 on-policy RL 对已有模式重加权”区分开。但这仍依赖有限采样与具体教师。
+
+### 3.8 系统账:长推理不是只把 max_tokens 改大
+
+长轨迹训练带来的系统问题:
+
+- 一批 rollout 中少数极长样本拖住全部 GPU;
+- 长序列 KV cache 占用巨大;
+- 工具/浏览器/沙箱在模型思考时空闲,在环境运行时 GPU 又可能空闲;
+- 策略更新后,未完成轨迹变成 stale/off-policy;
+- 训练引擎与高吞吐推理引擎可能给出不同 log-prob;
+- verifier、teacher prefill 和环境执行形成新的流水线。
+
+Kimi 的演化正好提供一条系统线:
+
+- k1.5:partial rollout、replay buffer、长轨迹分段;
+- K2.5:每个 agent task 是异步 coroutine,Rollout Manager 支持最多 100K concurrent tasks;
+- K3:几百张 GPU 上的 co-located RL、外部 CPU DRAM KV pool、NVMe 状态卸载、自动节流与 AgentENV。
+
+## 4. DeepSeek 高亮主线
+
+### 4.1 DeepSeekMath:GRPO 先是一种“去 critic”的工程/统计选择
+
+不能把 GRPO 缩成一句“PPO 不要 value model”。它同时改变了:
+
+- baseline:同题组均值;
+- advantage normalization:组内标准差;
+- loss aggregation:先回答内 token 平均;
+- KL 放置与估计;
+- 可学习 prompt:全对/全错组没有相对信号。
+
+还要把论文自己的保守结论放在正文:RL 提升 Maj@K 而非 Pass@K,作者当时已没有把它夸张成必然创造新能力。
+
+### 4.2 R1-Zero:规则奖励能让长 CoT 自组织,但现象不等于机制证明
+
+R1-Zero:
+
+- 从 DeepSeek-V3 Base 直接开始 RL,没有先做 reasoning SFT;
+- 使用 GRPO;
+- 使用规则 accuracy reward 与 format reward;
+- 不使用神经 ORM/PRM 作为 reasoning reward,理由包括 reward hacking 与复杂训练管线;
+- 随训练出现更长回答、反思、验证和被称为 “aha moment” 的行为;
+- 同时存在可读性差、语言混合等问题。
+
+应把“观察到长推理/反思”写成训练现象,而不是断言某个单一 token 或表达就是能力涌现的因果标志。Dr.GRPO 对基础模型的检查尤其提醒这一点。
+
+### 4.3 R1:完整管线不是“纯 RL”
+
+R1 的公开管线:
+
+```text
+少量高质量 cold-start reasoning data
+→ reasoning-oriented RL
+→ rejection sampling
+→ reasoning + non-reasoning SFT
+→ broader RL(helpfulness / safety 等)
+```
+
+边界:
+
+- R1-Zero 才是“base 直接 RL”的主要实验;
+- R1 使用 SFT、rejection sampling 和多阶段 RL;
+- reasoning 阶段偏向规则奖励,后续 general RL 仍有 reward models;
+- 扩展版报告记载 model preference reward 只在最后约 400 steps 使用,过久会 reward hack;
+- 报告对 AIME/GPQA 常采样 64 次、MATH/Codeforces 16 次,再估计 pass@1;consensus 另列,不能把两者混用。
+
+### 4.4 R1 蒸馏:小模型得到的是强教师轨迹
+
+六个 1.5B–70B distilled 模型使用约 800K 由 R1 产生/筛选的数据进行 SFT,本身没有再做该报告中的 RL。附录对比显示在小模型上蒸馏更有效,但报告同时认为 RL 仍是继续突破更强能力的必要方向。
+
+所以:
+
+- “小模型只靠 SFT 就会推理”缺了强教师数据来源;
+- “蒸馏证明 RL 不需要”也不成立,因为教师本身来自更重的训练管线。
+
+### 4.5 DAPO 与 Dr.GRPO:从复现失败反推算法细节
+
+这两篇论文最适合作为“研究如何进步”的案例:
+
+```text
+R1 给出强结果与简要 GRPO 配方
+→ naive reproduction 明显落后
+→ DAPO 暴露熵、无信号组、长序列聚合、截断四个工程断点
+→ Dr.GRPO 再追问长度增长和 aha 是否可能来自目标函数偏置/基础模型
+```
+
+这不是互相推翻,而是把“RL 有效”拆成更可审计的机制。
+
+## 5. Kimi 高亮主线
+
+### 5.1 Kimi k1.5:把 RL 的序列长度本身当作 scaling axis
+
+关键配置/结论:
+
+- 最大 RL context 128K;
+- long-CoT 报告 AIME 77.5、MATH 500 96.2、Codeforces 94th percentile、MathVista 74.9;
+- partial rollout 让长回答跨迭代继续;
+- replay buffer 保存旧片段,当前轮只对可用部分做 on-policy 计算,并可把旧片段排除出 loss;
+- 长度惩罚在初期能力增长后再 warm up。
+
+数字只能按论文的模型、采样与评测协议使用。
+
+### 5.2 long2short 不是一种蒸馏算法
+
+k1.5 的 long2short 是四类方法:
+
+1. **weight averaging**:合并长 CoT 与短模型;
+2. **shortest rejection sampling**:每题采样 8 条,选最短正确答案;
+3. **DPO**:最短正确为正样本,较长错误或超过 1.5 倍的正确回答为负样本;
+4. **long2short RL**:加强长度惩罚并降低最大 rollout 长度。
+
+报告中 long2short RL 在 AIME 2024 的 8 次运行 pass@1 为 60.8、平均约 3,272 tokens。它说明可以优化“正确率—长度”前沿,不说明短思维总能保留全部长思维能力。
+
+### 5.3 K2:把可验证推理扩展到一般任务
+
+K2 的新意不是继续拉长数学 CoT,而是建立从规则奖励到 subjective rubric 的闭环:
+
+```text
+可验证任务的 on-policy rollout
+→ 用客观信号持续校准 critic
+→ critic 对开放任务做 pairwise rubric evaluation
+→ actor 学习更一般的偏好
+```
+
+这是一种把 verifier 能力迁移到开放任务 judge 的尝试;开放任务奖励仍不是客观真值。
+
+### 5.4 K2.5:训练效率与推理预算要一起控制
+
+K2.5 的两项关键桥梁:
+
+- token-level probability-ratio clipping(用于约束 log-ratio drift),处理大规模异步 rollout 的 off-policy 偏移;
+- Toggle 在 budget-limited 与 standard scaling 间交替,保留模型继续使用更多推理计算的能力。
+
+其 unified agentic RL 还把 text、vision、parallel-agent RL 放进同一异步环境,说明“reasoning model”已从单轮数学走向多模态、工具与并行代理控制。
+
+### 5.5 K3:九个专家怎样合成一个可控模型
+
+K3 post-training 有三阶段:
+
+```text
+Stage 1: SFT
+Stage 2: domain × reasoning effort RL
+Stage 3: Multi-Teacher On-Policy Distillation
+```
+
+Stage 2 的三个领域:
+
+1. general:经验、视觉、推理、faithfulness、search、knowledge work;
+2. general agent:long-horizon assistant、deep research、paragraph writing;
+3. coding agent:SWE、coding experience、kernel、web development。
+
+每个领域再训练 `low / high / max` 三档 reasoning effort,共 9 个教师。
+
+#### reasoning effort RL
+
+对每题先估计初始预算 `b0(x)`。如果回答长度 `T(y)` 超过 `τ · b0(x)`,任务奖励被覆盖为 `-1`:
+
+```text
+max effort:先用较大的 τ 学会充分计算
+→ high / low:逐步 anneal τ,压缩可用预算
+```
+
+它不是推理时简单截断,而是在训练时改变“超预算回答”的奖励。
+
+#### Agentic GRM
+
+K3 要求生成式奖励模型遵循:
+
+```text
+outcome → rubric → score → scorepad
+```
+
+为缓解模型通过冗长回答骗取分数,候选长度超过阈值 `σ · l0` 时会在二元比较中自动失败。这里控制的是 judge 的 verbosity 偏好,不等于 reasoning effort 的长度奖励。
+
+## 6. K3 最容易混淆的两种训练
+
+### 6.1 partial rollout RL:允许长轨迹跨迭代,显式处理 stale/off-policy
+
+对 `N` 个 prompt、每题 `K` 条轨迹:
+
+1. 并行生成 `N×K` 条 rollout;
+2. 当其中 `λNK` 条完成,就暂停 generation;
+3. 已完成轨迹进入本轮 policy optimization;
+4. 未完成轨迹排队,后续迭代恢复;
+5. 一条超长轨迹因此可能横跨多个 policy 版本。
+
+K3 使用 per-token regularization,把更新限制在局部邻域,以容忍这种“极端 off-policy”状态。这里解决的是长尾吞吐与旧策略轨迹问题。
+
+### 6.2 MOPD:学生 on-policy,教师给逐 token 稠密信号
+
+对领域 `d`、effort `e`:
+
+1. 学生 `πθ` 自己生成轨迹;
+2. 路由到对应冻结教师 `πteacher(d,e)`;
+3. 教师对学生已经走过的前缀做 prefill;
+4. 每个学生采样 token 得到教师—学生 log-prob 差;
+5. clip 后作为 dense token reward / advantage。
+
+K3 报告中的形式可简写为:
+
+```text
+r_opd,t =
+clip(
+ stop_gradient[
+ log π_teacher(y_t | e, x, y_ 0 || mobile.documentOverflow > 0 || home.documentO
}
if (layout.navGap < 0) failures.push(`桌面导航碰撞:${layout.navGap}px`);
if (!mobile.menuVisible) failures.push("移动端菜单按钮未显示");
-if (home.releaseCards !== 2) failures.push(`首页新章卡数量异常:${home.releaseCards}`);
+if (home.releaseCards !== 3) failures.push(`首页新章卡数量异常:${home.releaseCards}`);
if (exceptions.length) failures.push(`浏览器脚本异常:${exceptions.join("; ")}`);
socket.close();
diff --git a/scripts/check-reasoning-browser.mjs b/scripts/check-reasoning-browser.mjs
new file mode 100644
index 0000000..c5ea442
--- /dev/null
+++ b/scripts/check-reasoning-browser.mjs
@@ -0,0 +1,299 @@
+import { writeFileSync } from "node:fs";
+
+const cdpPort = process.env.CDP_PORT ?? "9224";
+const baseUrl = process.env.SITE_URL ?? "http://127.0.0.1:4323";
+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.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.text);
+ return result.result.value;
+};
+const navigate = async (path) => {
+ await command("Page.navigate", { url: `${baseUrl}${path}` });
+ for (let attempt = 0; attempt < 40; attempt += 1) {
+ await pause(100);
+ if (await evaluate("document.readyState === 'complete'")) return;
+ }
+ throw new Error(`${path} 加载超时`);
+};
+const screenshot = async (path, full = false) => {
+ const params = { format: "png", captureBeyondViewport: full };
+ if (full) {
+ const metrics = await command("Page.getLayoutMetrics");
+ params.clip = {
+ x: 0,
+ y: 0,
+ width: metrics.cssContentSize.width,
+ height: metrics.cssContentSize.height,
+ scale: 1,
+ };
+ }
+ const result = await command("Page.captureScreenshot", params);
+ 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("/reasoning/");
+await screenshot("/tmp/llm-atlas-reasoning-desktop.png");
+
+const budget = await evaluate(`(() => {
+ const root = document.querySelector("[data-reasoning-lab]");
+ const correlation = root.querySelector("[data-correlation]");
+ correlation.value = "0";
+ correlation.dispatchEvent(new Event("input", { bubbles: true }));
+ const independent = {
+ coverage: root.querySelector("[data-metric-coverage]").textContent,
+ effective: root.querySelector("[data-effective]").textContent,
+ };
+ correlation.value = "95";
+ correlation.dispatchEvent(new Event("input", { bubbles: true }));
+ const correlated = {
+ coverage: root.querySelector("[data-metric-coverage]").textContent,
+ effective: root.querySelector("[data-effective]").textContent,
+ };
+ root.querySelector('[data-budget-preset="agent"]').click();
+ return {
+ independent,
+ correlated,
+ preset: root.querySelector("[data-budget-name]").textContent,
+ buys: root.querySelector("[data-budget-buys]").textContent,
+ metrics: root.querySelectorAll(".budget-metrics > article").length,
+ };
+})()`);
+
+const grpo = await evaluate(`(() => {
+ const root = document.querySelector("[data-reasoning-lab]");
+ root.querySelector('[data-lab-tab="grpo"]').click();
+ root.querySelector('[data-rollout-profile="all-right"]').click();
+ const allRight = {
+ signal: root.querySelector("[data-group-signal]").textContent,
+ note: root.querySelector("[data-group-note]").textContent,
+ };
+ root.querySelector('[data-rollout-profile="rare"]').click();
+ const ratio = root.querySelector("[data-ratio-window]");
+ ratio.value = "10";
+ ratio.dispatchEvent(new Event("input", { bubbles: true }));
+ return {
+ allRight,
+ rareSignal: root.querySelector("[data-group-signal]").textContent,
+ masks: root.querySelector("[data-mask-count]").textContent,
+ rows: root.querySelectorAll("[data-gradient-row]").length,
+ };
+})()`);
+
+const mopd = await evaluate(`(() => {
+ const root = document.querySelector("[data-reasoning-lab]");
+ root.querySelector('[data-lab-tab="mopd"]').click();
+ root.querySelector('[data-teacher="coding-max"]').click();
+ const distance = root.querySelector("[data-distance]");
+ const clip = root.querySelector("[data-clip]");
+ distance.value = "90";
+ clip.value = "10";
+ distance.dispatchEvent(new Event("input", { bubbles: true }));
+ clip.dispatchEvent(new Event("input", { bubbles: true }));
+ return {
+ teacher: root.querySelector("[data-teacher-name]").textContent,
+ warning: root.querySelector("[data-mopd-warning]").textContent,
+ clipped: root.querySelector("[data-mopd-clipped]").textContent,
+ density: [...root.querySelectorAll(".mopd-metrics > article b")].at(-1).textContent,
+ tokens: root.querySelectorAll("[data-mopd-token]").length,
+ };
+})()`);
+
+const layout = await evaluate(`(() => {
+ const nav = document.querySelector(".top-nav");
+ const meta = document.querySelector(".header-meta");
+ const viewport = document.documentElement.clientWidth;
+ const overflowers = [...document.querySelectorAll("*")]
+ .map((node) => {
+ const rect = node.getBoundingClientRect();
+ return {
+ tag: node.tagName,
+ className: typeof node.className === "string" ? node.className : "",
+ parentClass: typeof node.parentElement?.className === "string" ? node.parentElement.className : "",
+ text: (node.textContent ?? "").trim().replace(/\\s+/g, " ").slice(0, 70),
+ left: Number(rect.left.toFixed(1)),
+ right: Number(rect.right.toFixed(1)),
+ width: Number(rect.width.toFixed(1)),
+ scrollWidth: node.scrollWidth,
+ };
+ })
+ .filter((item) => item.right > viewport + 1 || item.left < -1)
+ .sort((a, b) => Math.max(b.right - viewport, -b.left) - Math.max(a.right - viewport, -a.left))
+ .slice(0, 12);
+ const scrollNodes = [...document.querySelectorAll("*")]
+ .map((node) => ({
+ tag: node.tagName,
+ className: typeof node.className === "string" ? node.className : "",
+ parentClass: typeof node.parentElement?.className === "string" ? node.parentElement.className : "",
+ delta: node.scrollWidth - node.clientWidth,
+ clientWidth: node.clientWidth,
+ scrollWidth: node.scrollWidth,
+ overflowX: getComputedStyle(node).overflowX,
+ }))
+ .filter((item) => item.delta > 1)
+ .sort((a, b) => b.delta - a.delta)
+ .slice(0, 12);
+ return {
+ documentOverflow: document.documentElement.scrollWidth - document.documentElement.clientWidth,
+ navGap: Number((meta.getBoundingClientRect().left - nav.getBoundingClientRect().right).toFixed(1)),
+ navLinks: document.querySelectorAll(".top-nav a").length,
+ articleSections: document.querySelectorAll(".article-section").length,
+ paperLinks: document.querySelectorAll(".paper-chain a").length,
+ overflowers,
+ };
+})()`);
+
+await evaluate(`(() => {
+ document.documentElement.style.scrollBehavior = "auto";
+ document.querySelector("[data-reasoning-lab]").scrollIntoView({ block: "start", behavior: "instant" });
+})()`);
+await pause(150);
+await screenshot("/tmp/llm-atlas-reasoning-lab-desktop.png");
+
+await command("Emulation.setDeviceMetricsOverride", {
+ width: 390,
+ height: 844,
+ deviceScaleFactor: 1,
+ mobile: true,
+});
+await navigate("/reasoning/");
+await screenshot("/tmp/llm-atlas-reasoning-mobile-closed.png");
+const mobile = await evaluate(`(() => {
+ const toggle = document.querySelector("#menu-toggle");
+ toggle.click();
+ const viewport = document.documentElement.clientWidth;
+ const overflowers = [...document.querySelectorAll("*")]
+ .map((node) => {
+ const rect = node.getBoundingClientRect();
+ return {
+ tag: node.tagName,
+ className: typeof node.className === "string" ? node.className : "",
+ parentClass: typeof node.parentElement?.className === "string" ? node.parentElement.className : "",
+ text: (node.textContent ?? "").trim().replace(/\\s+/g, " ").slice(0, 70),
+ left: Number(rect.left.toFixed(1)),
+ right: Number(rect.right.toFixed(1)),
+ width: Number(rect.width.toFixed(1)),
+ scrollWidth: node.scrollWidth,
+ };
+ })
+ .filter((item) => item.right > viewport + 1 || item.left < -1)
+ .sort((a, b) => Math.max(b.right - viewport, -b.left) - Math.max(a.right - viewport, -a.left))
+ .slice(0, 12);
+ const scrollNodes = [...document.querySelectorAll("*")]
+ .map((node) => ({
+ tag: node.tagName,
+ className: typeof node.className === "string" ? node.className : "",
+ parentClass: typeof node.parentElement?.className === "string" ? node.parentElement.className : "",
+ delta: node.scrollWidth - node.clientWidth,
+ clientWidth: node.clientWidth,
+ scrollWidth: node.scrollWidth,
+ overflowX: getComputedStyle(node).overflowX,
+ }))
+ .filter((item) => item.delta > 1)
+ .sort((a, b) => b.delta - a.delta)
+ .slice(0, 12);
+ return {
+ documentOverflow: document.documentElement.scrollWidth - document.documentElement.clientWidth,
+ menuVisible: getComputedStyle(toggle).display !== "none",
+ menuOpen: toggle.getAttribute("aria-expanded"),
+ title: document.querySelector("h1").innerText,
+ overflowers,
+ scrollNodes,
+ };
+})()`);
+await screenshot("/tmp/llm-atlas-reasoning-mobile.png");
+
+await command("Emulation.setDeviceMetricsOverride", {
+ width: 1440,
+ height: 1100,
+ deviceScaleFactor: 1,
+ mobile: false,
+});
+await navigate("/");
+await evaluate("scrollTo(0, 0)");
+const home = await evaluate(`({
+ documentOverflow: document.documentElement.scrollWidth - document.documentElement.clientWidth,
+ releaseCards: document.querySelectorAll(".release-card").length,
+ firstRelease: document.querySelector(".release-card h2").textContent,
+ navLinks: document.querySelectorAll(".top-nav a").length,
+})`);
+await evaluate(`document.querySelector("#new-chapters").scrollIntoView({ block: "start", behavior: "instant" })`);
+await pause(100);
+await screenshot("/tmp/llm-atlas-home-reasoning-release.png");
+
+const report = { budget, grpo, mopd, layout, mobile, home, exceptions };
+console.log(JSON.stringify(report, null, 2));
+
+const numeric = (value) => Number.parseFloat(value);
+const failures = [];
+if (numeric(budget.independent.coverage) <= numeric(budget.correlated.coverage)) {
+ failures.push("候选相关性没有降低 coverage");
+}
+if (numeric(budget.independent.effective) <= numeric(budget.correlated.effective)) {
+ failures.push("候选相关性没有降低有效独立样本");
+}
+if (!budget.preset.includes("TOOL AGENT") || !budget.buys.includes("新观察")) failures.push("Tool Agent 预设未生效");
+if (budget.metrics !== 4) failures.push(`预算指标数量异常:${budget.metrics}`);
+if (!grpo.allRight.signal.includes("零") || !grpo.allRight.note.includes("Dynamic Sampling")) {
+ failures.push("全对组零优势解释缺失");
+}
+if (grpo.rows !== 8 || numeric(grpo.masks) < 1) failures.push("GRPO 行数或 K2.5 mask 异常");
+if (!mopd.teacher.includes("CODING · MAX") || !mopd.warning.includes("高风险")) failures.push("MOPD 远教师预设未生效");
+if (mopd.tokens !== 12 || mopd.density.trim() !== "12 / 12") failures.push("MOPD 稠密 token 信号异常");
+if (layout.articleSections !== 15 || layout.paperLinks !== 30) failures.push("章节或论文链数量异常");
+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 !== 3 || !home.firstRelease.includes("多想一会儿")) failures.push("首页推理新章入口异常");
+if (exceptions.length) failures.push(`浏览器脚本异常:${exceptions.join("; ")}`);
+
+socket.close();
+if (failures.length) {
+ failures.forEach((failure) => console.error(`- ${failure}`));
+ process.exit(1);
+}
diff --git a/src/components/ReasoningLab.astro b/src/components/ReasoningLab.astro
new file mode 100644
index 0000000..9aaa028
--- /dev/null
+++ b/src/components/ReasoningLab.astro
@@ -0,0 +1,974 @@
+---
+const budgetPresets = [
+ { id: "direct", label: "Direct", serial: 0.15, parallel: 1, verifier: 0, search: 0, tool: 0 },
+ { id: "cot", label: "Long CoT", serial: 0.82, parallel: 1, verifier: 0, search: 0, tool: 0 },
+ { id: "sc", label: "Self-Consistency", serial: 0.22, parallel: 12, verifier: 0.45, search: 0, tool: 0 },
+ { id: "bon", label: "Best-of-N", serial: 0.18, parallel: 16, verifier: 0.82, search: 0, tool: 0 },
+ { id: "search", label: "PRM Search", serial: 0.28, parallel: 8, verifier: 0.9, search: 0.62, tool: 0 },
+ { id: "agent", label: "Tool Agent", serial: 0.38, parallel: 4, verifier: 0.76, search: 0.2, tool: 0.68 },
+ { id: "k3max", label: "K3 · MAX", serial: 0.7, parallel: 6, verifier: 0.84, search: 0.35, tool: 0.52 },
+];
+
+const rolloutProfiles = [
+ {
+ id: "mixed",
+ label: "5 对 / 3 错",
+ rewards: [1, 0, 1, 1, 0, 1, 0, 1],
+ lengths: [640, 2860, 980, 1740, 4280, 1220, 3560, 760],
+ ratios: [1.02, 0.89, 1.11, 1.04, 1.36, 0.96, 0.72, 1.08],
+ },
+ {
+ id: "all-right",
+ label: "全对组",
+ rewards: [1, 1, 1, 1, 1, 1, 1, 1],
+ lengths: [620, 880, 1340, 1760, 2110, 2640, 3180, 4020],
+ ratios: [1.02, 1.06, 0.96, 1.12, 0.91, 1.2, 0.84, 1.28],
+ },
+ {
+ id: "rare",
+ label: "1 对 / 7 错",
+ rewards: [0, 0, 0, 1, 0, 0, 0, 0],
+ lengths: [760, 1260, 2060, 3480, 4420, 2860, 5180, 1640],
+ ratios: [0.94, 1.08, 0.82, 1.14, 1.42, 0.7, 1.52, 0.88],
+ },
+];
+
+const mopdDomains = [
+ ["general-low", "GENERAL", "LOW"],
+ ["general-high", "GENERAL", "HIGH"],
+ ["general-max", "GENERAL", "MAX"],
+ ["agent-low", "AGENT", "LOW"],
+ ["agent-high", "AGENT", "HIGH"],
+ ["agent-max", "AGENT", "MAX"],
+ ["coding-low", "CODING", "LOW"],
+ ["coding-high", "CODING", "HIGH"],
+ ["coding-max", "CODING", "MAX"],
+];
+
+const tokenLabels = ["先", "拆", "约束", ",", "再", "验证", "关键", "步骤", ",", "最后", "调用", "工具"];
+---
+
+
+
+
+
+
+
+
+
+
+
+
+
+
TEST-TIME COMPUTE
+
固定总 Token,不同策略买到的不是同一种计算
+
+
+ 串行深度增加单条轨迹可做的工作;并行宽度增加覆盖;verifier 负责选择;工具改变模型能看到的信息。
+ 把四者只写成 “thinking tokens” 会掩盖真正瓶颈。
+
+
+
+
+ {budgetPresets.map((preset) => (
+
+ ))}
+
+
+
+
+
+
+
+
+
+
+
+
BUDGET ALLOCATIONSELF-CONSISTENCY
+
+ 串行
+ 并行
+ 搜索
+ 工具
+
+
+
单轨长度7.0K
+
并行候选9
+
有效独立样本4.6
+
关键路径14.1s
+
+
+ {Array.from({ length: 16 }, (_, index) => (
+
+ ))}
+
+
+
+
+
+
SINGLE TRAJECTORY47.2%串行思考后的单条成功率
+
COVERAGE / PASS@K91.3%候选里至少出现一个正确解
+
MAJORITY@K42.8%不训练选择器的答案投票
+
VERIFIER SELECTED69.5%覆盖 × 选择可靠度的合成结果
+
+
+
+
现在主要买到覆盖,而不是更深的单条推理
+
+ 候选相关性会让 nominal N 高估真实探索宽度;继续加样本以前,先问它们是否只是重复同一种错误。
+
+
+
+
+
+
+
+
POLICY OPTIMIZATION
+
同一组 rollout,四种聚合方法会把力用在不同地方
+
+
+ 每行是一条同题回答。条形图不是完整训练梯度,而是把 reward、长度归一化和 ratio mask
+ 压缩成可比较的教学权重,专门暴露“为什么实现细节会改变训练行为”。
+
+
+
+
+
+
+
+ ROLLOUTREWARDLENGTHGRPODAPODr.GRPOK2.5 MASK
+
+ {Array.from({ length: 8 }, (_, index) => (
+
+ y{index + 1}ratio 1.00
+ 1
+ 640
+ +0.00
+ +0.00
+ +0.00
+ KEEP
+
+ ))}
+
+
+
+
+ GROUP SIGNAL
+ 有相对奖励
+ 同题组里既有对也有错,组均值 baseline 能产生正负 advantage。
+
+
+ LENGTH EFFECT
+ GRPO 偏向短正确
+ 回答内 token 平均会改变长短样本的总贡献;DAPO 与 Dr.GRPO 选择不同的聚合口径。
+
+
+ OFF-POLICY TOKENS
+ 2 / 8 被屏蔽
+ K2.5 只看 token ratio 是否越界;这里不模拟标准 PPO 的 advantage-aware clipping。
+
+
+
+
+
+
+
+
+
+
K3 / MULTI-TEACHER ON-POLICY DISTILLATION
+
不是把九个模型参数平均,而是让学生在自己的路上逐 Token 问老师
+
+
+ 先选 prompt 的领域和 reasoning effort;student 生成当前轨迹,再由对应冻结 teacher 对相同前缀打分。
+ 这与跨迭代 partial rollout 的 off-policy RL 是两套不同机制。
+
+
+
+
+
+
DOMAIN ↓ / EFFORT →LOWHIGHMAX
+
GENERAL
+
AGENT
+
CODING
+ {mopdDomains.map(([id, domain, effort]) => (
+
+ ))}
+
+
+
+
+
ROUTED TEACHER
+
AGENT · HIGH
+
长程助手、deep research 与段落写作教师;在 high effort 下兼顾探索与预算。
+
+
+
+
+
+
+
+
STUDENT ROLLOUT → TEACHER PREFILLDENSE TOKEN SIGNAL
+
+ {tokenLabels.map((token, index) => (
+
+ {token}
+ S .42
+ T .61
+ +0.37
+
+ ))}
+
+
student probabilityteacher probability = clip(log T − log S)
+
+
+
+
MEAN REVERSE-KL PROXY0.081越远不代表越好,分布错配会增加训练压力
+
CLIPPED TOKENS0 / 12超出 ±Amax 的 token 不再继续放大 advantage
+
ENTROPY PROXY0.79远分布教师可能让 student 向少数模式收缩
+
SIGNAL DENSITY12 / 12不同于只在轨迹结束时给一个 outcome reward
+
+
+
+
01Student samples当前学生在自己的推理分布上生成。
+
→
+
02Prompt routes按领域与 effort 选择 9 个教师之一。
+
→
+
03Teacher prefills教师读取学生前缀,返回逐 token 概率。
+
→
+
04Student updatesclipped log-prob 差进入 policy-gradient。
+
+
+
+
稳定性提示同源教师分布接近,信号强且仍可控
+
+ 独立 MOPD 论文发现,绝对能力更强但分布更远的外部教师不一定更好;这里用距离滑杆显示这种风险,不把它当作真实训练预测器。
+
+
+
+
+
+
+
+
+
+
diff --git a/src/components/SiteFooter.astro b/src/components/SiteFooter.astro
index 92c2ccc..4873f2b 100644
--- a/src/components/SiteFooter.astro
+++ b/src/components/SiteFooter.astro
@@ -7,6 +7,7 @@
学习地图
MoE 专题
长上下文专题
+ 推理专题
研究进度
开放源码
K3 官方报告
diff --git a/src/components/SiteHeader.astro b/src/components/SiteHeader.astro
index 956d88b..cf12692 100644
--- a/src/components/SiteHeader.astro
+++ b/src/components/SiteHeader.astro
@@ -12,6 +12,7 @@ const items = [
{ id: "foundations", href: "/foundations/", label: "基础原理" },
{ id: "moe", href: "/moe/", label: "MoE" },
{ id: "long-context", href: "/long-context/", label: "长上下文" },
+ { id: "reasoning", href: "/reasoning/", label: "推理" },
{ id: "papers", href: "/papers/", label: "论文库" },
{ id: "progress", href: "/progress/", label: "进度" },
];
diff --git a/src/data/chapters.ts b/src/data/chapters.ts
index 4388540..21be1f9 100644
--- a/src/data/chapters.ts
+++ b/src/data/chapters.ts
@@ -165,9 +165,9 @@ export const chapters: Chapter[] = [
kicker: "REASONING",
question: "模型如何学会多想一会儿,并检查自己的答案?",
summary: "从 CoT、搜索与验证器,到 GRPO、DeepSeek-R1、Kimi k1.5 和 multi-effort RL。",
- status: "researching",
- progress: 25,
- papers: 21,
+ status: "published",
+ progress: 76,
+ papers: 30,
prerequisites: ["10"],
highlights: ["GRPO", "R1-Zero", "On-policy 蒸馏"],
},
diff --git a/src/data/papers.ts b/src/data/papers.ts
index 57ea561..6f57d9d 100644
--- a/src/data/papers.ts
+++ b/src/data/papers.ts
@@ -760,6 +760,30 @@ export const papers: Paper[] = [
contribution: "用中间推理示例显著提升大模型复杂任务表现。",
verified: true,
},
+ {
+ year: 2022,
+ title: "Large Language Models are Zero-Shot Reasoners",
+ url: "https://arxiv.org/abs/2205.11916",
+ topics: ["推理"],
+ contribution: "用统一的 step-by-step 触发语句,在不提供 few-shot rationale 时激发多任务零样本 CoT。",
+ verified: true,
+ },
+ {
+ year: 2022,
+ title: "Solving Quantitative Reasoning Problems with Language Models",
+ url: "https://arxiv.org/abs/2206.14858",
+ topics: ["推理", "Scaling"],
+ contribution: "Minerva 以技术内容继续训练语言模型,系统推进数学与科学定量推理。",
+ verified: true,
+ },
+ {
+ year: 2021,
+ title: "Training Verifiers to Solve Math Word Problems",
+ url: "https://arxiv.org/abs/2110.14168",
+ topics: ["推理", "后训练"],
+ contribution: "建立 GSM8K,并系统展示多采样后由学习式 verifier 选择答案的收益。",
+ verified: true,
+ },
{
year: 2022,
title: "Self-Consistency Improves Chain of Thought Reasoning in Language Models",
@@ -768,6 +792,14 @@ export const papers: Paper[] = [
contribution: "采样多条推理路径并对最终答案聚合。",
verified: true,
},
+ {
+ year: 2022,
+ title: "Least-to-Most Prompting Enables Complex Reasoning in Large Language Models",
+ url: "https://arxiv.org/abs/2205.10625",
+ topics: ["推理"],
+ contribution: "先把难题分解成子问题,再按顺序利用已解结果组合答案。",
+ verified: true,
+ },
{
year: 2022,
title: "STaR: Bootstrapping Reasoning With Reasoning",
@@ -776,6 +808,30 @@ export const papers: Paper[] = [
contribution: "迭代生成、筛选并训练成功 rationale。",
verified: true,
},
+ {
+ year: 2022,
+ title: "Solving Math Word Problems With Process- and Outcome-Based Feedback",
+ url: "https://arxiv.org/abs/2211.14275",
+ topics: ["推理", "后训练"],
+ contribution: "在 GSM8K 中比较过程与结果反馈,揭示最终正确率和推理轨迹错误率的不同需求。",
+ verified: true,
+ },
+ {
+ year: 2022,
+ title: "Program of Thoughts Prompting: Disentangling Computation from Reasoning for Numerical Reasoning Tasks",
+ url: "https://arxiv.org/abs/2211.12588",
+ topics: ["推理", "Agent"],
+ contribution: "让模型用程序表达推理,把数值计算交给外部执行器。",
+ verified: true,
+ },
+ {
+ year: 2023,
+ title: "Self-Refine: Iterative Refinement with Self-Feedback",
+ url: "https://arxiv.org/abs/2303.17651",
+ topics: ["推理"],
+ contribution: "由同一模型循环生成、反馈与修订,在不追加训练的情况下扩展串行测试时计算。",
+ verified: true,
+ },
{
year: 2023,
title: "Tree of Thoughts: Deliberate Problem Solving with Large Language Models",
@@ -784,12 +840,20 @@ export const papers: Paper[] = [
contribution: "显式搜索多个 thought 分支并评估中间状态。",
verified: true,
},
+ {
+ year: 2023,
+ title: "Language Models Don't Always Say What They Think: Unfaithful Explanations in Chain-of-Thought Prompting",
+ url: "https://arxiv.org/abs/2305.04388",
+ topics: ["推理", "评测"],
+ contribution: "用偏置提示实验表明,流畅的公开 CoT 可能合理化答案而不忠实披露影响因素。",
+ verified: true,
+ },
{
year: 2023,
title: "Let's Verify Step by Step",
url: "https://arxiv.org/abs/2305.20050",
topics: ["推理", "后训练"],
- contribution: "过程奖励模型在数学推理中优于只看最终答案。",
+ contribution: "发布 PRM800K;在 500 题 MATH 子集的 best-of-1860 选择中验证过程监督优势。",
verified: true,
},
{
@@ -809,12 +873,36 @@ export const papers: Paper[] = [
spotlight: "DeepSeek",
verified: true,
},
+ {
+ year: 2024,
+ title: "Scaling LLM Test-Time Compute Optimally can be More Effective than Scaling Model Parameters",
+ url: "https://arxiv.org/abs/2408.03314",
+ topics: ["推理", "Scaling"],
+ contribution: "按模型与题目难度在修订、并行采样和 PRM 搜索之间分配测试时计算。",
+ verified: true,
+ },
+ {
+ year: 2024,
+ title: "Tülu 3: Pushing Frontiers in Open Language Model Post-Training",
+ url: "https://arxiv.org/abs/2411.15124",
+ topics: ["后训练", "推理"],
+ contribution: "开放从数据策展、SFT、偏好学习到 RLVR 的完整 post-training 配方。",
+ verified: true,
+ },
+ {
+ year: 2024,
+ title: "OpenAI o1 System Card",
+ url: "https://arxiv.org/abs/2412.16720",
+ topics: ["推理", "评测"],
+ contribution: "记录 reasoning model 的能力、安全评测与测试时推理边界。",
+ verified: true,
+ },
{
year: 2025,
title: "DeepSeek-R1: Incentivizing Reasoning Capability in LLMs via Reinforcement Learning",
url: "https://arxiv.org/abs/2501.12948",
topics: ["推理", "后训练"],
- contribution: "R1-Zero 纯 RL 涌现推理;R1 加冷启动、多阶段训练与蒸馏。",
+ contribution: "R1-Zero 从 base 直接做规则奖励 RL;R1 再加入冷启动、SFT、多阶段 RL 与蒸馏。",
spotlight: "DeepSeek",
verified: true,
},
@@ -823,10 +911,50 @@ export const papers: Paper[] = [
title: "Kimi k1.5: Scaling Reinforcement Learning with LLMs",
url: "https://arxiv.org/abs/2501.12599",
topics: ["推理", "后训练"],
- contribution: "扩展长 CoT 强化学习和测试时计算。",
+ contribution: "用 128K RL context、partial rollout 与 long2short 扩展长 CoT 和测试时计算。",
spotlight: "Kimi",
verified: true,
},
+ {
+ year: 2025,
+ title: "s1: Simple test-time scaling",
+ url: "https://arxiv.org/abs/2501.19393",
+ topics: ["推理", "后训练"],
+ contribution: "从强教师精选 1K 道推理题蒸馏,并用 budget forcing 控制思考长度。",
+ verified: true,
+ },
+ {
+ year: 2025,
+ title: "DAPO: An Open-Source LLM Reinforcement Learning System at Scale",
+ url: "https://arxiv.org/abs/2503.14476",
+ topics: ["推理", "后训练"],
+ contribution: "用 Clip-Higher、Dynamic Sampling、token-level loss 与 overlong shaping 稳定长 CoT RL。",
+ verified: true,
+ },
+ {
+ year: 2025,
+ title: "Understanding R1-Zero-Like Training: A Critical Perspective",
+ url: "https://arxiv.org/abs/2503.20783",
+ topics: ["推理", "后训练"],
+ contribution: "提出 Dr.GRPO,分析 response-length 与 question-difficulty 两种优化偏置。",
+ verified: true,
+ },
+ {
+ year: 2025,
+ title: "Does Reinforcement Learning Really Incentivize Reasoning Capacity in LLMs Beyond the Base Model?",
+ url: "https://arxiv.org/abs/2504.13837",
+ topics: ["推理", "后训练", "评测"],
+ contribution: "用 pass@k 检查当前 RLVR 是扩展解法覆盖,还是主要重排已有正确路径。",
+ verified: true,
+ },
+ {
+ year: 2026,
+ title: "MOPD: Multi-Teacher On-Policy Distillation for Capability Integration in LLM Post-Training",
+ url: "https://arxiv.org/abs/2606.30406",
+ topics: ["推理", "后训练", "Agent"],
+ contribution: "让学生在自己的 rollout 上接收同源领域教师的稠密逐 Token 信号,整合多项 RL 能力。",
+ verified: true,
+ },
{
year: 2021,
title: "WebGPT: Browser-assisted Question-Answering with Human Feedback",
@@ -927,8 +1055,8 @@ export const papers: Paper[] = [
year: 2025,
title: "Kimi K2: Open Agentic Intelligence",
url: "https://arxiv.org/abs/2507.20534",
- topics: ["MoE", "Agent", "后训练"],
- contribution: "开放 1T MoE Agent 模型,强调工具调用数据合成与 joint RL。",
+ topics: ["MoE", "Agent", "后训练", "推理"],
+ contribution: "开放 1T MoE Agent 模型,以 verifiable gym 与 self-critique rubric 做 joint RL。",
spotlight: "Kimi",
verified: true,
},
diff --git a/src/pages/deepseek/index.astro b/src/pages/deepseek/index.astro
index 2837024..63881cc 100644
--- a/src/pages/deepseek/index.astro
+++ b/src/pages/deepseek/index.astro
@@ -313,6 +313,7 @@ const toc = [
增加推理计算可以转化为能力;不是“输出越长越聪明”。
+ 进入推理专题:从 DeepSeekMath、R1 到 DAPO / Dr.GRPO 的完整推导 →
diff --git a/src/pages/index.astro b/src/pages/index.astro
index af20342..ba24af2 100644
--- a/src/pages/index.astro
+++ b/src/pages/index.astro
@@ -9,6 +9,7 @@ const routes: Record = {
foundations: "/foundations/",
moe: "/moe/",
"long-context": "/long-context/",
+ reasoning: "/reasoning/",
};
const paths = [
@@ -78,6 +79,7 @@ const paths = [
DeepSeek 专题
MoE 专题
长上下文专题
+ 推理专题
@@ -101,6 +103,22 @@ const paths = [
+
+
+
NEW / CHAPTER 11 REASONING & TEST-TIME SCALING
+
“多想一会儿”,到底把计算花到了哪里?
+
+ 把推理拆成结果、覆盖、选择、过程、预算、优化、分布与系统八张账,
+ 从 CoT、verifier 与 GRPO 一路走到 DeepSeek-R1、Kimi k1.5 与 K3 MOPD。
+
+
+
+ - LINEAGE
- 2021 → 2026
+ - PAPERS
- 30 篇一手来源
+ - LAB
- 预算 · GRPO · 九教师
+
+ 进入推理专题 →
+
NEW / CHAPTER 06 SPARSE EXPERTS
@@ -366,6 +384,15 @@ const paths = [
transition: transform 180ms ease, border-color 180ms ease;
}
+ .reasoning-release {
+ grid-column: 1 / -1;
+ min-height: 510px;
+ background:
+ radial-gradient(circle at 82% 18%, rgba(56, 91, 128, 0.17), transparent 30%),
+ radial-gradient(circle at 63% 72%, rgba(150, 93, 58, 0.11), transparent 28%),
+ var(--paper-raised);
+ }
+
.release-card:hover {
transform: translateY(-3px);
border-color: var(--copper);
@@ -428,6 +455,10 @@ const paths = [
padding-bottom: 76px;
}
+ .reasoning-release {
+ grid-column: auto;
+ }
+
.release-card dl {
margin: 0;
}
diff --git a/src/pages/k3/index.astro b/src/pages/k3/index.astro
index 4d6d2ec..5b30b3b 100644
--- a/src/pages/k3/index.astro
+++ b/src/pages/k3/index.astro
@@ -378,6 +378,7 @@ const toc = [
On-policy distillation 让学生自己生成当前前缀,再在这个前缀上比较教师和学生对下一个 Token 的概率,
形成稠密 reward。这样训练分布更贴近学生真正会访问的状态,也能自然结合 partial rollout。
+
进入推理专题:并排理解 partial rollout、reasoning effort 与 MOPD →
部署约束直接进入后训练
diff --git a/src/pages/moe/index.astro b/src/pages/moe/index.astro
index 6727cb1..fa31435 100644
--- a/src/pages/moe/index.astro
+++ b/src/pages/moe/index.astro
@@ -683,7 +683,7 @@ const paperChain = [
diff --git a/src/pages/progress/index.astro b/src/pages/progress/index.astro
index 9c8d0dd..f87a16a 100644
--- a/src/pages/progress/index.astro
+++ b/src/pages/progress/index.astro
@@ -7,11 +7,12 @@ const published = chapters.filter((chapter) => chapter.status === "published").l
const researching = chapters.filter((chapter) => ["researching", "drafting"].includes(chapter.status)).length;
const workstreams = [
- { label: "研究框架与规范", value: 76, next: "给 130 篇索引补充逐篇精读层级" },
+ { label: "研究框架与规范", value: 82, next: "给推理专题补逐篇图表/实验精读层级" },
{ label: "网站设计系统", value: 89, next: "打印样式与更多通用可视化组件" },
- { label: "Kimi K3 深读", value: 55, next: "扩写 scaling / infra 逐图笔记" },
+ { label: "Kimi K3 深读", value: 64, next: "扩写 scaling / pre-training / infra 逐图笔记" },
{ label: "Transformer 基础", value: 52, next: "加入矩阵形状动画与手算练习" },
- { label: "DeepSeek 专题", value: 61, next: "GRPO 完整公式与训练轨迹推导" },
+ { label: "DeepSeek 专题", value: 71, next: "补 R1 / DAPO 的逐图训练轨迹与复现对照" },
+ { label: "推理与测试时扩展", value: 76, next: "真实模型采样曲线、PRM 案例与逐篇图表精读" },
{ label: "稀疏计算与 MoE", value: 74, next: "补充真实集群 traces 与专家特化案例" },
{ label: "长上下文专题", value: 72, next: "加入更多论文逐图笔记与真实模型配置对比" },
{ label: "引用与事实检查", value: 54, next: "自动化外链复查与来源等级扩展" },
@@ -38,7 +39,7 @@ const workstreams = [
OVERALL专题平均 {average}%
READABLE{published} 个首版可读专题
ACTIVE{researching} 个研究/写作中
-
UPDATED2026-07-28 23:24 CST
+
UPDATED2026-07-29 00:38 CST
MODE持续迭代,不锁死版本
@@ -48,7 +49,7 @@ const workstreams = [
01 WORKSTREAMS
-
九条工作流同时推进,但不混淆“有页面”和“已核验”
+
十条工作流同时推进,但不混淆“有页面”和“已核验”
内容首版优先打通全局脉络;随后每轮迭代选择一个专题推进到论文/工程层,并做独立事实复核。
@@ -85,11 +86,12 @@ const workstreams = [
✓K3 报告已结构化拆解
47 页报告目录、151 条参考来源和架构/后训练/系统主线已经提取。
✓16 专题知识图
从语言模型基础到评测安全,包含先修依赖和三条贯穿案例。
✓编辑式网站系统
响应式导航、章节模板、侧栏、进度、论文链和证据提示组件。
- ✓五张原创交互图
K3 三轴架构、Self-Attention Query、DeepSeek 谱系、长上下文成本与 MoE 路由实验室。
- ✓五篇首版长文
K3 导读、Transformer 基础、DeepSeek 谱系、长上下文与 MoE 专题。
+ ✓八个原创交互视图
K3、注意力、DeepSeek、长上下文、MoE,以及推理预算/GRPO/MOPD 三页签实验。
+ ✓六篇首版长文
K3 导读、Transformer 基础、DeepSeek 谱系、长上下文、MoE 与推理专题。
✓长上下文深度专题
五张成本账、26 篇一手论文、10+ 机制图与 8 策略交互实验室。
✓MoE 深度专题
六张账、19 篇一手论文、DeepSeek/K3 主线与路由—容量—通信交互实验室。
- ✓130 篇关键论文索引
覆盖 12 个专题,支持全文搜索、标签筛选与 Kimi/DeepSeek 聚光主线。
+ ✓推理深度专题
八张账、30 篇一手论文链、DeepSeek/Kimi 双主线与三页签互动实验室。
+ ✓146 篇关键论文索引
覆盖 12 个专题,支持全文搜索、标签筛选与 Kimi/DeepSeek 聚光主线。
✓公开仓库与自托管发布
源码公开到 git.k1412.top,网站由不可变镜像、Compose Manager 与 HTTPS 交付。
@@ -104,10 +106,10 @@ const workstreams = [
优先级专题本轮交付完成闸门
-
P0推理模型与测试时扩展CoT → verifier → GRPO → R1 → k1.5 → K3 MOPD
奖励/预算交互图
+
P0大规模训练系统ZeRO / Megatron → Expert/Context Parallel → DualPipe / MoonEP
显存与通信计算器
P1长上下文二轮深化真实模型配置 → 内核细节 → 长上下文评测与失败案例
配置比较器 + 逐图论文笔记
P1MoE 二轮深化真实负载 traces → 专家特化可解释性 → 共享专家语义
案例库 + 集群证据
-
P1大规模训练系统ZeRO/Megatron → Expert/Context Parallel → DualPipe/MoonEP
显存与通信计算器
+
P1推理二轮深化真实 pass@k 曲线 → PRM 失败案例 → 逐篇图表精读
案例库 + 真实 traces
P2原生多模态ViT/CLIP → connector VLM → Kimi-VL/MoonViT-V2
视觉 Token 流程图
@@ -147,6 +149,7 @@ const workstreams = [
优先原创重绘架构图做成可缩放 SVG/HTML,明确简化与来源。
双重开放许可代码 MIT,原创文字与图 CC BY-SA 4.0。
自托管交付源码公开到 git.k1412.top,网站部署到 k1412 私有基础设施。
+ 推理按八张账组织把答案、覆盖、选择、过程、预算、优化、分布与系统证据分开核算。
diff --git a/src/pages/reasoning/index.astro b/src/pages/reasoning/index.astro
new file mode 100644
index 0000000..4769393
--- /dev/null
+++ b/src/pages/reasoning/index.astro
@@ -0,0 +1,1067 @@
+---
+import BaseLayout from "@/layouts/BaseLayout.astro";
+import ReasoningLab from "@/components/ReasoningLab.astro";
+
+const toc = [
+ ["00", "map", "先拆成八张账"],
+ ["01", "cot", "CoT:把计算写成 Token"],
+ ["02", "modes", "并行、搜索与工具"],
+ ["03", "metrics", "四种正确率口径"],
+ ["04", "allocation", "测试时计算怎样分"],
+ ["05", "process", "过程监督与忠实性"],
+ ["06", "grpo", "PPO → GRPO"],
+ ["07", "deepseek", "DeepSeek 推理谱系"],
+ ["08", "capacity", "RL 是否扩大能力"],
+ ["09", "k15", "Kimi k1.5 与 long2short"],
+ ["10", "k2", "K2 / K2.5:一般与 Agent RL"],
+ ["11", "k3", "K3:effort、partial rollout、MOPD"],
+ ["12", "lab", "三合一互动实验室"],
+ ["13", "systems", "百万 Token 系统账"],
+ ["↳", "papers", "关键论文阅读链"],
+];
+
+const ledgers = [
+ ["L1 / OUTCOME", "结果", "第一条回答对了吗?", "pass@1、规则 verifier;最直观,却看不见候选覆盖与过程。"],
+ ["L2 / COVERAGE", "覆盖", "多采样后有解吗?", "pass@k;近似检查正确路径是否还在模型分布里。"],
+ ["L3 / SELECTION", "选择", "能把正确候选挑出吗?", "投票、ORM、PRM、规则执行;选择器不是免费 oracle。"],
+ ["L4 / PROCESS", "过程", "步骤有效、可查、忠实吗?", "“写得像推理”不保证它是答案形成的因果解释。"],
+ ["L5 / BUDGET", "预算", "计算花到哪里?", "单轨变长、多采样、树搜索和工具调用买到不同能力。"],
+ ["L6 / OPTIMIZATION", "优化", "哪种 rollout 得到多大梯度?", "PPO、GRPO、DAPO、Dr.GRPO、Kimi clipping 改的不是同一处。"],
+ ["L7 / DISTRIBUTION", "分布", "新增解法还是概率重排?", "pass@1 上升可能伴随大 k 覆盖不变甚至下降。"],
+ ["L8 / SYSTEM", "系统", "长轨迹如何真正跑起来?", "KV、沙箱、长尾、stale policy、teacher prefill 与吞吐共同定价。"],
+];
+
+const waves = [
+ {
+ year: "2021–22",
+ title: "让答案前先写步骤",
+ papers: "GSM8K · CoT · Self-Consistency · Least-to-Most",
+ gain: "把不可见的单步映射扩成可继续计算的 Token 序列,并用多路径投票增加覆盖。",
+ debt: "步骤可能冗长、错误或不忠实;多数投票不知道为什么某条更好。",
+ },
+ {
+ year: "2022–23",
+ title: "学习评价结果与步骤",
+ papers: "Process vs Outcome · PRM800K · Tree of Thoughts · ReAct",
+ gain: "ORM/PRM、显式搜索和外部行动把“产生候选”与“选择/验证”拆开。",
+ debt: "评分器偏差会被大规模 best-of-N 与搜索反复放大。",
+ },
+ {
+ year: "2024",
+ title: "把测试时计算当成独立 scaling 轴",
+ papers: "DeepSeekMath · Compute-Optimal TTS · Tülu 3 · o1",
+ gain: "GRPO 降低 critic 工程负担;研究开始按难度分配串行、并行与搜索预算。",
+ debt: "pass@1、pass@k 与选择器收益容易被一个“reasoning score”混为一谈。",
+ },
+ {
+ year: "2025",
+ title: "长 CoT 与规则奖励 RL",
+ papers: "k1.5 · R1-Zero/R1 · s1 · DAPO · Dr.GRPO",
+ gain: "128K rollout、partial rollout、budget forcing 与 RLVR 形成可扩展配方。",
+ debt: "长度增长、aha、分布锐化和真实能力增长之间仍需因果审计。",
+ },
+ {
+ year: "2025–26",
+ title: "从单轮数学走向 Agent 与多教师",
+ papers: "RLVR Capacity · K2 · K2.5 · MOPD · K3",
+ gain: "奖励扩到开放任务、多模态、软件环境与百万 Token trajectory,并整合多领域/多 effort 教师。",
+ debt: "异步环境制造极端 off-policy 数据,训练吞吐成为算法的一部分。",
+ },
+];
+
+const paperChain = [
+ ["2017", "Proximal Policy Optimization Algorithms", "https://arxiv.org/abs/1707.06347", "clipped on-policy policy optimization。"],
+ ["2021", "Training Verifiers to Solve Math Word Problems", "https://arxiv.org/abs/2110.14168", "GSM8K、采样与 verifier。"],
+ ["2022", "Chain-of-Thought Prompting", "https://arxiv.org/abs/2201.11903", "用显式中间步骤扩展串行计算。"],
+ ["2022", "Self-Consistency", "https://arxiv.org/abs/2203.11171", "多路径采样与答案投票。"],
+ ["2022", "STaR", "https://arxiv.org/abs/2203.14465", "迭代生成、筛选并训练成功 rationale。"],
+ ["2022", "Least-to-Most Prompting", "https://arxiv.org/abs/2205.10625", "先分解,再按子问题顺序求解。"],
+ ["2022", "Zero-Shot Reasoners", "https://arxiv.org/abs/2205.11916", "用统一 step-by-step 触发语句激发零样本 CoT。"],
+ ["2022", "Minerva", "https://arxiv.org/abs/2206.14858", "以技术内容继续训练数学与科学定量推理。"],
+ ["2022", "ReAct", "https://arxiv.org/abs/2210.03629", "reasoning、action、observation 交错。"],
+ ["2022", "Process- and Outcome-Based Feedback", "https://arxiv.org/abs/2211.14275", "结果正确率与轨迹错误率的不同监督需求。"],
+ ["2022", "Program of Thoughts", "https://arxiv.org/abs/2211.12588", "用程序表达推理,把计算交给外部执行器。"],
+ ["2023", "Self-Refine", "https://arxiv.org/abs/2303.17651", "同一模型循环反馈和修订初始输出。"],
+ ["2023", "Language Models Don't Always Say What They Think", "https://arxiv.org/abs/2305.04388", "公开 CoT 的忠实性反例。"],
+ ["2023", "Tree of Thoughts", "https://arxiv.org/abs/2305.10601", "thought 分支、评价与回溯。"],
+ ["2023", "Let's Verify Step by Step", "https://arxiv.org/abs/2305.20050", "PRM800K 与 best-of-N 过程选择。"],
+ ["2024", "DeepSeekMath", "https://arxiv.org/abs/2402.03300", "GRPO 与数学数据管线。"],
+ ["2024", "Quiet-STaR", "https://arxiv.org/abs/2403.09629", "在一般文本 Token 间学习内部 rationale。"],
+ ["2024", "Scaling LLM Test-Time Compute Optimally", "https://arxiv.org/abs/2408.03314", "按难度分配修订、并行与 PRM 搜索。"],
+ ["2024", "Tülu 3", "https://arxiv.org/abs/2411.15124", "开放 post-training 与 RLVR 配方。"],
+ ["2024", "OpenAI o1 System Card", "https://arxiv.org/abs/2412.16720", "推理模型的能力与安全评测边界。"],
+ ["2025", "Kimi k1.5", "https://arxiv.org/abs/2501.12599", "128K RL、partial rollout 与 long2short。"],
+ ["2025", "DeepSeek-R1", "https://arxiv.org/abs/2501.12948", "R1-Zero、cold start、多阶段 RL 与蒸馏。"],
+ ["2025", "s1", "https://arxiv.org/abs/2501.19393", "精选强教师轨迹与 budget forcing。"],
+ ["2025", "DAPO", "https://arxiv.org/abs/2503.14476", "长 CoT RL 的四个实际修正。"],
+ ["2025", "Dr.GRPO", "https://arxiv.org/abs/2503.20783", "长度与题目难度归一化偏置。"],
+ ["2025", "RLVR Capacity Limits", "https://arxiv.org/abs/2504.13837", "用大 k 覆盖审计能力边界。"],
+ ["2025", "Kimi K2", "https://arxiv.org/abs/2507.20534", "verifiable gym 与 self-critique rubric RL。"],
+ ["2026", "Kimi K2.5", "https://arxiv.org/abs/2602.02276", "token clipping、Toggle 与统一 Agentic RL。"],
+ ["2026", "MOPD", "https://arxiv.org/abs/2606.30406", "同源多教师的 student on-policy 蒸馏。"],
+ ["2026", "Kimi K3", "https://arxiv.org/abs/2607.24653", "reasoning effort、partial rollout、MOPD 与 AgentENV。"],
+];
+---
+
+
+
+
+
+
REASONING / 11 TEST-TIME SCALING
+
“多想一会儿”,
到底把计算花到了哪里?
+
+ 推理不是一条越长越好的隐藏文字。它是一套候选生成、预算分配、过程验证、答案选择与环境交互系统;
+ 后训练要改变这套系统的分布,工程基础设施则决定百万 Token 轨迹能否真正跑起来。
+
+
+
+ - LEDGERS
- 8 张独立账
+ - CORE SOURCES
- 30 篇一手论文
+ - LINEAGE
- 2021 → 2026
+ - LAB
- 3 个联动实验
+ - SPOTLIGHT
- DeepSeek × Kimi
+
+
+
+
+
+
+
+
+
+ 00 EIGHT LEDGERS
+ 不要先问“模型会不会推理”,先看它在哪张账上变强
+
+ 一个系统可以第一次就答对,也可以第一次经常错、但采样 100 次总能出现正确解;还可能候选池里早已有正确答案,
+ 只是 verifier 选不出来。把它们压成一个准确率,会把训练收益、搜索收益和评测收益混在一起。
+
+
+
+ {ledgers.map(([code, title, question, answer]) => (
+
+ {code}
+ {title}
+ {question}
+ {answer}
+
+ ))}
+
+
+
+
像考试,但学生可以多写草稿、找同学、请阅卷员、查资料
+
+ 单条长 CoT 是自己多写草稿;self-consistency 是找多个“平行的自己”独立作答;
+ PRM 搜索是每写几步就让阅卷员判断往哪条路继续;工具 Agent 则真的去查资料或运行代码。
+ 四种方法都消耗“测试时计算”,但不会带来同一种能力。
+
+
+
+
+ {waves.map((wave, index) => (
+
+ {String(index + 1).padStart(2, "0")}
+
+
+ {wave.title}
+ {wave.papers}
+ {wave.gain}
+ 留下的债:{wave.debt}
+
+
+ ))}
+
+
+
+
+ 01 SERIAL COMPUTE
+ CoT 的第一层意义:把一次前向变成可继续展开的计算序列
+
+ Chain-of-Thought Prompting
+ 在 few-shot 示例里加入中间推理,使足够大的模型在算术、常识与符号任务上显著提升。
+ 它没有为 Transformer 添加新模块,而是改变了模型在答案之前生成哪些 Token。
+
+
+
+
+
DIRECT
+
问题 x
→答案 y
+
一次短映射;如果内部一步跨不过去,就没有后续计算位置。
+
+
+
CHAIN OF THOUGHT
+
问题 x
→
+
分解计算检查修正
+
→答案 y
+
每个已生成 Token 成为后续 Token 的上下文,相当于增加串行测试时计算。
+
+
+
+ “写更多 Token”为什么可能有用
+
+
DECOMPOSE把组合问题切小Least-to-Most 先生成子问题,再让后续答案看到已解决部分。
+
EXTERNAL MEMORY把中间量留在上下文模型不必在一次隐藏状态变化里同时记住所有约束。
+
RECOVERY给后续修订留下位置一条轨迹可以先犯局部错误,再通过检查恢复;这也是 k1.5 不依赖逐步 value 的直觉之一。
+
+
+
+
Token 数是计算代理,不是推理质量
+
+ 长回答也可能重复、合理化错误或利用长度偏好的 reward model。训练若只奖励“看起来像长思考”,
+ 会把 verbosity 当作能力。后续的预算控制、过程监督和 faithfulness 检查就是在补这笔债。
+
+
+
+
+
+ 02 FOUR MODES
+ 串行深度、并行宽度、搜索和工具,解决的是四种不同瓶颈
+
+
+
+ 01 / SERIAL单轨继续想
+ {Array.from({ length: 8 }, (_, index) => {index + 1})}
+ 适合可在同一前缀上检查与修订的问题;关键路径延迟随长度增加。
+ 例:long CoT、reflection、reasoning effort
+
+
+ 02 / PARALLEL多轨独立采样
+ {Array.from({ length: 6 }, () => )}
+ 增加答案覆盖,可横向并发;高度相关的样本会迅速失去边际收益。
+ 例:self-consistency、pass@k
+
+
+ 03 / SEARCH分支、评分、回溯
+
+ 把预算集中到 verifier 看好的中间状态;评分偏差也会被反复放大。
+ 例:Tree of Thoughts、PRM search
+
+
+ 04 / TOOLS改变可见信息集
+ LLM↔ENV↔OBS
+ 搜索、代码与软件环境可提供模型参数里没有的新证据;成本包括外部延迟与失败恢复。
+ 例:ReAct、coding agent、deep research
+
+
+
+ Self-Consistency:不判断哪条推理漂亮,只统计答案汇聚
+
+ Self-Consistency 从同一问题采样多条 CoT,
+ 把最终答案归一化后多数投票。它利用“正确路径可能不同、正确答案却相同”的结构;
+ 如果模型重复同一种系统性错误,投票反而会让错误更自信。
+
+
+
+
x
+
+ 路径 A42
+ 路径 B37
+ 路径 C42
+ 路径 D42
+ 路径 E51
+
+
MAJORITY42 · 3/5
+
+
+
+
+ 03 METRIC HYGIENE
+ 同一候选池,可以产生四个看似矛盾但都正确的分数
+
+
+
8 SAMPLES✓××✓×✓××
+
+
PASS@13 / 8 的采样概率随机抽一个答案时成功;正式报告常用多样本无偏估计降低方差。
+
PASS@8这组里至少有一个 ✓检查覆盖,不解决“实际该选谁”。
+
MAJORITY@8按最终答案频次投票是否成功取决于正确答案是否形成最大簇,而不只是正确样本个数。
+
BEST-OF-8Verifier 选最高分最终结果同时依赖候选覆盖和评分排序质量。
+
+
+
+
+
+
+
采样配置temperature、top-p 与 max tokens 会共同改变 pass@k 曲线。
+
答案解析数学等价式、代码测试和自由文本 judge 的错误口径不同。
+
提示模板base 与 RL 模型若使用不同 chat template,比较可能先测到格式适配。
+
工具与选择有工具/PRM 的系统分数不能当作裸模型单次生成能力。
+
+
+
+
+ 04 COMPUTE-OPTIMAL ALLOCATION
+ 最优测试时策略依赖“哪台模型遇到哪种难度”
+
+ Snell 等人把测试时扩展拆成 proposal distribution
+ 与 verifier 两条轴,在专门训练的 PaLM 2 模型和 MATH 上研究修订与 PRM 搜索。
+ 论文的关键贡献不是一个永远最优的算法,而是“先估难度,再分预算”的框架。
+
+
+
+
MODEL-SPECIFIC DIFFICULTY →
+
EASY短答或少量修订基础成功率已经高,大规模并行采样浪费预算。
+
INTERMEDIATE并行 + verifier正确路径仍在分布里,扩覆盖并选择最有价值。
+
HARD搜索或换更强模型当前 proposal 几乎不覆盖正确解时,继续采样同分布收益很小。
+
+
+
+
论文范围内的结果
+
+ compute-optimal 策略在其实验中可用约 4× 更少计算超过 best-of-N;在部分 FLOPs 匹配条件下,
+ 较小模型可超过约 14× 大的模型。但最难题常更需要 pretraining,而不是继续堆当前 test-time compute。
+ 难度估计本身还用了每题 2,048 个样本,不能当作零成本 oracle。
+
+
+
+
+
+ 05 PROCESS ≠ EXPLANATION
+ 过程监督问“每一步好不好”,忠实性问“这真是答案形成的原因吗”
+
+
+
+
OUTCOME REWARD
+
????✓
+
轨迹结束才给分;便宜、客观,但早期错误的信用分配很粗。
+
+
+
PROCESS REWARD
+
✓✓×××
+
每一步标注/预测质量;信号密,但标注贵且局部评分不等于全局可恢复性。
+
+
+
+ PRM800K 的 78.2% 必须带完整分母
+
+ Let’s Verify Step by Step 发布约 800K 个 step labels,
+ 来自约 75K 条解答和 12K 道题。其 headline 是内部 GPT-4-base 生成器配 process-supervised reward model,
+ 在一个代表性 500 题 MATH 子集上做 best-of-1860,解决 78.2%。
+ 它研究的是 reward-model reliability 与大规模候选选择,不是生成器 pass@1,更不是“PRM 单次解出 78.2% MATH”。
+
+
+
+
真实影响偏置提示
+
影响答案
+
公开 CoT看似合理的另一套解释
+
导向
+
答案A
+
+
+
+ Turpin 等人在偏置提示实验中观察到最高 36.3%
+ 的准确率下降;人工检查的 426 条解释里只有 1 条明确提到偏置。73% 的抽样不忠实解释支持偏置一致答案,
+ 15% 甚至没有明显推理错误。这是一个必要的失败测试,不是“所有 CoT 都不可信”的证明。
+
+
+
+
+ 06 PPO → GRPO
+ GRPO 不只是“删掉 critic”,它重写了 baseline、归一化与 Token 聚合
+
+
+
+
PPO / RLHF STACK
+
ActorReferenceRewardCritic
+
critic 估计 value/advantage,clipped surrogate 限制策略更新;LLM 管线还要协调 reference 与 reward model。
+
+
+
DEEPSEEKMATH GRPO
+
同题 q{Array.from({ length: 8 }, (_, index) => y{index + 1})}
+
同题生成一组回答,用组内奖励均值作 baseline、标准差归一化,不训练独立 critic。
+
+
+
+
+
+ DeepSeekMath 已经给出一个非常克制的能力结论
+
+ 论文报告 DeepSeekMath-Instruct 在 MATH 为 46.8,RL 后为 51.7,64 样本 self-consistency 为 60.9;
+ 但 Figure 7 中 RL 改善 Maj@K、没有改善 Pass@K。作者据此说结果更像让输出分布稳健、把正确回答从 Top-K
+ 推到前面,而非已经证明基础能力发生根本扩展。2025 年的 RLVR capacity 争论,其实在这里已经埋下伏笔。
+
+
+
+
DAPO / 01Clip-Higher给低概率 token 更大的上升空间,缓解 entropy collapse。
+
DAPO / 02Dynamic Sampling过滤全对/全错组,因为相对 advantage 为零。
+
DAPO / 03Token-level loss整批 Token 聚合,改变长短回答的梯度权重。
+
DAPO / 04Overlong shaping在上限附近平滑惩罚,减少硬截断噪声。
+
Dr.GRPO / A去 length normalization避免短正确与长错误获得不对称总梯度。
+
Dr.GRPO / B去 group std减少题目难度因标准差不同而被重加权。
+
+
+
+
+ 07 DEEPSEEK SPOTLIGHT
+ R1-Zero 证明规则奖励可以组织长推理;R1 则是完整多阶段产品配方
+
+
+
V3 BASE已有广泛预训练模式Dr.GRPO 后续发现 base 已出现部分 “aha/反思”表达。
+
→
+
R1-ZERO直接 GRPOaccuracy + format 规则奖励;无 reasoning SFT、无神经 ORM/PRM。
+
→
+
COLD START数千条高质量数据提升可读性,减少语言混合与不友好格式。
+
→
+
REASONING RL规则可验证任务继续扩大数学、代码与逻辑能力。
+
→
+
RS + SFT + RL统一一般能力拒绝采样、reasoning/non-reasoning SFT 与 broader rewards。
+
+
+
+
+
R1-Zero 真正支持的说法
+
+ - 从 DeepSeek-V3 Base 直接做规则奖励 RL,可以显著提高可验证推理表现。
+ - 训练中回答长度增长,并出现反思、验证与自我修正样式。
+ - 不依赖神经 reasoning reward model,可减少 reward hacking 与复杂管线的一类风险。
+
+
+
+
它没有单独证明的说法
+
+ - “aha” 字符串是能力从零涌现的因果标志。
+ - 只要延长回答,所有模型都会更会推理。
+ - 完整 R1 不需要 SFT、蒸馏、helpfulness/safety reward 或数据筛选。
+
+
+
+
+ 蒸馏小模型:老师先付过最贵的账
+
+ R1 的六个 1.5B–70B distilled models 使用约 800K 条由 R1 产生/筛选的数据做 SFT,
+ 报告中没有再对这些蒸馏模型做 RL。它说明强 reasoning traces 可以高效传给小模型,
+ 不说明 800K 个普通题目能让小模型凭空自举出同样能力。附录还指出:小模型上蒸馏更有效,
+ 但继续超过更强模型仍需要 RL 路线。
+
+
+
+
+ 08 CAPACITY OR SHARPENING?
+ 如果基础模型在第 200 个样本才解出来,RL 把它推到第 1 个,算不算学会了新能力?
+
+
+
+
BASE MODEL
+
+
+
+
正确模式概率低,但尾部覆盖宽
+
+
RLVR
+
+
RL MODEL
+
+
+
+
正确模式前移,但部分低概率模式收缩
+
+
+
+
+ RLVR capacity-limit 论文在数学、代码、视觉和多种模型/算法上观察:
+ RL 模型经常提升 pass@1,但基础模型在大 `k` 会追平或超过;训练继续时,train pass@1 可上升而 pass@256 下降。
+ 作者把这解释为当前 RLVR 主要把概率质量推向已存在的 rewarded paths,并可能缩小覆盖。
+
+
+
+
不是定理结论只覆盖论文测试的“当前 RLVR”,不能推广为强化学习永远不能创造能力。
+
有限代理pass@k 是有限采样下的 coverage proxy,不是模型能力空间的精确测量。
+
温度敏感base/RL 的 entropy 不同;相同温度与 entropy-matched 比较回答不同问题。
+
Agent 例外方向工具与环境会产生新观察,论文自己也把 Agentic RL 视为可能超越单轮限制的方向。
+
+
+
+
这个争论的实用答案:先说清你要“发现”还是“可靠输出”
+
+ 如果生产系统只有一次机会,把正确解从第 200 个推到第 1 个极其有价值;如果研究目标是扩大模型能产生的解法空间,
+ 就必须同时追踪大 k 覆盖、entropy、工具获取的新经验和强教师是否引入了新模式。
+
+
+
+
+
+ 09 KIMI k1.5
+ Kimi 把 RL context 本身扩到 128K,并让一条轨迹跨训练迭代活下去
+
+
+
POLICY π₀
+
λ fraction 完成 → 先更新,不等长尾
+
POLICY π₁
+
旧片段保留,未完成轨迹恢复
+
POLICY π₂
+
+
+
+ Kimi k1.5使用 128K RL context、partial rollout 与 replay buffer。
+ 长回答被分成跨迭代片段;旧片段可排除出当前 loss,只对当前可用部分做 on-policy 计算。
+ 论文采用 online mirror-descent 风格 surrogate、同题组均值 baseline,不训练 value network。
+
+
+
+
论文 headline
+
+ long-CoT 模型报告 AIME 77.5、MATH 500 96.2、Codeforces 94th percentile、MathVista 74.9。
+ 这些数值依赖论文的模型、prompt、采样与评测协议;128K 有效是其内部 scaling 实验和最终模型结论,不能外推为所有任务越长越好。
+
+
+
+ long2short 是四条方法,不是一句“把长思维蒸馏短”
+
+
MERGE权重平均合并长 CoT 与短模型,便宜但控制粗。
+
RS · n=8最短正确样本多采样后选最短正确回答做监督。
+
DPO短对 vs 长错最短正确为正;较长错误或超 1.5× 的正确回答为负。
+
RL强化长度惩罚降低最大 rollout,并在能力建立后优化长度—正确率前沿。
+
+
+ 报告中的 long2short RL 在 AIME 2024 的 8 次运行 pass@1 为 60.8,平均约 3,272 tokens。
+ 这说明“算得对且少写”可以成为显式训练目标,不说明压缩后永远保留全部长轨迹能力。
+
+
+
+
+ 10 KIMI K2 → K2.5
+ 从数学 verifier 走向开放任务 judge,再走向异步多模态 Agent RL
+
+
+
VERIFIABLE GYM数学 · 代码 · 指令 · Faithfulness规则、执行、LLM-as-judge 与 hack-check 产生可检查信号。
+
→
+
ON-POLICY ROLLOUT客观任务经验当前 actor 产生轨迹,verifier 判断结果。
+
→
+
CRITIC REFINEMENT持续校准 judge把可验证能力迁移到更主观的评价。
+
→
+
RUBRIC REWARD开放任务 pairwisecore、prescriptive 与人工 rubric 共同约束 self-critique。
+
+
+
+ K2延续 k1.5 的组相对奖励与 squared log-ratio 正则,
+ 同时加入任务预算、PTX loss 与 temperature decay。self-critique 不是“模型自言自语后给自己高分”,
+ 而是 critic 对候选做 pairwise rubric 比较;但开放任务 judge 仍可能偏爱长度、文风或可被利用的格式。
+
+
+ K2.5:token ratio 越界就屏蔽梯度,不等于标准 PPO clipping
+
+
α
+
MASKGRADIENT ACTIVEMASK
+
β
+
+
+ K2.5对每个 token 的新旧策略概率比率做 `[α, β]` 区间裁剪,
+ 并把它解释为对 log-ratio drift 的约束:
+ 区间内正常求 policy gradient,区间外梯度为零;它不依据 advantage 正负选择裁剪方向。
+ 论文把它用于缓解训练引擎—推理引擎差异在长程、多步工具任务中放大的 off-policy divergence。
+
+
+
+
PHASE 0预算受限只有同题平均准确率超过阈值,才按正确样本长度分位数限制预算。
+
⇄ every m iterations
+
PHASE 1标准扩展恢复最大输出,让模型继续学习如何有效利用更多 inference-time tokens。
+
+
+ 这套 Toggle 的目标是避免模型只学会“尽快结束”,却失去在困难问题上扩大计算的能力。
+ K2.5 的 Rollout Manager 还支持最多 100K concurrent agent tasks,把 text、vision 与 parallel-agent RL
+ 放到同一异步环境里。
+
+
+
+
+ 11 KIMI K3
+ 先训练 9 个领域/预算专家,再在学生自己的轨迹上合成一套统一策略
+
+
+
STAGE 1SFT FOUNDATION统一初始化与行为基础。
+
→
+
STAGE 23 DOMAINS × 3 EFFORTSgeneral、general agent、coding × low/high/max。
+
→
+
STAGE 3MOPD九位冻结教师在 student rollout 上给逐 Token 稠密信号。
+
+
+
+
DOMAIN / EFFORTLOWHIGHMAX
+
GENERAL经验 · 视觉推理 · 搜索知识工作
+
GENERAL AGENT长程助手Deep Research段落写作
+
CODINGSWEKernelWeb Dev
+
+
+ Reasoning effort 是训练出来的预算条件,不是推理时硬截断
+
+
+ Partial rollout RL 与 MOPD 必须并排,不能混成一句“on-policy RL”
+
+
+ PARTIAL ROLLOUT RL
+ 跨 policy 的未完成长轨迹
+
+ - `N×K` 条轨迹并发生成。
+ - `λNK` 条完成后先暂停 generation。
+ - 未完成轨迹后续恢复,可能横跨多个 policy 版本。
+ - per-token localized-neighborhood regularization 容忍极端 off-policy。
+
+
+
+ MULTI-TEACHER OPD
+ 当前 student 自己生成
+
+ - prompt 按 domain / effort 路由到 9 个教师之一。
+ - student 生成当前 on-policy trajectory。
+ - teacher 对相同前缀 prefill,返回每个 token 概率。
+ - clipped teacher–student log-prob 差作为稠密 advantage。
+
+
+
+
+
+
+
+
K3 在其设置中没有从 top-k 教师分布得到额外收益
+
+ MOPD 还可传输教师 top-k token 分布以降低方差;K3 报告称更细的 top-k distillation
+ 没有改善其收敛或最终表现。只能解释为同源教师、当前基础设施和配方下的结果,不能推广成 top-k 蒸馏普遍无用。
+
+
+
+
+
+ 12 INTERACTIVE LAB
+ 亲手改变预算、梯度和教师距离,观察三张账怎样分离
+
+ 先用预算页比较 Long CoT 与 Self-Consistency,再到 GRPO 页切换“全对组”,最后把 MOPD teacher–student
+ 距离推高。三个实验都用确定性公式,刷新后可复现;它们讲机制,不预测真实模型分数。
+
+
+
+
+
+ 13 MILLION-TOKEN AGENTIC RL
+ 长推理的最后一公里,是让 GPU、KV、工具环境和沙箱互不空等
+
+
+
GPUCo-located RL几百张 GPU 上交错 rollout 与 policy training。
+
⇄
+
CPU DRAMExternal KV pool暂停轨迹的 MLA KV / KDA state 写回外部内存。
+
⇄
+
NVMeTraining state训练/生成阶段之间卸载状态,释放设备显存。
+
⇄
+
FIRECRACKERAgentENV工具任务在可暂停、恢复、fork 的 microVM 中执行。
+
+
+
+
CHECKPOINT最低 133 msAgentENV incremental checkpoint 报告值。
+
RESUME最低 49 ms恢复已暂停沙箱的报告值。
+
OVERCOMMIT最高 6.5×真实工作负载的 memory overcommit 报告值。
+
SANDBOXES51,219,741K3 训练/评测累计创建,跨 1,505,678 images。
+
+
+
+ 当模型推理可占沙箱生命周期的 98% 时,暂停沙箱可以不占 CPU/内存;当环境运行时,GPU 又应服务别的 rollout。
+ K3 还根据 active/queued requests 与 KV utilization 自动节流,并把 reference / non-policy 权重从 CPU
+ 流入 policy 的 FP32 gradient buffers。这里的每项系统设计都在回收“长尾等待”。
+
+
+
+
+
+
+ ↳ PRIMARY-SOURCE READING CHAIN
+ 不要按模型榜单读,按“旧方法留下了哪堵墙”读
+
+ 下面 30 篇构成本专题首版主干。课程中的机制、公式与数字优先回到这些一手来源;
+ 更完整的 146 篇跨专题索引位于论文库。
+
+
+
+
+
+
NEXT CONNECTION
+
推理能力一旦进入工具环境,就自然过渡到 Agent
+
下一专题会继续追踪 ReAct、软件工程环境、deep research、沙箱奖励与长程可靠性。
+
+
+
+
+
+
+
+
+
diff --git a/src/styles/global.css b/src/styles/global.css
index e1e0140..b3bada9 100644
--- a/src/styles/global.css
+++ b/src/styles/global.css
@@ -128,7 +128,9 @@
.reading-progress {
position: fixed;
z-index: 100;
- inset: 0 0 auto;
+ inset: 0 auto auto 0;
+ width: 100vw;
+ max-width: 100%;
height: 3px;
overflow: hidden;
}