DeepSeek-R1 之后 RL post-training 有一条被反复强调的假设:任务必须有可判定的正确性。数学题答案对错可算、代码 unit test 可跑、编译器可判——只有在这些"verifiable reward"存在的任务上,纯 RL 才能把 reasoning 能力推到 emergence。我在 Chinchilla → 2026 的 §9.5 里把这条论断当作 R1 范式的核心承诺。

但真实世界里大部分有价值的任务恰好在这个边界之外——视频里"某个动作发生在第几秒到第几秒"、图像里"这段描述对应哪块像素"、机器人里"这段动作 chunk 对不对"——这些都不是二值可判的。IoU 之类的连续 metric 是有的,但 IoU 只告诉你"答案对不对",不告诉你"reasoning 好不好"。用 answer-correctness reward 训 RL,模型学会的往往是投机取巧的 pattern matching 而非真正的推理——output 里堆一段看起来 plausible 的 thinking,答案却是靠 shortcut 蒙对的。

Peking University × Huawei Noah’s Ark 的 TaRO(ICML 2026)给出了一个我觉得很有推广价值的 workaround:当任务本身没有 verifiable reward,就扰动关键因素、观察模型自己的 logit 是否下降,把 drop 本身当 reward。这套 “self-critique via perturbation sensitivity” 不是 VTG 领域的小 trick,它是 RL post-training 里一种通用的方法论范式——本文的目标是把它抽出来讲清楚。

TaRO 动机:superficial reasoning 只是 pattern matching,effective reasoning 应该 anchor 到具体时间戳

一、问题:VTG 里 reasoning RL 的两个具体困境

Video Temporal Grounding(VTG)的任务定义很简单:给一段视频 VV 和一句自然语言查询 QQ(比如"the guy plays the saxophone again"),预测目标事件的起止时间戳 (ts,te)(t^s, t^e)

Time-R1(Wang et al. 2026)是 VTG 上第一个把 GRPO 引进来的工作——直接用 IoU + format reward 训一个 MLLM,让它先输出一段 <think>...</think> reasoning 再给最终 (ts,te)(t^s, t^e)

r(o)=rIoU(o)+rformat(o) r(o) = r_{\text{IoU}}(o) + r_{\text{format}}(o)

这套 recipe 效果不错(比纯 SFT 强),但作者发现两个明显的坏习惯:

  1. 随机 exploration 效率极低。GRPO 是 on-policy——每步从当前 policy 采样 GG 个 rollout,用 group-relative advantage 更新。冷启动阶段模型的 reasoning 完全是随机噪声,其中真正 anchor 到关键时间戳的 rollout 极少,训练 sample efficiency 很差。Time-R1 需要 154 步才收敛,训练 wall-clock 是 baseline SFT 的 5-6 倍。
  2. Reward 只看答案对错rIoUr_{\text{IoU}} 只在最终 (ts,te)(t^s, t^e) 上算,reasoning path 里的每个 token 都拿不到直接监督。模型完全可以学会"生成一段 plausible-sounding 但跟真实时间戳无关的 reasoning,然后靠 shortcut 蒙对答案"——reasoning 变成 output template 的装饰

Fig 1 的 IoU 对比图正是这两个问题的直接症状。Direct(不带 reasoning)、Superficial Reasoning(Time-R1 风格的表面 reasoning)、Effective Reasoning(TaRO 风格的 anchor 到时间戳的 reasoning)三种模式在同一个 base model 上的 IoU 分别是 ~40 / ~46 / ~55——表面 reasoning 只带来 6 个点提升,而真正 anchor 到证据的 reasoning 能到 15 个点。差距不在 reasoning 是否存在,而在 reasoning 是否真的做了 anchor。

二、TaRO 三件套:让 reasoning 真正 anchor 在时间上

TaRO 的 framing 是 “think with time"——推理必须显式引用具体时间戳和视觉线索。为此设计了三个环环相扣的组件:

TaRO Pipeline: CRE 构造推理路径 + Temporal-Sensitive Reward 评估质量 + Progressive Curriculum 平滑过渡

