899 lines
38 KiB
Markdown
899 lines
38 KiB
Markdown
# 推理模型与测试时扩展研究账本
|
||
|
||
状态:原始论文核验中,正文尚未发布
|
||
研究截止: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_<t)
|
||
- log π_student(y_t | e, x, y_<t)
|
||
],
|
||
-R_max,
|
||
R_max
|
||
)
|
||
```
|
||
|
||
独立 MOPD 论文把它推导为 student-to-teacher reverse KL 的 policy-gradient 实现:
|
||
|
||
```text
|
||
A_MOPD,t =
|
||
stop_gradient[
|
||
log π_teacher(y_t | x, y_<t)
|
||
- log π_student(y_t | x, y_<t)
|
||
]
|
||
```
|
||
|
||
再做双边 advantage clipping。
|
||
|
||
关键区别:
|
||
|
||
| 机制 | 谁生成轨迹 | 为什么需要稳定化 | 信号密度 |
|
||
|---|---|---|---|
|
||
| K3 partial rollout RL | 跨多个旧/新 policy 的未完成任务 | 轨迹 stale、极端 off-policy | 通常 outcome / GRM 为主 |
|
||
| K3 MOPD | 当前 student | student 与 teacher 分布差异 | 每个 token 都有 teacher signal |
|
||
|
||
不得把 “partial rollout 是 off-policy” 和 “MOPD 是 on-policy” 写成矛盾;它们是不同阶段/目标。
|
||
|
||
### 6.3 为什么强调 same-origin teacher
|
||
|
||
独立 MOPD 论文验证:
|
||
|
||
- 每个领域教师从同一 SFT checkpoint 经过领域 RL 得到;
|
||
- student 也从该 SFT checkpoint 初始化;
|
||
- teacher/student 分布接近时,policy-gradient 和 top-k 形式都较稳定;
|
||
- 换成绝对能力更强但分布更远的外部教师,训练可能不稳定,entropy 收缩。
|
||
|
||
“教师越强越好”因此不成立;教师与学生的分布距离也是关键变量。
|
||
|
||
### 6.4 为什么 K3 没有采用更细的 top-k 教师分布
|
||
|
||
独立 MOPD 给出两种实现:
|
||
|
||
- 只使用学生实际采样 token 的 policy-gradient 形式;
|
||
- 传输教师 top-k token 分布的低方差形式。
|
||
|
||
K3 报告称在其设置中,更细粒度 top-k distillation 没有改善收敛或最终性能。必须写成“在 K3 的同源教师与具体基础设施设置中”,不能推广成 top-k 蒸馏普遍无用。
|
||
|
||
## 7. K3 百万 Token agentic RL 的系统闭环
|
||
|
||
### 7.1 co-located RL
|
||
|
||
K3 在几百张 GPU 规模做 co-located training。策略训练与 rollout 共享设备,配套:
|
||
|
||
- partial rollout 减少长尾等待;
|
||
- KV 写回外部 CPU DRAM pool;
|
||
- KDA recurrent state 与 MLA KV cache 统一生命周期;
|
||
- train state 在阶段间卸载到 NVMe;
|
||
- 根据 active/queued requests 与 KV utilization 自动 throttle;
|
||
- reference / non-policy 权重可从 CPU 流入 policy FP32 gradient buffer。
|
||
|
||
这些机制回答的是“如何让百万 Token agent trajectory 实际跑得动”,不是新推理算法本身。
|
||
|
||
### 7.2 AgentENV
|
||
|
||
K3 的沙箱系统使用 Firecracker microVM,支持:
|
||
|
||
- pause / resume;
|
||
- incremental checkpoint;
|
||
- fork / snapshot;
|
||
- 暂停时不消耗 memory/CPU;
|
||
- checkpoint 最低 133 ms、resume 最低 49 ms;
|
||
- 真实负载最高 6.5× memory overcommit。
|
||
|
||
K3 报告称训练与评测共创建 51,219,741 个 sandboxes、跨 1,505,678 个 images。它们是该项目报告的规模数据,不是通用性能保证。
|
||
|
||
AgentENV 已开源:
|
||
|
||
- https://github.com/kvcache-ai/AgentENV
|
||
|
||
## 8. 过程监督与验证器主线
|
||
|
||
### 8.1 Uesato 2022:outcome/process 不是简单二选一
|
||
|
||
在 GSM8K 设置中,该工作比较 outcome-based 与 process-based feedback,并指出若追求低 trace error,通常需要过程反馈,或一个能近似过程反馈的 reward model。
|
||
|
||
不能外推为“所有任务 PRM 都优于 ORM”;生成模型、标注预算和搜索规模都不同。
|
||
|
||
### 8.2 PRM800K / Let’s Verify Step by Step
|
||
|
||
关键事实:
|
||
|
||
- 约 800K step-level labels;
|
||
- 来自约 75K solutions、12K problems;
|
||
- 在代表性 500 道 MATH 子集上,process-supervised reward model 配合 best-of-1860 选择达到 78.2%;
|
||
- 生成器与 reward model 来自内部 GPT-4-base 系列;
|
||
- 4,500 道 MATH test problems 用于训练,只评估剩余 500;
|
||
- 主要研究 reward-model reliability 与 best-of-N,不是 generator RL。
|
||
|
||
网站不能写“PRM 解出 78.2% MATH”,必须保留:
|
||
|
||
```text
|
||
500-problem subset + best-of-1860 + reward-model selection
|
||
```
|
||
|
||
### 8.3 verifier 与搜索的反馈回路
|
||
|
||
搜索不是自动纠错器:
|
||
|
||
```text
|
||
生成器提出候选
|
||
→ verifier 给局部排序
|
||
→ 搜索把高分分支分配更多预算
|
||
→ verifier 的系统性偏差被反复放大
|
||
```
|
||
|
||
因此互动实验要允许单独调:
|
||
|
||
- 基础候选正确率;
|
||
- 候选相关性/多样性;
|
||
- verifier true-positive / false-positive;
|
||
- branching factor;
|
||
- depth;
|
||
- 总 token budget。
|
||
|
||
## 9. s1:极少数据、预算强制与蒸馏边界
|
||
|
||
s1 的关键设置:
|
||
|
||
- 从候选池筛出 1,000 个问题组成 s1K;
|
||
- 共约 4.7M tokens;
|
||
- traces 来自 Gemini 2.0 Flash Thinking,后续 s1.1 改用 R1;
|
||
- SFT Qwen2.5-32B-Instruct;
|
||
- 训练约 7 个 H100 GPU-hours;
|
||
- 用 “Wait” 继续生成或强制结束,实现 budget forcing。
|
||
|
||
论文中的 AIME 2024 无 budget forcing 为 50,特定扩展运行约到 56.7/57。教学边界:
|
||
|
||
- 这是强教师轨迹蒸馏,不是 1,000 个原始问题让基础模型无中生有;
|
||
- 59K 全量数据未超过精选 1K,说明 difficulty/diversity/quality 很重要;
|
||
- “超过 o1-preview”是特定 benchmark、prompt、预算与评测协议下的比较。
|
||
|
||
## 10. 首版互动实验设计
|
||
|
||
### 10.1 Reasoning Budget Lab(主交互)
|
||
|
||
固定一笔总预算,例如 16K / 64K / 256K tokens,让读者分给四种策略:
|
||
|
||
1. 单轨串行深度;
|
||
2. 并行采样数量;
|
||
3. verifier/search;
|
||
4. 工具调用。
|
||
|
||
输入:
|
||
|
||
- base pass@1;
|
||
- 独立样本相关性;
|
||
- 深度收益曲线;
|
||
- verifier 准确率;
|
||
- search branching/depth;
|
||
- tool success / latency;
|
||
- reasoning effort;
|
||
- 总 token/latency budget。
|
||
|
||
输出:
|
||
|
||
- 估计 pass@1;
|
||
- pass@k / coverage;
|
||
- majority@k;
|
||
- verifier-selected success;
|
||
- 串行关键路径 latency;
|
||
- 总 token;
|
||
- “能力扩展”与“选择改进”的分解。
|
||
|
||
所有数值必须标注为 deterministic teaching simulation,不得伪装成模型 benchmark。
|
||
|
||
预设:
|
||
|
||
- Direct / CoT;
|
||
- Self-Consistency;
|
||
- Best-of-N + ORM;
|
||
- PRM search;
|
||
- DeepSeek-R1 风格;
|
||
- Kimi k1.5 long-CoT;
|
||
- K3 low / high / max;
|
||
- tool-using agent。
|
||
|
||
### 10.2 GRPO Bias Lab(第二交互或主交互第二页签)
|
||
|
||
给定同题 8 条 rollout:
|
||
|
||
- reward;
|
||
- token length;
|
||
- old/new token probability ratio;
|
||
- 是否 overlong;
|
||
- 是否全对/全错组。
|
||
|
||
并排显示:
|
||
|
||
- DeepSeekMath GRPO;
|
||
- DAPO token-level aggregation;
|
||
- Dr.GRPO;
|
||
- K2.5 log-ratio gradient mask。
|
||
|
||
读者可以直接看到:
|
||
|
||
- 组内全同奖励为何梯度为零;
|
||
- response-length normalization 如何改变长短样本权重;
|
||
- std normalization 如何改变题目难度权重;
|
||
- ratio 越界时 K2.5 如何屏蔽 token;
|
||
- hard overlong penalty 与 soft shaping 的差别。
|
||
|
||
### 10.3 MOPD Capability Mixer
|
||
|
||
画 3×3 教师矩阵:
|
||
|
||
```text
|
||
low high max
|
||
general ● ● ●
|
||
agent ● ● ●
|
||
coding ● ● ●
|
||
```
|
||
|
||
选择 prompt domain / effort 后:
|
||
|
||
- student rollout;
|
||
- router 选择 teacher;
|
||
- 每 token 显示 student prob、teacher prob、clipped advantage;
|
||
- 可切换 same-origin / distant teacher;
|
||
- 显示 entropy、teacher-student KL 和稳定性提示。
|
||
|
||
## 11. 正文可视化清单
|
||
|
||
首版至少需要:
|
||
|
||
1. 八账总览:结果、覆盖、选择、过程、预算、优化、分布、系统。
|
||
2. 四种 test-time compute:串行、并行、搜索、工具。
|
||
3. pass@1 / pass@k / majority@k / best-of-N 的同一候选池示意。
|
||
4. CoT → self-consistency → verifier → search → agent 时间线。
|
||
5. PPO → GRPO → DAPO / Dr.GRPO 公式差异图。
|
||
6. DeepSeekMath → R1-Zero → R1 → distill 因果链。
|
||
7. “能力扩展 vs 概率重排”的双分布图。
|
||
8. PRM 的逐步评分与 best-of-N 选择图。
|
||
9. Kimi k1.5 partial rollout 的跨迭代时间线。
|
||
10. k1.5 long2short 四方法对照。
|
||
11. K2 verifiable gym → critic → subjective rubric 闭环。
|
||
12. K2.5 Toggle 两阶段预算训练。
|
||
13. K3 3 domains × 3 efforts → MOPD 的九教师矩阵。
|
||
14. K3 partial rollout RL 与 MOPD 并排图。
|
||
15. K3 co-located RL、外部 KV pool、AgentENV 流水线。
|
||
16. CoT correctness / plausibility / faithfulness 三圆图。
|
||
|
||
## 12. 本地一手材料
|
||
|
||
PDF 与文本只作研究缓存,受 `.gitignore` 排除;公开仓库提交本账本与 canonical URL。
|
||
|
||
| ID | 来源 | 页数 | 本章用途 |
|
||
|---|---|---:|---|
|
||
| `1707.06347` | Proximal Policy Optimization Algorithms | 12 | PPO 起点 |
|
||
| `2110.14168` | Training Verifiers to Solve Math Word Problems | 22 | GSM8K、verifier、采样 |
|
||
| `2201.11903` | Chain-of-Thought Prompting | 43 | 串行推理起点 |
|
||
| `2203.11171` | Self-Consistency Improves Chain of Thought Reasoning | 24 | 并行采样与投票 |
|
||
| `2205.10625` | Least-to-Most Prompting | 61 | 分解式推理 |
|
||
| `2210.03629` | ReAct | 33 | 推理与行动交错 |
|
||
| `2211.14275` | Solving Math Word Problems With Process- and Outcome-Based Feedback | 29 | PRM/ORM 早期比较 |
|
||
| `2305.04388` | Language Models Don’t Always Say What They Think | 32 | CoT faithfulness |
|
||
| `2305.10601` | Tree of Thoughts | 14 | 显式搜索 |
|
||
| `2305.20050` | Let’s Verify Step by Step | 29 | PRM800K / best-of-1860 |
|
||
| `2402.03300` | DeepSeekMath | 30 | GRPO |
|
||
| `2408.03314` | Scaling LLM Test-Time Compute Optimally | 37 | compute-optimal allocation |
|
||
| `2411.15124` | Tülu 3 | 82 | RLVR / 开放 post-training 配方 |
|
||
| `2412.16720` | OpenAI o1 System Card | 51 | reasoning model 评测/安全边界 |
|
||
| `2501.12599` | Kimi k1.5 | 25 | long-CoT、partial rollout、long2short |
|
||
| `2501.12948` | DeepSeek-R1 | 86 | R1-Zero、R1、distillation |
|
||
| `2501.19393` | s1 | 46 | budget forcing、精选蒸馏数据 |
|
||
| `2503.14476` | DAPO | 16 | GRPO 复现与四项修正 |
|
||
| `2503.20783` | Understanding R1-Zero-Like Training: A Critical Perspective | 20 | Dr.GRPO、长度/难度偏置 |
|
||
| `2504.13837` | Does RL Really Incentivize Reasoning Capacity in LLMs Beyond the Base Model? | 31 | RLVR coverage 边界 |
|
||
| `2507.20534` | Kimi K2 | 32 | verifiable + self-critique RL |
|
||
| `2602.02276` | Kimi K2.5 | 30 | token clipping、Toggle、agentic RL |
|
||
| `2606.30406` | MOPD | 15 | multi-teacher on-policy distillation |
|
||
| `2607.24653` | Kimi K3 | 47 | reasoning effort、MOPD、agentic infra |
|
||
|
||
首版时间线另补 6 个桥接节点。其 canonical 页面、标题与摘要已核对;后续二轮再加入本地逐页笔记:
|
||
|
||
| ID | 来源 | 首版用途 |
|
||
|---|---|---|
|
||
| `2203.14465` | STaR | 迭代生成、筛选与训练成功 rationale |
|
||
| `2205.11916` | Large Language Models are Zero-Shot Reasoners | 从 few-shot CoT 到统一零样本触发 |
|
||
| `2206.14858` | Minerva | 技术内容继续训练与定量推理 |
|
||
| `2211.12588` | Program of Thoughts | 把语言推理与外部数值执行分开 |
|
||
| `2303.17651` | Self-Refine | 无额外训练的反馈—修订串行扩展 |
|
||
| `2403.09629` | Quiet-STaR | 从任务 CoT 走向一般文本内部 rationale |
|
||
|
||
## 13. 一手来源 canonical URLs
|
||
|
||
- PPO — https://arxiv.org/abs/1707.06347
|
||
- GSM8K / Verifiers — https://arxiv.org/abs/2110.14168
|
||
- Chain-of-Thought — https://arxiv.org/abs/2201.11903
|
||
- Self-Consistency — https://arxiv.org/abs/2203.11171
|
||
- STaR — https://arxiv.org/abs/2203.14465
|
||
- Least-to-Most — https://arxiv.org/abs/2205.10625
|
||
- Zero-Shot Reasoners — https://arxiv.org/abs/2205.11916
|
||
- Minerva — https://arxiv.org/abs/2206.14858
|
||
- ReAct — https://arxiv.org/abs/2210.03629
|
||
- Process vs Outcome Feedback — https://arxiv.org/abs/2211.14275
|
||
- Program of Thoughts — https://arxiv.org/abs/2211.12588
|
||
- Self-Refine — https://arxiv.org/abs/2303.17651
|
||
- CoT Unfaithfulness — https://arxiv.org/abs/2305.04388
|
||
- Tree of Thoughts — https://arxiv.org/abs/2305.10601
|
||
- Let’s Verify Step by Step — https://arxiv.org/abs/2305.20050
|
||
- DeepSeekMath — https://arxiv.org/abs/2402.03300
|
||
- Quiet-STaR — https://arxiv.org/abs/2403.09629
|
||
- Scaling LLM Test-Time Compute Optimally — https://arxiv.org/abs/2408.03314
|
||
- Tülu 3 — https://arxiv.org/abs/2411.15124
|
||
- OpenAI o1 System Card — https://arxiv.org/abs/2412.16720
|
||
- Kimi k1.5 — https://arxiv.org/abs/2501.12599
|
||
- DeepSeek-R1 — https://arxiv.org/abs/2501.12948
|
||
- s1 — https://arxiv.org/abs/2501.19393
|
||
- DAPO — https://arxiv.org/abs/2503.14476
|
||
- Dr.GRPO — https://arxiv.org/abs/2503.20783
|
||
- RLVR Capacity Limits — https://arxiv.org/abs/2504.13837
|
||
- Kimi K2 — https://arxiv.org/abs/2507.20534
|
||
- Kimi K2.5 — https://arxiv.org/abs/2602.02276
|
||
- MOPD — https://arxiv.org/abs/2606.30406
|
||
- Kimi K3 — https://arxiv.org/abs/2607.24653
|
||
- Thinking Machines: On-Policy Distillation — https://thinkingmachines.ai/blog/on-policy-distillation/
|
||
- AgentENV — https://github.com/kvcache-ai/AgentENV
|
||
|
||
## 14. 高风险表述检查表
|
||
|
||
- [x] 不把 pass@1、pass@k、majority@k、best-of-N 混写。
|
||
- [x] 不把训练计算、串行推理、并行采样、搜索与工具成本混写。
|
||
- [x] 不把可读 CoT 当作忠实因果解释。
|
||
- [x] 不把 PRM800K 的 78.2% 写成单次 MATH 准确率。
|
||
- [x] 不把 R1 完整管线写成“纯 RL、零 SFT”。
|
||
- [x] 不把 R1-Zero 的 “aha” 当作 RL 从零创造能力的单一证据。
|
||
- [x] 不把 R1 distilled 小模型写成只用 1K/800K 原始题自主学会推理。
|
||
- [x] 不把 DAPO 的同 base 对比写成完全同数据/同系统的严格赛跑。
|
||
- [x] 不把 Dr.GRPO 写成已经推翻所有 GRPO。
|
||
- [x] 不把当前 RLVR pass@k 结果写成关于 RL 的不可能定理。
|
||
- [x] 不把 s1 的 1K 写成没有强教师轨迹。
|
||
- [x] 不把 k1.5 不使用 PRM/MCTS 写成这些方法普遍无效。
|
||
- [x] 不把 K2 self-critique reward 当作客观 verifier。
|
||
- [x] 不把 K2.5 probability-ratio clipping / log-ratio drift 约束当作标准 PPO clipping。
|
||
- [x] 不把 K3 partial rollout 的 off-policy 稳定化与 MOPD 的 on-policy student rollout 混写。
|
||
- [x] 不把更强但远分布教师写成 MOPD 必然更好。
|
||
- [x] 不把 K3 报告中的系统规模数字写成第三方复现结果。
|
||
- [x] 所有 benchmark 数字同时带模型、采样、选择与数据边界。
|
||
|
||
## 15. 首版正文完成闸门
|
||
|
||
- [x] 把八张账做成一张可导航总图。
|
||
- [x] 建立不少于 30 篇的关键论文时间线,并逐项核对 canonical URL。
|
||
- [x] 完整解释 CoT、self-consistency、verifier、PRM、search、tool use 的桥接关系。
|
||
- [x] 用统一候选池讲清 pass@1 / pass@k / consensus / best-of-N。
|
||
- [x] 画出 PPO → GRPO → DAPO / Dr.GRPO 的目标函数差异。
|
||
- [x] 单独写 DeepSeekMath → R1-Zero → R1 → distillation 高亮主线。
|
||
- [x] 单独写 Kimi k1.5 → K2 → K2.5 → K3 高亮主线。
|
||
- [x] 并排画 K3 partial rollout RL 与 MOPD,明确 off-policy / on-policy。
|
||
- [x] 讲清 reasoning effort、budget forcing、long2short 与 Toggle 的差异。
|
||
- [x] 讲清 RLVR pass@1 / pass@k 能力边界争论及其局限。
|
||
- [x] 加入 CoT faithfulness 的独立警示与实验。
|
||
- [x] 完成 Reasoning Budget Lab。
|
||
- [x] 完成 GRPO Bias Lab 或等价交互页签。
|
||
- [x] 完成 MOPD 九教师可视化。
|
||
- [x] 论文链全部指向一手来源。
|
||
- [x] 类型、链接、anchor、交互、桌面/移动端、容器与生产 Chrome 检查通过。
|