VideoMend / idea /README.md
ZWJ666's picture
Upload folder using huggingface_hub
0dd9a1c verified
|
Raw History Blame Contribute Delete
29.4 kB
# VideoMend: Mending Temporal Continuity in Video Reasoning
## 核心 Idea 整理(对照论文 + 代码)
> **论文**:VideoMend: Mending Temporal Continuity in Video Reasoning
> **投稿**:NeurIPS 2026
> **核心范式转变**:`sample-then-understand` → `sample-then-reconstruct-then-understand`
---
## 目录
1. [问题定义](#1-问题定义)
2. [核心洞见与范式转变](#2-核心洞见与范式转变)
3. [方法一:Ref-Delta Chain-of-Thought](#3-方法一ref-delta-chain-of-thought)
4. [方法二:数据构建(Data Construction)](#4-方法二数据构建data-construction)
5. [方法三:Delta-Mask GRPO(DM-GRPO)](#5-方法三delta-mask-grpodm-grpo)
6. [奖励函数完整设计](#6-奖励函数完整设计)
7. [训练全流程](#7-训练全流程)
8. [对比方法](#8-对比方法)
9. [评测结果](#9-评测结果)
10. [附录:核心符号速查](#10-附录核心符号速查)
---
## 1. 问题定义
### 1.1 根本矛盾
> **video understanding semantically relies on temporal continuity, yet computational constraints mandate discrete sampling at the input.**(论文 §1)
由于计算开销,现有 Video LLM 一律采用**帧采样**(frame sampling):从连续视频 $\mathcal{V} = \{v(t)\}_{t=0}^T$ 中提取稀疏的 $N$ 帧作为输入:
$$F = \{f_1, f_2, \ldots, f_N\}, \quad f_i = v(t_i), \quad 0 \leq t_1 < t_2 < \cdots < t_N \leq T$$
这一设计在**输入层面**天然丢弃了帧间时序动态 $\delta_i$(即从 $v(t_i)$ 到 $v(t_{i+1})$ 的视觉变化),导致模型的推理空间仅覆盖 $N$ 个离散时间点的视觉内容,而 $\delta_i$ 在推理链 $z$ 中没有任何显式表示(论文 §3.1)。
### 1.2 两类 Shortcut 行为
| Shortcut | 描述 | 典型例子 |
|----------|------|---------|
| **单帧偏差**(Single-frame Bias) | 从单帧显著物体推断答案 | 看到门 → 预测"开门",实际动作是"关门" |
| **背景偏差**(Background Bias) | 推理锚定在静态场景背景上 | 看到厨房 → 预测"做饭",实际是"洗碗" |
**三类帧间信息的丢失**(论文 §1):
- 动作**方向性**(directionality):opening vs. closing
- 运动**动态变化**(motion dynamics):accelerating vs. decelerating
- 渐进式**状态转变**(gradual state transitions)
---
## 2. 核心洞见与范式转变
### 2.1 关键问题
> **Can the reasoning structure itself reconstruct inter-frame temporal information, activating the model's ability to re-link discrete frames into a continuous temporal stream?**(论文 §1)
关键帧选取方法从**输入侧**优化,但无论如何选帧,模型收到的仍是离散快照,帧间变化在推理层仍是隐式的。
大规模视频-文本预训练已经赋予模型丰富的时序先验,**问题不在于模型不具备这种能力,而在于当前的推理范式没有激活它**。
### 2.2 解决思路
不把采样帧当作独立快照处理,而是让模型在推理链中**主动选取关键时刻作为静态锚点(Reference),并对锚点之间的时间区间显式描述视觉变化(Delta)**,在推理层面弥补帧采样引入的信息缺口。Reference 和 Delta 的选定是灵活的,模型根据内容自主决定在哪些时刻落锚、哪些区间值得描述变化,而非机械地对每个采样帧逐一处理:
```
旧范式:sample-then-understand
↓
新范式:sample-then-reconstruct-then-understand
```
### 2.3 三大贡献(论文 §1)
1. **Ref-Delta Chain-of-Thought**:在推理结构层面显式建模帧间时序变化,实现范式转变
2. **时序流数据构建**:用语义反义对(方向感知)+ 对称速度构造(动态感知)提供定向训练信号
3. **DM-GRPO**:通过帧掩码反事实验证 Delta 的视觉真实性,确保帧间变化建模来自视觉观察而非语言先验
---
## 3. 方法一:Ref-Delta Chain-of-Thought
### 3.1 设计动机
在当前范式下,$\delta_i$(采样帧间的时序动态)在推理链 $z$ 中没有任何显式表示。Ref-Delta CoT 的核心目标是:**将推理链结构本身改造为时序重建的载体**,使模型能在推理层面对帧间时序动态进行显式建模。
### 3.2 推理结构
Ref-Delta CoT 将推理链 $z$ 组织为三类组件的交替结构(论文 §4.1):
| 组件 | 内容 | 关键特性 |
|------|------|---------|
| **Reference** | 对某个时刻视觉内容的完整静态描述(主体位置/姿态/空间关系) | **灵活选取**:模型自主决定在哪些时刻落锚,无需覆盖每个采样帧 |
| **Delta** | 对某段时间区间内视觉变化的显式描述(动作方向/运动速度/状态转换) | **灵活跨度**:时间区间可横跨多个采样帧,模型自主决定哪段区间值得描述 |
| **Reasoning Summary** | 整合所有 Reference-Delta 对,推导最终答案 | 完整变化链的时序闭合 |
**灵活性是关键**:Reference 的锚定时刻和 Delta 的时间区间由模型根据视频内容自主决定,而非强制映射到每个采样帧。这使模型能将注意力集中在语义变化显著的区间,对变化平缓的区段可以跳过或用 "Negligible change" 标注。
### 3.3 格式规范(代码:`SFT/sft_video.py`)
```
<think>
Reference frame at <time>HH:MM:SS.m</time>: [该帧完整静态描述,主体/姿态/空间关系]
From <time_range>HH:MM:SS.m - HH:MM:SS.m</time_range>,
<delta>[帧间视觉变化:动作方向/运动速度/状态转换,可标注 "Negligible change"]</delta>
Reference frame at <time>HH:MM:SS.m</time>: [下一关键帧描述]
From <time_range>HH:MM:SS.m - HH:MM:SS.m</time_range>,
<delta>[...]</delta>
...(交替重复)...
Reasoning Summary: [整合完整变化链,推导最终答案]
</think>
<answer>X</answer>
```
### 3.4 论文完整示例(论文 Figure 1)
**问题**:What happens to the door during the video?
**Ground Truth**:The door is first closed, then opened again, and finally closed for a second time.
```
VideoMend: <think>
Reference frame at <time>00:00:00.5</time>: A person stands inside a dimly lit
entryway, silhouetted against the bright exterior visible through an open doorway.
The door itself is swung wide open to the right, and the person is holding a
long-handled tool near the threshold.
From <time_range>00:00:00.5 - 00:00:12.9</time_range>, <delta>the person sweeps
the floor area immediately inside the open doorway, moving the tool back and forth
while the door remains in the fully open position</delta>.
Reference frame at <time>00:00:12.9</time>: The person has finished sweeping near
the threshold, stands upright, and begins to reach for the door handle with their
left hand. The door is still wide open.
From <time_range>00:00:12.9 - 00:00:15.9</time_range>, <delta>the person pulls
the door inward, causing it to swing from the fully open position to a fully closed
position, blocking the view of the outside street and car</delta>.
...
Reasoning Summary: The video starts with the door open. The person closes it,
sweeps, opens it again, sweeps, and finally closes a second time before leaving
the area. The sequence is Open → Closed → Open → Closed.
</think>
<answer>During the video, the door is first closed, then opened again, and
finally closed for a second time.</answer>
```
### 3.5 核心价值
- **无 Delta 时**:模型只能感知每帧门的静态状态,无法捕捉多次开关门的完整时序过程
- **有 Delta 时**:完整状态链 Open→Closed→Open→Closed 从 Delta 中显式构建出来
推理链 $z$ 从"仅含离散帧描述的序列"扩展为"显式包含帧间时序动态 $\delta_i$ 的结构化推理链"。
---
## 4. 方法二:数据构建(Data Construction)
### 4.1 设计原则(论文 §4.2)
Ref-Delta CoT 提供了时序流重建的推理结构,而这个流承载着**变化的方向(direction)**、**变化的节奏(dynamics/pace)**以及**渐进式状态转变**。忠实重建 $\delta_i$ 要求模型能准确感知方向和动态。
大规模视频-文本预训练已赋予模型丰富的时序先验,SFT 的关键作用是通过**定向信号激活这些潜在能力**。
**数据组成**:
- 基础训练数据:~10k 条真实视频 QA(Ref-Delta 格式标注)——足以教会推理结构,但缺乏方向/动态的定向信号
- 定向合成数据:~2k 条(约占 SFT 总数据的 **~17%**)——沿方向感知和动态感知两个维度构造
### 4.2 方向感知数据(Direction Perception)
**目标**:训练模型感知 $\delta_i$ 的变化方向,涵盖空间运动方向、状态转变方向、事件时序顺序(论文 §4.2.1)。
#### A. 语义反义对(Antonymous Semantic Pairs)
**来源**:Chirality-in-Action 数据集(SSv2 / EPIC-Kitchens / Charades)
**构造方式**:
- 找到同一场景中方向相反的动作对(手性对),如:
- `opening door` ↔ `closing door`
- `picking up` ↔ `putting down`
- `moving left` ↔ `moving right`
- `filling` ↔ `emptying`
- 两段视频**时间拼接**(temporal concatenation)或**空间拼接**(spatial concatenation),位置随机
**设计关键**:两段视频共享**完全相同的静态场景语义**,迫使模型依靠 Delta 中的方向信息而非 Reference 中的场景线索(论文 §4.2.1)。
**贡献**:~880 条 QA(代码:`data_preparation/make_chiral_pairs.py`)
#### B. 正反向播放 QA(Forward/Reverse Playback)
- 同一视频生成正向/反向播放对,1:1 平衡
- 覆盖**时序顺序**维度
- 直接考察模型对事件发展顺序的感知
### 4.3 动态感知数据(Dynamics Perception)
**目标**:训练模型感知 $\delta_i$ 的**变化节奏**(pace of change)(论文 §4.2.2)。
**核心设计:对称速度构造(Symmetric Speed Constructions)**
| 视频类型 | 语义特征 | 速度变化 | 视频来源 |
|---------|---------|---------|---------|
| 短视频(简单语义) | 时长 3~15s,单一动作 | + **1/3× 减速** | STAR / Charades / perception_test |
| 长视频(复杂语义) | 时长 10~60s,多步骤 | + **3× 加速** | ActivityNet / YouTube / YouCook / NextQA |
**为什么要"对称构造"**(论文 §4.2.2):
> 刻意打破**语义复杂度与速度之间的虚假相关性**,防止模型学到"复杂 = 慢,简单 = 快"的 shortcut。
- 简单动作减速:强制使相邻帧高度相似,直接对抗**特征平滑陷阱**
- 复杂动作加速:强制使相邻帧跳跃较大,训练模型不依赖逐帧平滑推断
**拼接方式**:原速视频 + 速度变化视频,位置随机,要求模型判断哪个是原速。辅以单视频速度判断 QA 作为补充。
**贡献**:~800 条 QA(代码:`data_preparation/make_speed_pairs.py`)
### 4.4 时间戳叠加
所有视频均叠加 `HH:MM:SS` 格式时间戳,与 Ref-Delta CoT 中的时序标注精度对齐(论文 §4.2.2)。
### 4.5 GRPO 合并数据集
| 数据源 | 条数 | 来源 |
|--------|------|------|
| Video-R2 GRPO 全集 | ~4804 | Video-R2 GRPO dataset |
| 手性动作对(方向感知) | ~880 | Chirality-in-Action |
| 速度对比(动态感知) | ~800 | 自构建 |
| SSv2 velocity_pair | ~1430 | Video-R1-260k 中提取 |
| **合计** | **~7914** | `build_grpo_dataset.py` |
---
## 5. 方法三:Delta-Mask GRPO(DM-GRPO)
### 5.1 SFT 的根本局限(论文 §4.3)
SFT 训练后,模型学会了输出 Ref-Delta 格式的推理链。然而:
> SFT only teaches the model "how to write" through imitation, without guaranteeing that Deltas are grounded in visual observation. The model may exploit language priors, fabricating plausible-looking Deltas solely from the static scene descriptions in References.
**"幻觉 Delta"的危险性**:
- 格式正确(符合 Ref-Delta 规范)
- 答案可能仍然正确(语言先验足够强)
- **既无法被格式检查发现,也无法被标准 GRPO 的准确率奖励发现**
### 5.2 反事实帧掩码(Counterfactual Frame Masking)
**核心思想**(论文 §4.3):
> If a Delta genuinely reflects visual observation of $\delta_i$, then removing its corresponding frames should affect $\pi_\theta$'s reasoning performance.
**具体操作**(论文 §4.3,代码:`RL/trainer/grpo_trainer.py`):
对每个训练样本 $(F, q)$,随机选取推理链 $z$ 中的**一个 Delta**,定位其时间区间 $[s_d, e_d]$ 内的采样帧索引:
$$\mathcal{I}_d = \{k : \lfloor t_k \rfloor \in [\lfloor s_d \rfloor, \lfloor e_d \rfloor]\}$$
对 $\{f_k\}_{k \in \mathcal{I}_d}$ **像素全部置零**,但**保留时间位置**,构造掩码视频 $\tilde{F}$。
**时间位置保留的重要性**:确保 $\pi_\theta$ 感知到"这里有一帧,但内容不可见",而非"这里没有帧"。
```python
# 代码实现(grpo_trainer.py)
if self.delta_mask and inputs[0].get('mask_patterns'):
pattern = random.choice(inputs[0]['mask_patterns'])
masked_video = video_inputs[0].clone()
for idx in pattern['zero_frame_indices']:
if idx < masked_video.size(0):
masked_video[idx] = 0 # 像素置零,保留时间位置
shuffled_video_inputs = [masked_video]
```
将原始视频 $(F, q)$ 和掩码视频 $(\tilde{F}, q)$ 同时送入 $\pi_\theta$,采样两组回答:
- **原始组**(origin group):$\{o_i\}_{i=1}^G$
- **掩码组**(delta-masked group):$\{\tilde{o}_i\}_{i=1}^{\tilde{G}}$
通过比较两组推理性能,验证 Delta 的视觉真实性。
### 5.3 关键 Delta 判定与 Oracle 预标注
**关键问题**:反事实对比并不总能产生有效信号(论文 §4.3):
- 若被掩帧**不关键**:性能差距反映 $\pi_\theta$ 对这些帧的真实依赖程度 → **反事实检验有效**
- 若被掩帧**关键**(对正确回答不可缺少):性能下降是信息缺失的必然结果,而非视觉依赖的证据 → **反事实检验无效**
**解决方案:离线 Oracle 预标注流水线**
使用**显著强于** $\pi_\theta$ 的 Oracle 模型(如 Qwen2.5-VL-72B)对每条数据**预先标注**:
```json
{
"mask_patterns": [
{
"zero_frame_indices": [3, 4, 5],
"time_range": "0.3 - 0.6",
"oracle_correct": true // Oracle 在掩码视频上仍能答对 → 非关键帧, c=1
},
{
"zero_frame_indices": [8, 9],
"time_range": "0.8 - 1.0",
"oracle_correct": false // Oracle 也答错 → 关键帧, c=0
}
]
}
```
| `oracle_correct` | 含义 | 帧的性质 | 检验有效性 | 标记 |
|-----------------|------|---------|----------|------|
| `True` | Oracle 在 $\tilde{F}$ 上仍答对 | **非关键帧**,答案可从其余帧推出 | **有效** | $c=1$ |
| `False` | Oracle 在 $\tilde{F}$ 上也答错 | **关键帧**,这些帧对答案至关重要 | **无效** | $c=0$ |
### 5.4 奖励设计(论文 §4.3 公式(1)(2))
设 $\tilde{p}$ 为掩码组中回答正确的比例,Delta-Mask 奖励 $r_{\text{dm}}$ 定义为:
$$r_{\text{dm}} = \begin{cases}
\alpha, & c=1 \text{ 且 } \tilde{p} \geq \tau \\
\alpha + \gamma, & c=1 \text{ 且 } \tilde{p} < \tau \\
0, & c=0
\end{cases} \tag{1}$$
**$r_{\text{dm}}$ 仅施加于原始组中回答正确的回答**,每个 $o_i$ 的最终奖励为:
$$R_i = \begin{cases}
r_i + r_{\text{dm}}, & o_i \text{ 答对} \\
r_i, & \text{否则}
\end{cases} \tag{2}$$
基础奖励:$r_i = r_{\text{acc}} + \lambda \cdot r_{\text{ts}}$
**参数设置**(论文 §4.3):$\alpha = 0.3,\ \gamma = -0.2,\ \tau = 0.5,\ \lambda = 0.2$
**奖励直觉解释**:
| 情况 | $r_{\text{dm}}$ | 直觉 |
|------|----------------|------|
| $c=1$,$\tilde{p} \geq \tau$(掩码后多数仍答对) | $+0.3$ | Delta 视觉真实,模型不过度依赖被掩帧,行为合理 |
| $c=1$,$\tilde{p} < \tau$(掩码后多数答错) | $+0.1$($0.3-0.2$) | 仍有小奖励,但模型过度依赖了那些其实不必要的帧 |
| $c=0$(被掩帧关键) | $0$ | 无法区分好坏,中性处理 |
### 5.5 优势计算与策略优化
优势在**原始组内部**计算(论文 §4.3):
$$A_i = \frac{R_i - \text{mean}(\{R_j\}_{j=1}^G)}{\text{std}(\{R_j\}_{j=1}^G)}$$
策略优化遵循标准 GRPO,参考策略为 $\pi_{\text{ref}}$。
---
## 6. 奖励函数完整设计
### 6.1 总奖励组成
$$r_i = r_{\text{acc}} + \lambda \cdot r_{\text{ts}}, \quad \lambda = 0.2$$
| 组成 | 范围 | 说明 |
|------|------|------|
| $r_{\text{acc}}$ | $\{0, 1\}$ | 答案准确率(主奖励):多选题/数值/自由问答等 |
| $r_{\text{ts}}$ | $[0, 1]$ | 时间戳物理合理性(门控项) |
| $r_{\text{dm}}$ | $\{0, \alpha, \alpha+\gamma\}$ | Delta-Mask 奖励(核心创新,仅对答对回答施加) |
### 6.2 时间戳奖励 $r_{\text{ts}}$(代码:`RL/grpo.py`)
三项物理约束检查:
- **可解析性**(parseability):时间戳格式正确、可解析
- **单调递增**(monotonic increase):后续时间戳不早于前面
- **时长约束**(duration bounds):不超过视频总时长
### 6.3 格式奖励(`sf_format_reward`,代码:`RL/grpo.py`)
Ref-Delta 结构完整性,五项子奖励:
| 子项 | 检查内容 | 权重 |
|------|---------|------|
| F1 | `<think>...</think>` 结构存在 | 0.15 |
| F2 | `<answer>...</answer>` 非空 | 0.15 |
| F3 | 至少 1 个参考帧 `<time>` 标签 | 0.25 |
| F4 | 至少 1 个 `<time_range>+<delta>` 配对 | 0.25 |
| F5 | 末尾推理总结段存在 | 0.20 |
**门控逻辑**:格式奖励 < 0.4 时,$r_{\text{ts}}$ 和 $r_{\text{dm}}$ 自动清零,防止格式混乱时的奖励噪声。
---
## 7. 训练全流程
```
┌──────────────────────────────────────────────────────────────────┐
│ 数据构建阶段 │
├──────────────────────────────────────────────────────────────────┤
│ 基础真实视频 QA(Ref-Delta 格式标注) ~10k 条 │
│ ├─ 方向感知:手性反义对 + 正反向播放 ~880 条 │
│ │ └─ make_chiral_pairs.py │
│ └─ 动态感知:对称速度构造(1/3×减速/3×加速) ~800 条 │
│ └─ make_speed_pairs.py │
│ 合计 SFT 数据:~12k,合成数据占比 ~17% │
│ │
│ GRPO 数据:Video-R2(4804) + 手性(880) + 速度(800) + SSv2(1430) │
│ └─ build_grpo_dataset.py → grpo_combined_dataset.json │
└──────────────────────────────────────────────────────────────────┘
↓
┌──────────────────────────────────────────────────────────────────┐
│ SFT 阶段 │
├──────────────────────────────────────────────────────────────────┤
│ 基础模型:Qwen2.5-VL-7B-Instruct │
│ 版本 A(v9):SFT/sft_video.py,时间戳精度 0.1s(HH:MM:SS.m) │
│ 版本 B(v5e):SFT/sft_video_v5e.py,时间戳整秒精度 │
│ │
│ 学习目标:输出符合 Ref-Delta CoT 规范的推理链 │
│ ├─ Reference:静态锚点描述 │
│ ├─ Delta:帧间动态变化描述 │
│ └─ Reasoning Summary:推理总结 │
│ │
│ 输出:SFT-v5e-32f 或 SFT-v9-32f │
└──────────────────────────────────────────────────────────────────┘
↓
┌──────────────────────────────────────────────────────────────────┐
│ Oracle 预标注阶段 │
├──────────────────────────────────────────────────────────────────┤
│ Oracle 模型(Qwen2.5-VL-72B)离线标注每条 GRPO 数据: │
│ ├─ 从推理链中随机选取 Delta,提取时间区间 [s_d, e_d] │
│ ├─ 定位帧索引 I_d,像素置零,构造掩码视频 F̃ │
│ ├─ Oracle 在 F̃ 上回答问题 │
│ └─ 记录 oracle_correct:True(c=1,非关键) / False(c=0,关键) │
└──────────────────────────────────────────────────────────────────┘
↓
┌──────────────────────────────────────────────────────────────────┐
│ DM-GRPO 阶段 │
├──────────────────────────────────────────────────────────────────┤
│ 初始化:SFT 模型(πθ)+ 参考策略(πref) │
│ 脚本:RL/grpo.py(delta_mask=True) │
│ RL/trainer/grpo_trainer.py │
│ │
│ 每个训练步: │
│ 1. 原始视频 (F,q) → πθ 采样 G 个回答 {oi} │
│ 2. 随机选 mask_pattern,帧置零 → 掩码视频 F̃ │
│ 3. 掩码视频 (F̃,q) → πθ 采样 G̃ 个回答 {õi} │
│ 4. 计算 racc(原始组准确率)、rts(时间戳合理性) │
│ 5. 根据 oracle_correct 和 p̃ 计算 rdm │
│ 6. Ri = racc + 0.2*rts + rdm(仅对 oi 答对的回答施加 rdm) │
│ 7. Ai = (Ri - mean) / std,标准 GRPO 更新 │
│ │
│ 关键参数:α=0.3, γ=-0.2, τ=0.5, λ=0.2 │
│ 输出:DeltaMask-GRPO-v5e 模型 │
└──────────────────────────────────────────────────────────────────┘
↓
┌──────────────────────────────────────────────────────────────────┐
│ 评测阶段 │
├──────────────────────────────────────────────────────────────────┤
│ 脚本:Eval/eval.py │
│ 基准:TempCompass + MVBench │
└──────────────────────────────────────────────────────────────────┘
```
---
## 8. 对比方法
### 8.1 T-GRPO(Video-R1,NeurIPS 2025)
- **时序扰动**:随机打乱帧序(Random Temporal Shuffling)
- **奖励**:打乱视频上答对额外 $+0.3$,答错 $0$
- **局限**:随机打乱只是"破坏时序",不能针对性复现减速视频的特征平滑效应;且无格式约束和 Delta 真实性验证
### 8.2 SF-GRPO(半融合 GRPO,本项目早期探索)
- **时序扰动**:$\alpha$-blending 帧混合
$$\tilde{f}_i = \alpha \cdot f_i + (1-\alpha) \cdot \tilde{f}_{i-1}, \quad \alpha = 0.5$$
- **奖励**:三级一致性奖励(orig对+smooth对: +0.3,orig对+smooth错: +0.1,orig错: 0)
- **优于 T-GRPO**:能精准复现减速视频的特征平滑效果
- **局限**:混合操作改变视频语义;同样无 Delta 真实性验证机制
### 8.3 DM-GRPO 的进步
| 维度 | T-GRPO | SF-GRPO | **DM-GRPO** |
|------|--------|---------|-------------|
| 时序扰动方式 | 随机帧打乱 | 帧加权混合 | **目标帧置零(反事实)** |
| 推理格式约束 | 无 | 无 | **Ref-Delta CoT** |
| Delta 真实性验证 | 无 | 无 | **Oracle 反事实检验** |
| 时间戳奖励 | 无 | 无 | **有($r_{\text{ts}}$)** |
| 信号来源可解释性 | 低 | 中 | **高(可追溯到具体 Delta)** |
代码实现对比(`RL/trainer/grpo_trainer.py`):
```python
if self.delta_mask and inputs[0].get('mask_patterns'):
# DM-GRPO:Oracle预标注帧,像素置零,反事实验证
pattern = random.choice(inputs[0]['mask_patterns'])
masked_video = video_inputs[0].clone()
for idx in pattern['zero_frame_indices']:
if idx < masked_video.size(0):
masked_video[idx] = 0
shuffled_video_inputs = [masked_video]
elif self.sf_temporal:
# SF-GRPO:α-blending帧混合
video_tensor = video_inputs[0].clone()
alpha = self.smoothing_alpha
for i in range(1, video_tensor.size(0)):
video_tensor[i] = alpha * video_tensor[i] + (1-alpha) * video_tensor[i-1]
video_tensor = video_tensor.round()
shuffled_video_inputs = [video_tensor]
else:
# T-GRPO:随机帧打乱
indices = torch.randperm(video_inputs[0].size(0))
shuffled_video_inputs = [video_inputs[0][indices]]
```
---
## 9. 评测结果
### 9.1 TempCompass(mean_acc)
| 模型 | rep=1.0 | rep=1.1 | 备注 |
|------|---------|---------|------|
| Qwen2.5-VL-7B-Instruct(基础) | 0.7565 | 0.7566 | baseline |
| SFT-v5e-32f(Ref-Delta SFT) | 0.7255 | 0.7194 | SFT 轻微下降 |
| SFT-v5e-clean-32f | 0.7154 | 0.7103 | — |
| SFT-v5e-format-fixed-32f | 0.7129 | 0.7134 | — |
| DM-GRPO-v5e(RL,整秒) | 0.6554 | 0.7203 | rep=1.0 格式兼容问题 |
| DM-GRPO-v5(SFT-v9,16帧) | — | 0.7290 | — |
| **DM-GRPO-v4(SFT-v9,32帧)** | — | **0.7349** | **当前最好 RL 版本** |
### 9.2 关键观察
1. **SFT 后轻微下降**:引入 Ref-Delta 格式后 TempCompass 约降 3pp(~75.6% → ~72.5%),可能因为格式约束限制了模型的自由推理
2. **DM-GRPO 有效部分恢复**:RL 训练后 v4 回升至 73.49%,说明反事实奖励信号有正向作用
3. **帧数影响明显**:32帧(v4: 73.49%)> 16帧(v5: 72.90%)
4. **rep 参数敏感性**:DM-GRPO-v5e 在 rep=1.0 时骤降至 65.5%,rep=1.1 回升到 72.0%,反映格式兼容性问题待解决
### 9.3 待解决问题
- [ ] SFT 阶段 TempCompass 下降 3pp 的根因分析(格式约束 vs 数据分布)
- [ ] DM-GRPO 在 MVBench 等其他基准上的表现
- [ ] rep 参数对格式兼容性的系统性测试
- [ ] Oracle 预标注质量评估(准确率/覆盖率)
- [ ] DM-GRPO 与 Figure 1 所示完整推理链的质量分析
---
## 10. 附录:核心符号速查
| 符号 | 定义 |
|------|------|
| $\mathcal{V} = \{v(t)\}_{t=0}^T$ | 连续视频 |
| $F = \{f_1, \ldots, f_N\}$ | 采样帧集合 |
| $\delta_i$ | 帧间时序动态($v(t_i) \to v(t_{i+1})$ 的视觉变化) |
| $z$ | 推理链(chain of reasoning) |
| $\pi_\theta$ | 训练模型 |
| $\pi_{\text{ref}}$ | 参考策略(GRPO 基准) |
| $\tilde{F}$ | 掩码视频(被掩帧像素置零,时间位置保留) |
| $\mathcal{I}_d$ | Delta 时间区间 $[s_d, e_d]$ 内的采样帧索引集合 |
| $c$ | Oracle 标注(1=非关键帧,0=关键帧) |
| $\tilde{p}$ | 掩码组中回答正确的比例 |
| $r_{\text{acc}}$ | 答案准确率奖励 $\in \{0,1\}$ |
| $r_{\text{ts}}$ | 时间戳物理合理性奖励 $\in [0,1]$ |
| $r_{\text{dm}}$ | Delta-Mask 奖励 $\in \{0, \alpha, \alpha+\gamma\}$ |
| $\alpha=0.3,\ \gamma=-0.2,\ \tau=0.5,\ \lambda=0.2$ | DM-GRPO 超参数 |