flowchart LR
    Q["Query 'plays saxophone'
+ Video V"] --> CAP["Dense Captioner
预生成每帧描述"] CAP --> CRE["Constructive Reasoning
Exploration (CRE)
随机采 caption → 构造 <think>"] CRE --> ROUT["Router (progressive)
early: use CRE
late: free rollout"] ROUT --> MLLM["MLLM
Qwen2.5-VL / Qwen3-VL"] MLLM --> ROLL["G rollouts
{o_1, ..., o_G}"] ROLL --> TR["Temporal-Sensitive
Reward"] TR --> ADV["Advantage-Weighted
Behavioral Cloning Loss"] ADV --> MLLM style CRE fill:#fde047,stroke:#1e293b,color:#1e293b style TR fill:#93c5fd,stroke:#1e293b,color:#1e293b style ROUT fill:#a7f3d0,stroke:#1e293b,color:#1e293b

2.1 Constructive Reasoning Exploration(CRE)—— 解决冷启动

思路简单:既然模型自己 rollout 出的 reasoning 大部分是垃圾,那就先手动构造一批高质量 reasoning 塞给它

具体做法:

  1. 用现成的 dense captioner(VideoLLaMA、VideoChat 之类)在训练视频上预生成每帧或每几帧的描述,形如 “from t1st_1^s to t1et_1^e: caption1_1";
  2. 对每个训练样本 (V,Q,ts,te)(V, Q, t^s, t^e)均匀随机采样 k[1,n]k \in [1, n] 条 caption,按 timestamp 排序;
  3. 把采样的 caption 拼成 <think>I need to find the specific moment {query}. from $t_1^s$ to $t_1^e$: ... from $t_2^s$ to $t_2^e$: ... </think><answer>$t^s$ to $t^e$</answer> 作为 constructed reasoning path。

代码层的一个诚实澄清:我最初以为 CRE 会"针对性地混采 GT 边界附近 caption 和 distractor caption"以形成对比,但看了 src/utils.py 的 sample_reasoning 后发现——采样是完全均匀随机的kk[1,n][1, n] 里均匀抽,caption 索引也均匀抽。没有针对 GT 边界的偏置采样。多样性完全来自"每次采几条、采哪几条"的随机组合。

这类构造出来的路径天然 anchor 到具体时间戳(因为 caption 本身带 timestamp)。对模型来说,这是一份高质量 curriculum:不像 rollout 的完全随机 exploration,也不像纯 SFT 的固定模板——每次 sample 出来的 reasoning path 都不同,但都由 dense captioner 保证了 timestamp 一致性。

2.2 Temporal-Sensitive Reward(TR)—— 真正的 novelty

这是整篇论文最有推广价值的一块。核心问题是:怎么在没有 ground-truth reasoning 的情况下,评估一段 reasoning 的质量?

TaRO 的答案基于一个具体的因果推理:如果 reasoning 真的 anchor 在关键事件上,那么打乱这些事件应该让 reasoning 变得"无效”,模型给这段 reasoning 的置信度必然下降。反过来——如果打乱边界之后 reasoning 的 logit 几乎不变,说明这段 reasoning 根本没在看边界。

形式化:给定原视频 VV、query QQ、模型采样出的 reasoning path rir_i,先算它在原视频上的 log-prob:

pi=1rik=1rilogπ(ri,kV,Q,ri,<k) p_i = \frac{1}{|r_i|} \sum_{k=1}^{|r_i|} \log \pi(r_{i,k} \mid V, Q, r_{i,<k})

然后构造扰动视频 VV'——具体扰动方式是在 GT 起点 tst^s 前后 ±1\pm 1s 一个窗口、GT 终点 tet^e 前后 ±1\pm 1s 另一个窗口,两个窗口各自内部 shuffle 帧顺序,其他帧全部保持不变。这个细节从 src/utils.py 的 shuffle_boundary_frames 里精确可读:两个窗口独立处理、time_radius=1.0 默认硬编码。再在 VV' 上算同一段 reasoning 的 log-prob:

qi=1rik=1rilogπ(ri,kV,Q,ri,<k) q_i = \frac{1}{|r_i|} \sum_{k=1}^{|r_i|} \log \pi(r_{i,k} \mid V', Q, r_{i,<k})

Temporal-sensitivity 定义为 drop:

di=piqi d_i = p_i - q_i

did_i 越大,说明这段 reasoning 越依赖边界处的具体时序信息——这段 reasoning 越"真”。反之 di0d_i \approx 0 说明 reasoning 跟边界无关。

最终 reward 用一个阈值把 drop 转成 shaping 项:

ritemp={α,if di>dˉ0,otherwise r_i^{\text{temp}} = \begin{cases} \alpha, & \text{if } d_i > \bar d \\ 0, & \text{otherwise} \end{cases}

其中 dˉ\bar d 是组内 drop 的均值。加到主 IoU reward 上:

r(oi)=rIoU(oi)+rformat(oi)+ritemp1[IoU(oi)>τ] r(o_i) = r_{\text{IoU}}(o_i) + r_{\text{format}}(o_i) + r_i^{\text{temp}} \cdot \mathbb{1}[\text{IoU}(o_i) > \tau]

IoU > τ 那个 gate 关键——它防止一段 reasoning “看起来很敏感但答案错的离谱"也拿 reward。只有答案本身可信、reasoning 又对扰动敏感,才两倍奖励

从训练脚本 scripts/run_qwen2_5_vl_7b.sh 硬编码可读的超参α=0.3\alpha = 0.3temp_alpha)、τ=0.7\tau = 0.7temp_iou_thresh)、temp_margin=0.0(阈值不加 margin,就是 mean)。GRPO group size G=8G = 8rollout.n=8),KL 系数 β=0.01\beta = 0.01,训练 3 个 epoch、warmup 1 个 epoch、vision tower 全程 frozen。

