On-Policy Gap约束(三方法一致:PPO clip兜底)
统一依赖:
- PPO clip(e=0.2,e_high=0.28)
- ratio = t_0_new(a|s) / t_0_old(a/s)
- 超出 [0.8, 1.28] 的 ratio 被截断 → 隐式 KL 约束
OPD特有的额外保障:
teacher_lp - rollout_lp 的梯度方向 = "向 teacher 靠拢" = 隐式 KL 拉力
→ 防止 policy 漂离有 teacher 指导的区域
三种方法的 On-Policy Gap 风险都不大,因为 OpenClaw 是在线服务,数据实时产生,天然接近 on-policy。weight sync 暂停窗口是主要偏差来源,被 503 pause 机制控制。
1.7 不变量④
我们看看如何解决long-horizon 信用分配(turn discount + dense reward shaping)
有效样本率讨论
单轮RL:
- 每条response = 1个样本,有reward就有梯度
Agentic RL:
- 每个episode = T步,但可能只有1个terminal reward
- 前T-1步:reward=0 → 无梯度(用0填充)
- “有效样本率“的真正含义在Agentic RL里变成:"reward信号能有效反向传播到多少步的action?"
OpenClaw-RL
有效样本率
- Binary RL:
- loss_mask = 0 的样本仍进训练队列(Megatron 做零梯度forward)
- → 占用GPU计算资源但无学习信号
- → 有效样本率 =(score ≠ 0的turn 数) / (队列总turn数)
- at-least-one 保障下限:每 session ≥ 1个有效样本
- OPD:
- hint-reject→完全不进队→有效率最纯净
- 所有进入队列的样本loss_mask全为1
- 但:效率上限 ≤ hint accept rate(hint 拒绝率可能很高)
- Combine:
- OPD-only + RL-only + "OPD+RL" 都进队
- 但hint-rejected AND eval=0 → drop (最严格过滤)
- 结果:样本数最少,但信号质量最高(每条都有至少一路有效信号)
1.8 设计哲学小结
- Binary RL → 宁愿噪声多,不放弃任何数据(at-least-one + 全入队)
- OPD → 宁愿数据少,只要高纯度信号(hint-accept才入队)
- Combine → 精准门控,按信号类型分路,最大化信噪比
0x02 第一不变量理解
我们在本小节再仔细学习理解下 第一不变量:策略可探索空间不能过早塌缩。
2.1 直觉理解
塌缩 = 模型“认定“了某种回复模式,放弃探索其他可能性。具体如下:
训练前(高entropy,充分探索):
P("好的,我来帮你") =0.15
P("让我分析一下") =0.18
P("这个问题需要...") =0.20
P("首先...") =0.12
...(很多候选,均匀分布)
过早塌缩后(低entropy,退化):
- P("让我分析一下") =0.87
- P(“好的,我来帮你") =0.08
- P(其他所有)=0.05
2.2 深入思考
第一不变量不是说"模型要随机”,而是说:在每种情境下,模型必须仍然"知道"多种有意义的应对方式,并且真实地有能力选择它们。这是RL持续学习的前提条件一没有这个可探索空间,后续的奖励信号无论多精确,都无法引导模型走向更好的策略。
2.2.1 多样性
此处回答"为什么token级随机性不等于探索?”
支撑集
支撑集(Support)的数学含义:分布P的支撑集 = 所有概率 > 0 的事件集合
Token 级支撑集 ≠ 行为级支撑集。
示例:
- 模型在token 1选"Let"时,有("Let","First","To","I")都有高概率
- 但一旦选了"Let",之后的token高概率会走"直接推理"路径
结论:
token级很高,但行为级已经锁定成"直接推理"这一种策略。表面上”每个token位置的词表分布仍有多样性",但是”模型生成的所有回答都遵从同一种模式"。”直接推理"就是永远走” → 长链推理 → → 答案"的固定模板。
行为级支撑集崩塌(Support Collapse):
训练前:
P(分解为子问题策略)=30%
P(直接推理策略)=40%
P(先搜索再答策略) =20%
P(反例验证策略)=10%
RL训练后(+1奖励集中在"直接推理"):
- P(分解为子问题策略) =2% 快崩塌了
- P(直接推理策略) =94% 支撑集过度收缩
- P(先搜索再答策略) =3%
- P(反例验证策略) =1%
此时token级熵可能依然很高(词语选择多样),但行为空间的支撑集已经崩塌了。这就是为什么ARLArena观察到"训练崩溃"往往在特定任务类型上(如 ALFWorld),而非所有任务一特定任务对行为多样性的要求更高。
策略层面的多样性
token级熵测试的是”用词多样性",行为级是”策略多样性",前者高不代表后者没有退化。
"彼此可区分、语义上不同” 不是token熵要高,比如:
"The catsaton themat" → 下-个词有很多候选(mat/floor/sofa...) → 虽然token熵不低,但语义上都是"猫坐在什么上”,差异微不足道。而是策略层面的多样性。
比如给定"帮我解释量子纠缠”,模型应该保持:
- 路径A:类比直觉解释(面向普通用户)
- 路径B:数学形式化(面向专业用户)
- 路径C:先反问用户背景(主动澄清)
- 路径D:分层解释(先直觉后深入)
这四条路径语义上根本不同,是真正意义上的"不同行为”。
范式
因此,范式如下:
旧范式(错误方向):"提高token温度 → 增加随机性 → 更好的探索"
新范式(正确方向):"管理模型行为空间的支撑集 → 保持策略多样性 → 真正的探索"
2.2.2 真实可行
这是关键约束:不只是token序列上存在,而是模型真的能走到那条路。
# 比较: π("类比解释")=1e-9 # 理论上可以,但概率极低→"真实不可行" π("数学形式化")=0.45 # 模型真的可以走这条路→"真实可行” π("逐步推导")=0.50 # 同上 π("先反问")=0.05 # 勉强可行的边缘第一不变量要求:至少有若干条路径π(path_i) > e_threshold,而不仅仅是理论上存在。
2.2.3 "给定状态下"(per-state,而非全局)
全局token 熵高 ≈ 满足第一不变量,因为 模型可能:
- 对"数学题"→路径单一(只会GRPO强化后的解题格式)
- 对"闲聊”→路径多样
- → 在"数学题"这个state下,策略已塌缩
而 第一不变量要求:每个 state S,模型保有{path(s),path 2(s),... ,path k(s)} 这样的可区分路径集
2.2.4 为什么"过早"最危险
一组可行的语义路径 = 模型保留着"可以被学习的选择空间”。一旦某条路径被排除出可行集,RL 就永远无法知道它应该被强化或惩罚。
RL的策略梯度公式如下:
# Policy gradient.只能从被采样的路径学习: ∇L = E_{a ~ π(·|s)}[∇logπ(a|s)·A(s,a)]采样期望:只有被采样的 action才会收到梯度。
# 如果某条路径π(a|s) → 0: # 该action a 永远不会被采样,A(s,a)从不被计算。 # ∇log π(a|s) * A(s,a)=0 → 永远收不到梯度, 永久无法得知 a 是否更好即,一旦π(als) → 0,该action永远不会被采样,永远收不到梯度。
这与监督学习根本不同:
- SFT:有显式label → 不管当前概率多小,label对应的token都有梯度
- RL:没有label → 只有实际采样到的action才有梯度 → 概率趋零的策略 = 死路,无法自我恢复
具体场景
我们再来看看OpenClaw-RL里的塌缩。
假设:Binary RL训练了一段时间后,模型学会了一种"高分模板",比如:
"这是个很好的问题。让我逐步分析:1)...2)...3)...总结:..." → 这种格式 PRM 经常打 + 1问题:用户问技术代码题时,也用这个模板 → 代码题需要直接给代码,不是列条目。
这样带来的问题如下:→ PRM打0或-1(用户下一句表示没解决问题) → 但此时模型已经几乎不会生成"直接写代码"的回复了(概率→ 0) → 无法收到"应该直接写代码"的梯度信号 → 塌缩锁死
"过早"与"收敛"的区别
过早塌缩(坏):
- 模型还没学会区分好坏回复 → 随机采样到某种格式 → 偶然得+1 → 快速强化 → 锁死
正常收敛(好):
模型已经学会:技术问题→直接给代码;分析问题 → 逐步推理
→ 条件entropy依然高(不同类型问题差异大)
→ 同类问题内entropy可以低(已找到最优策略)
核心判断:entropy是否在有用的维度上降低了。
2.2.5 塌缩如何引发其他三个不变量的连锁失效
第一不变量是根基:它失败后,其余三个不变量同时承压,具体如下图。
① Entropy 塌缩 ↓ 所有输出趋向相同模式 / \ ② 梯度退化 ③ On-Policy Gap 扩大 (reward 方差 → 0) (用户说 A,模型只生成 B) \ / ④ 有效样本率崩溃 (judge 全打 neutral)2.3 维护可探索行为空间的难点
6个根本性挑战如下。
难点 1:SFT的单向压缩性
交叉SFT的目标是:maxP("正确答案"),其副作用是:所有alternative valid outputs的概率同时下降。
这种压缩是单向不可逆的:Training loss ↓→ P(gold output) ↑ → P(alternative paths) ↓ (很难再恢复)
结果:"Getting Your LLMs Ready for RL" 发现