Critic-V: VLM Critics Help Catch VLM Errors in Multimodal Reasoning¶
会议: CVPR 2025
arXiv: 2411.18203
代码: GitHub
领域: 多模态VLM
关键词: VLM推理纠错, Actor-Critic, DPO偏好优化, 自然语言反馈, 多模态推理
一句话总结¶
本文提出Critic-V框架,将VLM推理过程解耦为Reasoner(推理器)和Critic(评价器),通过DPO训练的Critic模型提供自然语言反馈迭代优化推理路径,在8个基准上的5个超越GPT-4V,数学推理任务提升尤为显著(MathVista +11.8%)。
研究背景与动机¶
视觉语言模型在多模态推理任务上取得了显著进展,但仍然持续产生不准确或无关的回答。主要问题包括:图像理解的幻觉(hallucination)——模型"看到"了图像中不存在的内容;推理路径的粗糙——中间步骤的小错误会在链式推理中级联放大;以及对内部知识的过度依赖——忽视实际的视觉上下文。
现有的改进方案主要依赖模型自身的内在能力:Self-Refine让模型自我反思修正,Self-Consistency通过多次采样投票,DPO/RLHF在训练阶段对齐人类偏好。但这些方法有一个共同弱点:没有引入外部独立的质量评估。Self-Refine等方法完全依赖模型自身判断,而研究表明LLM往往能纠正已知错误但无法自主发现错误。
本文的核心观点是:需要一个独立训练的、专门擅长发现错误的Critic模型,在推理时为Reasoner提供具体的自然语言反馈(而非标量奖励),从而实现更精准的错误定位和推理路径优化。灵感来源于强化学习中Actor-Critic范式的分工思想。
方法详解¶
整体框架¶
Critic-V包含三个核心阶段: 1. Critic模型的离线训练(通过VEST生成训练数据 + DPO优化) 2. 推理时Reasoner-Critic的交互循环 3. 基于自然语言反馈的迭代优化
整个流程:给定图像和问题 → Reasoner生成初始推理回答 → Critic评估回答并指出问题 → Reasoner基于反馈修正回答 → 迭代直到Critic满意或达到最大轮次。
关键设计¶
-
Reasoner(推理器):
- 直接使用现有的VLM(如Qwen2-VL-7B、DeepSeek-VL-7B等)作为Reasoner,不修改其参数
- 核心创新:用动态文本prompt替代传统RL中的参数化策略。推理策略通过prompt变化来实现,而非梯度更新
- Critic的反馈 \(\delta P^{reasoner}\) 被直接拼接到下一轮的prompt中,引导推理方向
- 借鉴TextGrad框架进行prompt更新:将Critic的自然语言反馈视为"文本梯度",指导推理路径的调整
- 即"plug-and-play"——无需对Reasoner做任何训练或微调
-
Critic模型训练:
- VEST(Vision Error inSertion Technique)数据构造:
- 从VQA数据集收集问题-图像对,用GPT-4o在正确答案中插入1-5个虚假细节(伪造的错误答案)
- 让GLM-4V-9B、GPT-4o mini、MiniCPM-V三个VLM分别对错误答案生成批评意见
- 总计构建29,012个多模态QA对及对应的批评数据
- Rule-based Reward(RBR)评分:
- 结合Jaccard指数和GPT评分来评估批评质量:\(Score(i) = Jaccard(i) + \alpha \times GPT(i)\)
- Jaccard指数:\(J(G,C) = |G \cap C| / |G \cup C|\),其中G为插入的错误集合,C为批评检出的错误集合
- Jaccard指数的引入关键在于防止"长批评倾向"——过长的批评可能包含更多假阳性(nitpicks)
- 根据RBR得分构建偏好对(preferred vs disfavored critique)
- DPO训练:
- 基于Qwen2-VL-7B训练Critic模型
- 使用标准DPO损失函数优化,鼓励模型给高质量批评分配更高概率
- 偏好数据集 \(\mathcal{D}_{cri} = \{(Q, I, C_w, C_l)\}\) ,其中 \(C_w\) 为偏好批评,\(C_l\) 为非偏好批评
- VEST(Vision Error inSertion Technique)数据构造:
-
Reasoner-Critic交互框架:
- Reasoner生成初始回答 → Critic在问题、图像和回答的完整上下文下评估 → 以自然语言形式给出反馈(指出哪里错了、为什么错、应该如何修正)
- Reasoner将反馈纳入新的prompt继续推理 → 循环直到Critic认为满意或达到最大迭代次数
- 自然语言反馈比标量奖励更具信息量:能精确指出错误位置和类型,而不只是给一个"好/坏"的信号
- 每次Critic评估仅消耗几十个额外token,计算开销可忽略
损失函数 / 训练策略¶
- Critic使用DPO损失训练:\(\mathcal{L}_{DPO} = -\mathbb{E}[\log \sigma f(\pi_\theta; \pi_{ref})]\)
- temperature设为0或接近0以保证输出稳定性
- 推理时采用两轮对话:第一轮Reasoner回答,第二轮Critic评价后Reasoner修正
- Critic的plug-and-play特性:同一个Critic可以搭配不同的Reasoner VLM
实验关键数据¶
主实验¶
| 模型 | RealWorldQA | MMBench | MathVista | MathVerse | MMT-Bench |
|---|---|---|---|---|---|
| Qwen2-VL-7B基线 | 70.1 | 80.7 | 61.4 | 25.8 | 60.4 |
| +Critic-V | 74.9(+4.8) | 82.8(+2.1) | 73.2(+11.8) | 32.9(+7.1) | 62.0(+1.6) |
| DeepSeek-VL-7B基线 | 58.1 | 73.5 | 35.3 | 18.4 | 46.5 |
| +Critic-V | 62.1(+4.0) | 79.0(+5.5) | 53.1(+17.8) | 28.9(+10.5) | 53.6(+7.1) |
| LLaVA-v1.5-7B基线 | 50.7 | 68.4 | 37.8 | 26.0 | 36.0 |
| +Critic-V | 63.5(+12.8) | 73.8(+5.4) | 53.1(+15.3) | 30.5(+4.5) | 47.4(+11.4) |
| GPT-4V | 61.4 | 74.3 | 49.9 | 54.4 | 55.5 |
与其他方法对比(LLaVA-V1.5-7B基础)¶
| 方法 | RealWorldQA | MMStar | MMBench | SEEDBench | MMT-Bench |
|---|---|---|---|---|---|
| +POVID | 51.8 | 33.6 | 71.6 | 65.4 | 33.4 |
| +SCL(最强竞争者) | 53.2 | 35.8 | 70.8 | 68.6 | 39.6 |
| +Critic-V | 63.5 | 38.4 | 73.8 | 70.1 | 49.7 |
消融实验¶
| 配置 | MathVista | MMT-Bench | MMBench | 说明 |
|---|---|---|---|---|
| Qwen2-VL-7B基线 | 61.4 | 60.4 | 80.7 | - |
| +Self-Refine(无DPO) | 63.4 | 57.8 | 82.1 | 反而降低MMT-Bench |
| +Critic-V(含DPO) | 73.2 | 62.0 | 82.8 | DPO至关重要 |
| +仅特殊prompt(无Critic) | 61.8 | 59.0 | 81.0 | 排除prompt设计的影响 |
关键发现¶
- Critic-V在24组对比实验中的23组取得了提升,普适性极强
- 数学推理任务提升最为显著(MathVista +11.8%~+17.8%),"逻辑密集型任务最受益于外部纠错"
- Qwen2-VL-7B+Critic-V在8个基准中5个超越GPT-4V
- Self-Refine(自我纠错)效果远不如外部Critic——说明模型确实难以自我发现错误
- DPO训练是Critic-V有效性的关键,未经DPO训练的模型做Critic反而可能有害
- 每次Critic评估仅消耗额外几十个token,计算开销极低
亮点与洞察¶
- 将RL中的Actor-Critic范式巧妙迁移到VLM推理场景,用自然语言反馈替代标量奖励是关键创新
- VEST数据构造方法非常实用:通过插入已知错误来自动生成Critic训练数据,避免了人工标注
- Jaccard指数在RBR中的使用解决了"批评越长分越高"的偏差问题
- Plug-and-play设计意味着一个Critic可以服务多种不同的VLM,实用价值高
- 验证了一个重要假设:VLM可以在被指出错误后有效修正(Tyen et al.的发现在VLM领域的延伸)
- LLaVA-v1.5-7B在RealWorldQA上从50.7提升到63.5(+12.8),说明即使是弱模型也能从强Critic中大幅受益
局限与展望¶
- Critic模型本身基于Qwen2-VL-7B训练,其能力上限受限于基座模型——对于超出其能力范围的错误可能无法识别
- VEST中的错误插入依赖GPT-4o,存在成本和可复现性的问题
- 迭代次数的选择缺乏自适应机制——目前固定为2轮,不同难度题目可能需要不同轮次
- MMStar基准上Qwen2-VL-7B+Critic-V出现了-4.5%的下降,说明Critic的反馈有时可能误导而非帮助
- 仅评估了7B量级的模型作为Reasoner,未验证在更大模型(如70B+)上是否仍然有效
- Critic和Reasoner使用不同的VLM时的组合效果未被系统探索
相关工作与启发¶
- 与CriticGPT的关系:CriticGPT专注于文本LLM的代码审查,Critic-V将该思路推广到多模态视觉推理
- 与Self-Refine/Self-Consistency的对比:外部Critic强于自我纠正,说明"自检能力"是独立于推理能力的另一种能力
- DPO在Critic-V中的应用不同于传统用法:传统DPO对齐模型的生成偏好,这里用来训练Critic的评估偏好
- 对具身智能和自动驾驶有直接应用价值——这些场景对推理可靠性有极高要求
- 启发:能否将Critic训练为更细粒度的"bug检测器",不仅指出推理步骤错误,还定位到具体的视觉区域?
评分¶
- 新颖性: ⭐⭐⭐⭐ Actor-Critic到VLM的迁移有新意,VEST+RBR的数据构造流程设计精良
- 实验充分度: ⭐⭐⭐⭐ 8个基准、3个Reasoner VLM、充分的消融;但缺少大模型实验
- 写作质量: ⭐⭐⭐⭐ 框架描述清晰,公式推导完整但部分地方冗余
- 价值: ⭐⭐⭐⭐⭐ 实用性极强,即插即用的设计、显著的性能提升、低计算开销