另一个代码级细节:训练时的 rIoUr_{\text{IoU}} 用的是加权版——IoU × (1 - |起点误差|) × (1 - |终点误差|)(起终点都用 duration 归一化),src/rewards.py 里的 iou_timestamp_reward_v2 明确写着这个加权形式;只有 evaluation 时才回到纯 IoU。加权版本对边界估计精确度给了额外权重——单纯 IoU 高但边界估偏的 rollout 拿不到全额 reward。这一条论文正文没显式提及,但在实际训练动力学里是关键的(reasoning 一旦 anchor 错时间戳,IoU 加权会双倍惩罚)。

2.3 Progressive Curriculum

CRE 提供高质量 exploration,但完全依赖 dense caption 意味着模型永远学不到"caption 里没写的推理”。TaRO 用一个 router:

  • Warm-up phase:CRE 的采样占比 γ1\gamma \to 1,模型几乎全部时间在 imitate 构造的 reasoning path。
  • Free exploration phaseγ0\gamma \to 0,模型自己 rollout,但已经带着 CRE 阶段学到的 “think-with-time” 习惯。

这种"从 imitation warmup 平滑过渡到 autonomous exploration"在 R1 也用过(cold-start SFT + 后续 RL),但 TaRO 是把两个阶段的 loss 无缝拼在了一起——CRE 阶段的 loss 变成一个 advantage-weighted behavioral cloning:

LAW-BC=1Gi=1G1[Ai>0]Ailogπθ(riV,Q) \mathcal{L}_{\text{AW-BC}} = -\frac{1}{G} \sum_{i=1}^{G} \mathbb{1}[A_i > 0] \cdot A_i \cdot \log \pi_\theta(r_i \mid V, Q)

只对 advantage 为正的 rollout 做 BC。这一步把 CRE 的高质 sample 和 GRPO 的 online exploration 用同一个 optimizer state 无缝拼起来,不需要显式切两阶段训练。

三、实验:VTG 四个 benchmark 上 SOTA

TaRO 用了 Time-R1 的训练数据(2500 samples),backbone 覆盖 Qwen2.5-VL-3B/7B 和 Qwen3-VL-8B。四个 benchmark:Charades-STA(20K 短活动)、ActivityNet Captions(长活动)、QVHighlights(生活风格)、TVGBench(跨数据集综合)。评估指标 R1@0.3 / R1@0.5 / R1@0.7 mIoU。

TaRO Table 1: 四个 VTG benchmark 的 zero-shot SOTA 对比

几个关键结论:

  • Qwen2.5-VL-7B 上 TaRO 全面超 Time-R1:Charades-STA R1@0.5 从 60.5 → 63.5(+3 points)、ActivityNet R1@0.5 从 44.7 → 48.3、QVHighlights R1@0.5 从 46.2 → 51.4、TVGBench R1@0.5 从 46.9 → 48.5。四个 benchmark 全涨、涨幅稳定 3-5 点
  • Qwen3-VL-8B 版本更强:Charades-STA R1@0.5 到 65.1、ActivityNet 到 55.0、QVHighlights 到 55.4。
  • 3B 尺寸也 work:Qwen2.5-VL-3B + TaRO 能匹敌一些 7B baseline。

训练效率是另一个显著的赢面:Time-R1 的 rollout 训练需要 154.1 步,TaRO 只用 39.5 步——约 4× 加速。CRE 的意义在这里体现得最直接:模型冷启动阶段不再靠随机 exploration 撞运气,直接从高质量 constructed reasoning 起步。

TaRO Fig 3: 训练过程中 response length 与 IoU reward 的演化

Fig 3 值得单独拎出来——它揭示了 CRE 和 temporal-sensitive reward 的独立贡献。CRE 让训练早期 IoU reward 快速拉起(相比 baseline 的缓爬),temporal reward 让 response length 稳步收敛到一个合理长度(既不是模型学会 short-cut 出短 reasoning,也不是无节制变长)。

