Video-R4:像人类一样“反复咀嚼”视频,让文本密集问答不再漏看关键帧
核心问题:如何让大模型在文本繁多、画面一闪而过的视频里,像人一样“暂停—放大—重读”,不再漏掉关键信息?
本文欲回答的核心问题
-
为什么传统视频问答模型总在“小字一闪而过”场景下翻车? -
Video-R4 提出的“视觉反刍”到底是什么?它如何一步步实现? -
训练这样的模型需要哪些数据、哪些技巧? -
它在真实 benchmark 上带来了多少提升?能否直接迁移到文档、幻灯片等静态多页场景? -
如果我想复现或试用,该怎么安装、训练、调优?
1. 单遍浏览的瓶颈:漏看、幻觉、无法回头
传统视频 LMM 的典型流程只有三步:
-
等间隔抽帧 → 2. 一次编码 → 3. 文本链式思考。
问题也随之而来:
-
小字号文本只出现 0.2 s,被跳帧; -
初始帧分辨率太低,OCR 直接认错; -
模型一旦“脑补”出答案,就无法再回头核对像素。
结果: 在 M4-ViteVQA 这类“文本密集视频问答”基准上,7B 模型单遍推理的 Exact-Match 仅 26.5%,人类却能做到 85%+。
2. Video-R4 的解决思路:把“暂停—放大—重读”做成可执行接口
核心机制:
“读→检索→重聚焦→再强化”的封闭循环,让模型在 T 次迭代里主动决定:
-
哪一帧最值得再看? -
哪个区域需要放大? -
重新编码后答案是否更确定?
技术落地 = 两个原子动作 + 一个状态更新:
-
Clip(时域裁剪):输入帧序列,输出关键子片段; -
Crop(空域裁剪):输入单帧+框,输出放大后重编码向量; -
Reasoning State:每轮把新向量与原隐态融合,更新答案置信度。
场景示例:
“视频中 0:34 出现一行白字‘Yield 0.83’,0:35 就被切换。”
-
第 1 轮:模型先 clip 出 0:30-0:40 片段,发现底部有模糊文字; -
第 2 轮:crop 放大底部 1/4 区域,OCR 得到“Yield 0.83”; -
第 3 轮:把“0.83”与问题“该反应产率是多少?”匹配,置信度 0.92,停止。
3. 数据:可执行的“反刍”轨迹从哪里来?
作者从 M4-ViteVQA 训练集出发,设计“规则匹配 → 模板填充 → 人工质检”三步:
-
规则匹配:用编辑距离模糊匹配答案与 OCR/检测标签,召回候选帧与框; -
模板填充:用 Qwen2.5-VL 生成“clip/crop→描述→推理”三元组,强制每步必须指向真实像素; -
人工质检:开发快速浏览工具,核对每步框与答案的因果链,剪除幻觉。
最终得到:
-
Video-R4-CoT-17k:17 000 条单步或复合操作监督轨迹,用于 SFT; -
Video-R4-RL-30k:30 000 条仅给“最终答案奖励”的轨迹,用于强化学习。
4. 多阶段训练:先学会“单个工具”,再学会“组合拳”
| 阶段 | 数据 | 目标 | 关键设置 |
|---|---|---|---|
| DRP-SFT | 7k 单操作轨迹 | 让模型分别精通 clip 或 crop | 每条样本只开放一个工具接口 |
| RLd | 15k RL 轨迹 | 用奖励引导模型自己决定“何时停” | curiosity 奖励防止过度/过少调用工具 |
| CRP-SFT | 10k 复合轨迹 | 把两个工具混到一起 | 允许单条轨迹内交替 clip→crop→clip |
| RLc | 剩余 15k 轨迹 | 在真实混合场景里微调策略 | 加入多样性、代表性、好奇心三合一奖励 |
反思:
“先拆后合”不是噱头。Fig-7 曲线显示,跳过 DRP 直接做 CRP,下游 Acc 掉 4.3 点;把 RL 放到最后,比单阶段 RL 收敛更快且绝对值高 2.8 点。原子操作先学到位,组合阶段才不至于“手忙脚乱”。
5. 奖励函数设计:让模型“看得广、看得精、还不偷懒”
总奖励 R′ = R_base + λ_div·R_div + λ_rep·R_rep + λ_cur·R_cur
-
多样性 R_div:鼓励同一轨迹内选区特征两两距离大,防止反复框同一位置; -
代表性 R_rep:让被选帧在特征空间覆盖尽量多的“聚类中心”,减少漏帧; -
好奇心 R_cur:当全局调用率 < 阈值 H 时给 bonus,> N 次时给惩罚,防止模型“懒得放大”或“放大成瘾”。
场景示例:
在 40 页幻灯片视频中,模型若只反复裁剪第 1 页标题,R_div 会下降;若只选第 1、11、21、31 页做代表,R_rep 会上升;若 8 次回答里 7 次都调用 crop,R_cur 的负项会把分数拉回。
6. 实验结果:文本密集视频问答新 SOTA
M4-ViteVQA 测试集(3 个 Split 均值)
| Model | EM ↑ | ANLS ↑ |
|---|---|---|
| Qwen2.5-VL-7B(基准) | 24.3 | 39.6 |
| Video-R1-7B(RL 同行) | 37.1 | 48.3 |
| Pixel-Reasoner(同样像素级 RL) | 58.9 | 65.3 |
| Video-R4-7B(本文) | 64.2 | 70.0 |
关键观察:
-
允许推理时增加 rumination 步数(T=1→5),EM 单调上升 +6.4 点,验证“测试时缩放”效应; -
在同样 7B 量级下,Video-R4 比第二名 Pixel-Reasoner 高 5.3 EM,且无需外部检测器; -
人类依旧 85+ EM,说明像素级重读仍有上限,但模型已把“漏看”错误降低一半以上。
7. 零样本迁移:视频里练出的“暂停—放大”习惯,文档/幻灯片同样好用
| Task | Benchmark | 零样本 EM/Acc | 之前最佳(需训练) |
|---|---|---|---|
| 多页文档 QA | MP-DocVQA | 53.2 | Hi-VT5 48.3 |
| 幻灯片 QA | SlidesVQA | 43.0 EM / 52.2 F1 | M3D 33.5 EM |
| 通用视频 QA | Video-MMMU | 52.2 Acc | Video-R1 49.8 |
解读:
文本在时间和空间上分散越厉害,Video-R4 的优势越大。Educational lecture 视频与多页 PDF 对模型而言都是“先 clip 到关键页/帧,再 crop 读小字”——训练阶段习得的工具链无缝迁移。
8. 快速上手:安装、推理、微调一条命令
# 1. 环境
conda create -n video-r4 python=3.10
conda activate video-r4
git clone https://github.com/yunlong10/Video-R4.git
cd Video-R4 && pip install -r requirements.txt
# 2. 推理(已提供 7B 检查点)
python infer.py \
--video assets/demo.mp4 \
--question "What is the yield mentioned in the reaction?" \
--checkpoint checkpoints/video-r4-7b.pt \
--max_rumination 5 # 允许最多 5 轮 clip/crop
# 3. 继续在你自己的数据上微调
bash scripts/finetune.sh \
--data_path your_cot.jsonl \
--stage drp-sft # 或 crp-sft / rl
硬件: 一张 A100/H100 80G 即可全参数训练;消费级 24G 卡可跑推理(bf16 + 梯度检查点)。
9. 作者札记:从“更大数据”到“更会看数据”
过去两年,视频 LMM 的改进多围绕“更长上下文、更多帧、更大模型”。Video-R4 则验证:在 7B 量级,把“反复查看”做成可学习策略,就能让模型少 hallucinate 15%+。这让我想起显微镜的使用——放大倍数并非越高越好,而是“何时调焦、调哪里”才关键。下一轮迭代,我们想把音频、跟踪、甚至用户交互一起放进工具箱,让“暂停—放大—重读”变成“暂停—放大—跟踪—回放”,把视频理解真正做成一场可逆的实验。
10 实用摘要 / 一页速览
-
文本密集视频问答的致命伤:单遍抽帧 + 低分辨率 OCR。 -
Video-R4 给出“视觉反刍”四步循环:读→检索→重聚焦→再强化;核心是可学习的 clip/crop 接口。 -
训练配方 = 先单工具 DRP-SFT → 轻量 RL → 复合工具 CRP-SFT → 深度 RL,四阶段缺一不可。 -
奖励 = 答案正确 + 多样性 + 代表性 + 好奇心,保证“看得广、看得精、不偷懒”。 -
结果:M4-ViteVQA 新 SOTA 64.2 EM,零样本迁移文档/幻灯片 QA 再提 8-10 点。 -
全参数 7B 模型单卡可训,代码已开源,pip 安装即可推理。
FAQ
-
Q: 只能文本密集视频用吗?
A: 训练数据来自文本密集场景,但“clip/crop”工具对任何需要细粒度像素的任务都有效,实验已验证幻灯片、多页文档同样受益。 -
Q: 推理速度会不会很慢?
A: T=3 步 rumination 在 A100 上约 2.8× 实时;T=1 步仅 0.9× 实时,可按精度-速度权衡。 -
Q: 需要额外 OCR 模型吗?
A: 训练阶段用外部 OCR 做伪标签;推理阶段模型直接看像素,无需额外 API。 -
Q: 能否接入更大模型?
A: 框架与模型尺寸正交,13B/30B 只需调整显存策略;更大模型在 RL 阶段收敛更快。 -
Q: 会不会过度放大导致物体上下文丢失?
A: R_rep 与 R_div 联合约束,实验显示平均裁剪面积占帧 18%,既能读字又保留场景。 -
Q: 数据标注成本有多高?
A: 规则+模型合成 90% 轨迹,人工质检平均 22 秒/条,17k 样本约 100 人时完成。 -
Q: 可以自定义新操作吗(如跟踪、旋转)?
A: 工具接口是模块化 Python 函数,新增操作只需在奖励函数里补充对应评估指标即可。 -
Q: 代码开源协议?
A: GitHub 采用 MIT 协议,商业使用只需保留原始许可证文件。

