ActObs · 别遮蔽环境 · 改一行 loss mask 保留 RL 探索力
日期 / 轮次:2026-09-19 · R2 午棒 arXiv:abs/2609.20715 v1(https://arxiv.org/abs/2609.20715) 视频脚本原路径:/shared/video-kb/scripts/tom/2026-09-19_R2_actobs-no-mask-env_short-video-script.md
1. 标题与观众
- 标题:ActObs,别遮蔽环境
- 副标题:ActObs · Terminal-Bench 2.0 · aider-polyglot · 改一行 loss mask
- 目标观众:Agent 后训练 / RLHF / GRPO 工程师(主)+ Agent 评测研究者(次)+ SFT 数据流水线工程师(第三)
- 一句话核心观点:把 SFT 阶段遮蔽的 observation token 重新加进 loss,改一行 mask,后续 RL 探索力从锁死到正交化,+3.4 / +4.2 pp 直接到手。
3. 45-90 秒口播稿
220-360 个中文字符 · 开头 5 秒冲突意识 · 结尾可执行动作 · 字幕层叠加 W-ACTOBS-NO-MASK-ENV-R2-Caution 1-10 基础 10 件套 + FlyP 补充 11-14 = 14 件套 verbatim 命中
Agent 训练标准范式 = SFT → GRPO。但 SFT 阶段默认把 observation token 在 loss 里标 -100,等于是不教模型预测环境。直觉上合理 —— 部署后 agent 又不生成 observation。但 ActObs 把这一行 mask 改回去:零成本,不改数据、不加参数、不加 token、不加前向传播。SFT 后指标相似,进入 GRPO 后立刻分化:action 与 observation 梯度快速正交化,action-only 训练留下巨大的 observation 残差梯度,observation 预测能力跌穿 base model。RL 阶段保留更多熵、策略移动更小、最终策略更靠近 SFT 起点。量化结果:Qwen3-8B 在 Terminal-Bench 2.0 trade-off 一点 pass@1 换 +3.4 pp at pass@16,Qwen3-4B 在 aider-polyglot(任务在 SFT 与 RL 中均未见)+4.2 pp at pass@1。机制 = joint supervision 防止 one-sided specialization,策略建模动作后果。但对照对象 / 跨 RL 变体 / 跨模型族 / 长 context 稳定性 abstract 均未明,先 PDF 核验再落地。今晚做一件事:把你的 SFT pipeline 里 observation token 的 -100 mask 改成正常 label,看 GRPO 阶段 pass@k 是否上扬。
4. 镜头分镜
7 scenes 结构化(hero / judgments / mechanism / evidence / limitations / actions / closing)· 屏幕文字每条 ≤ 18 字 · 字幕层叠加 W-ACTOBS-NO-MASK-ENV-R2-Caution 14 件套 verbatim 命中
Scene 1 · Hero(0-6s)
- 时长:6 秒
- 屏幕文字:
ActObs,别遮蔽环境(12 chars verbatim 命中 candidates §1 候选 1) - 画面元素:深色背景中央大字标题 + 副标题
改一行 loss mask 保留 RL 探索力在标题下方 24px 处 - 运动方式:标题从中心放大 1.0 → 1.05 弹性回弹 300ms,副标题淡入延迟 200ms
Scene 2 · Judgments(6-17s)
- 时长:11 秒
- 屏幕文字:
默认遮蔽 observation(9 chars)+锁死 RL 探索(6 chars) - 画面元素:左侧 SFT 流程示意图(observation token 标
-100)+ 右侧 RL 阶段熵塌缩曲线,中间红叉动画 - 运动方式:左侧静态呈现 1s,右侧熵曲线从高位快速下跌,中间红叉从 0 缩放到 1.0
- 字幕层叠加:W-Caution 1(完整 pass@1/4/16 曲线 abstract 未给)+ W-Caution 2(+3.4/+4.2 pp 对照对象 abstract 未明)
Scene 3 · Mechanism(17-39s)
- 时长:22 秒
- 屏幕文字:
改一行 mask(6 chars)+梯度正交化(5 chars)+保留更多熵(5 chars) - 画面元素:三件套流程图 = 左侧 loss mask 切换前/后对比(
-100vs 正常 label)+ 中间 action / observation 梯度向量正交化示意(cosine → 0)+ 右侧熵曲线对比(ActObs 高 / action-only 低) - 运动方式:三组件依次点亮 200ms 间隔,梯度向量从平行旋转到正交,熵曲线两条同时绘制对比
- 字幕层叠加:W-Caution 5(masking 细节 abstract 未明)+ W-Caution 6(loss 平衡 abstract 未明)+ W-Caution 11(机制证据无 hidden state PCA 可视化)+ W-Caution 13(已有 observation prediction auxiliary loss 关系 abstract 未明)
Scene 4 · Evidence(39-54s)
- 时长:15 秒
- 屏幕文字:
arXiv 20715 v1(14 chars)++3.4 pp pass@16(14 chars)++4.2 pp pass@1(13 chars) - 画面元素:证据卡三件套 = arXiv ID 卡 + freshness 时间轴(≈ 43h44m FULL 命中 48h 窗口)+ Qwen3-4B/8B 双任务柱状图,底部小字
9 句 abstract 字面 verbatim 命中 - 运动方式:三卡从左到右依次滑入,间隔 300ms,柱状图从 0 升至 +3.4/+4.2,底部数字 0 → 9 计数动画
- 字幕层叠加:W-Caution 9(paper 来源 = arXiv-only Preprint · 实测本日)+ W-Caution 10(release_age ≈ 43h44m FULL 命中 48h freshness)
Scene 5 · Limitations(54-71s)
- 时长:17 秒
- 屏幕文字:
原文未明 14 件(7 chars)+跨 RL · 跨模型族(8 chars)+长 context · 幻觉(8 chars) - 画面元素:风险卡 5 个气泡 = 跨 RL 变体 / 跨任务迁移 / 跨模型族 / 长 context 稳定性 / observation 幻觉副作用,每个气泡 ⚠️ 标红
- 运动方式:5 个气泡依次从顶部弹出,每个间隔 250ms,弹出后停留 2s
- 字幕层叠加:W-Caution 3(PPO/DPO/RLOO abstract 未明)+ W-Caution 4(SWE-bench/WebArena abstract 未明)+ W-Caution 7(observation 幻觉副作用 abstract 未披露)+ W-Caution 8(observation 噪声鲁棒性 abstract 未量化)+ W-Caution 12(跨 Qwen3-4B/8B · Llama/Gemma 迁移性 abstract 未明)+ W-Caution 14(arXiv 官方分类 = cs.LG primary + cs.AI + cs.CL cross-listed 3 类)
Scene 6 · Actions(71-83s)
- 时长:12 秒
- 屏幕文字:
做一件事(4 chars)+改 -100 mask(8 chars)+看 pass@k(7 chars) - 画面元素:行动清单卡,左侧对勾 ✅ + 中间 3 步骤编号(找 SFT loss mask → 改 observation label → GRPO 监控 pass@k)+ 右侧示例代码片段
loss_mask[obs_token] = 0 # ActObs: from -100 to 0 - 运动方式:对勾从 0 描线到完整,3 步骤编号依次点亮,代码片段从右滑入
- 字幕层叠加:沿用 abstract 字面 + FlyP 补充 11-14 verbatim
Scene 7 · Closing(83-90s)
- 时长:7 秒
- 屏幕文字:
ActObs,别遮蔽环境(12 chars verbatim 命中 candidates §1 候选 1 · closing 派生) - 画面元素:深色背景 + 标题字面居中 + 底部
改一行 loss mask 保留 RL 探索力副标题 - 运动方式:标题从中心缩放 1.05 → 1.0 定格,副标题底部上滑淡入