TaRO Table 5: CRE 消融 — SFT / All Captions / Sample Captions 与 AW-BC loss 消融

Table 5 揭示了 CRE 的实际杠杆——这是整篇论文最大的一个数字变化

  • 纯 GRPO Loss(无 CRE、无 TR、无 AW-BC):R1@0.5 = 46.7
  • CRE + AW-BC Loss(无 TR):R1@0.5 = 64.8(+18.1 点)

CRE + AW-BC 一步就吃掉了 18 个点的绝对提升,是 TaRO 全部数字改进里最大头的一块。原因也可以从 Table 5 里再拆开看:AW-BC Loss(对 advantage 为正的 rollout 做 BC)比纯 GRPO Loss 强 17+ 点、比 AW-BC without weighting 强 1.8 点、比 without 1(A>0)\mathbb{1}(A > 0) filter 强 1.7 点——advantage-weighted + positive-only filter 两个 trick 都不可少。CRE 的 caption 采样策略里,“CRE w/ Sample Captions”(kk[1,n][1, n] 均匀抽)比"CRE w/ All Captions"(全部塞进去)强 1.2 点,说明 caption 的多样性来源本身也重要。

TaRO Table 7: Temporal-Sensitive Reward 消融 — 扰动方式对比

Temporal Reward 的边际提升相对更小:Shuffle GT Boundary(64.8)比 Random Cropping(63.1)高 1.7 点、比 Shuffle Full Video(63.5)高 1.3 点。这一节的价值不在数字大小,而在方向验证——扰动必须精确打在"关键因素"上,随机扰动或全局扰动都会稀释信号。这也直接证明了 TaRO 范式的核心 assumption:perturbation sensitivity 只有针对关键因素时才是有效 reward signal

综合起来:CRE 是主 lever(+18 点),Temporal Reward 是精调(+1.3-1.7 点)——把两者贡献等量并列是错的。工程上如果只能实装一个组件,先做 CRE。

TaRO Fig 4: 定性对比 — TaRO reasoning 直接引用时间戳与视觉证据,Time-R1 生成的是模糊描述

Fig 4 的定性对比是这套方法最直观的证据:同一个 query(“the woman wipes her face with a brush”),Time-R1 生成一段 “The event ‘Woman wipes her face with a brush’ occurs towards the beginning of the video” 这种模糊描述,TaRO 生成的是 “From 0s to 2.7s: The woman applies makeup and looks at the camera. From 2.7s to 4.4s: The woman applies makeup on her face with a brush” —— 直接引用时间戳 + 视觉线索,正是"think with time"承诺的行为。

四、通用范式:扰动敏感度在 VLA、T2I、AD 上的可能应用

TaRO 的核心 idea 抽掉 VTG 皮之后是这样一句话:

当任务本身缺乏 verifiable reward,找一个"关键因素" kk,扰动它、观察模型 logit 下降 dd,把 dd 当作 reasoning 质量的 self-critique reward。

这个 pattern 的通用性来自三个特征:

  1. 不依赖外部 verifier——logit drop 是模型自己算的;
  2. 奖励的是 reasoning 而非 answer——直接监督 <think> 段落;
  3. 扰动方式定义了"什么是关键因素"——是 domain-specific inductive bias。

这三条几乎可以直接搬到我博客里已经讨论过的几个方向:

4.1 VLA closed-loop RL

VLA 训练里的 verifiable rewards(Chinchilla §9.5 里讨论过)仅限于闭环仿真里的碰撞、到达 GT、违规——都是 trajectory-level 的 outcome。VLA 里 reasoning path(“why this action”)本身没有可判 reward。TaRO 范式的 VLA 版可能是:

  • 关键因素:某个 waypoint 的观测帧、某段 action chunk 的关键帧、gripper 状态切换点;
  • 扰动方式:打乱关键帧顺序 / 遮住关键帧 / 替换成同场景其他帧;
  • Reward:模型对 “why I chose this action chunk” 这段 reasoning 的 logit 下降。

Qwen-VLA 的 Stage IV 用的还是经典 PPO,如果换成 TaRO 风格的 self-critique,就能对长尾场景的 reasoning 质量(不只是 outcome)做直接监督。

4.2 T2I alignment reward

MiniT2I paper-read 里讨论过的 alignment fine-tune,本质上是用少量高质数据把 prompt-image alignment 强化上去。但**“哪段 prompt 对应图上哪个 patch"这件事没有 verifiable ground truth**。TaRO 范式的 T2I 版:

  • 关键因素:prompt 里某个 attribute(“red hat”)对应生成图像的某个空间区域;
  • 扰动方式:把 prompt 里的 “red” 换成 “blue”,或 mask 掉图像的对应 patch;
  • Reward:模型对"这段 prompt 生成了这块像素"的 reasoning logit 下降。

这套 idea 已经在 grounded T2I 和 attention-guided sampling 里零散出现,但没人把 logit drop 直接当 GRPO reward 用过——TaRO 的 recipe 可以直接搬。

4.3 自动驾驶时序推理

自动驾驶 VLA 场景里,“why brake now"这类时序 reasoning 的价值远超"是否 brake"这个二值 outcome。TaRO 范式的 AD 版:

  • 关键因素:某个前车 cut-in 帧、某个红灯亮起帧、某个行人 emergence 帧;
  • 扰动方式:打乱这些"决策事件"帧的时序;
  • Reward:模型对 “brake because pedestrian appeared at t=3.2s” 这段 reasoning 的 logit 下降。

这套 recipe 可能是"让 AD VLA 学会解释自己决策"的最直接工程路径——比手动 label 大量 reasoning traces 便宜得多。

五、局限:不是万能钥匙

TaRO 范式有三个不能回避的局限:

  1. 需要能定义"关键因素"的 domain prior。VTG 里"边界附近的帧"是自然定义的关键因素,但在没有明确 boundary 概念的任务上(比如开放对话、创造性写作),“扰动什么"本身就是个开放问题。
  2. 扰动方式的选择带黑箱性。TaRO 报告 “shuffle GT boundary” 比 “shuffle random” 好 2 个点,但为什么这两种扰动方式的效果差距是 2 个点而不是 10 个点,理论上没有量化答案。这套 recipe 移植到新任务时需要 pilot experiment 试 3-5 种扰动方式再挑最好的
  3. 不能替代 verifiable reward,只是补充。TaRO 的 total reward 里 IoU 项仍在——temporal-sensitive reward 是 shaping 项,不是 primary reward。如果一个任务连粗粒度 verifiable metric 都没有(比如"这段翻译好不好”),TaRO 范式站不住。

六、放回博客视角

TaRO 值得写的原因不在 VTG SOTA 那几个点——VTG 是一个足够 niche 的领域,纯 benchmark 提升的社区受众有限。真正值得关注的是它把 “self-critique via perturbation sensitivity” 抽成了一个可迁移的 recipe

RL post-training 从 2024 到 2026 一直在追问一个问题:verifiable reward 之外,还有什么可靠的 reward source?

R1 给了一个答案:找可判定的任务(math、code)。 Process reward model(PRM)给了另一个:训一个 reward model 打 step-level 分数。 Kaiming 系 iMF 在 flow matching 上给了第三个:用模型自己的 boot-strap 目标做 self-supervision。

TaRO 加上了第四个:用 controlled perturbation 探测模型的 reasoning 是否 grounded。这四条 recipe 覆盖了不同的场景,没有哪一条能通吃——但把它们放在一起,2026 年 RL post-training 的工具箱基本齐了。

对做 VLA、做 T2I、做 AD reasoning 的实践者,TaRO 具体的贡献是:在"没有直接 verifiable metric 又需要 anchor 到具体证据"的任务上,你不必再手动 label reasoning traces,也不必训 process reward model——扰动 + logit drop 是一条几乎零额外成本的 self-critique 通道。这一条工程结论比 VTG SOTA 有意义得多。


References

#引用链接
1Zheng, M., Yin, Z., Yang, Y., Peng, Y., Liu, Y. (2026). Temporal-Aware Reasoning Optimization for Video Temporal Grounding. ICML 2026.arXiv:2606.09248v1 · GitHub · Project Page
2Wang, Y. et al. (2026). Time-R1: Post-training LLM for Temporal Reasoning.arXiv:2503.13377
3Shao, Z. et al. (2024). DeepSeekMath: Pushing the Limits of Mathematical Reasoning (GRPO).arXiv:2402.03300
4DeepSeek-AI (2025). DeepSeek-R1: Incentivizing Reasoning Capability in LLMs via Reinforcement Learning.arXiv:2501.12948
5Gao, J. et al. (2017). TALL: Temporal Activity Localization via Language Query (Charades-STA benchmark).ICCV 2017
6Krishna, R. et al. (2017). Dense-Captioning Events in Videos (ActivityNet Captions).arXiv:1705.00754
7Lei, J. et al. (2021). QVHighlights: Detecting Moments and Highlights in Videos via Natural Language Queries.arXiv:2107.09609
8Bai, S. et al. (2025). Qwen2.5-VL Technical Report.arXiv:2502.13923
9Bai, S. et al. (2025). Qwen3-VL Technical Report.arXiv:2511.21631

同主题强相关阅读