跳转至

Sherlock: Self-Correcting Reasoning in Vision-Language Models

会议: NeurIPS 2025
arXiv: 2505.22651
代码: https://dripnowhy.github.io/Sherlock/
领域: 多模态VLM / 自我纠正 / 视觉推理
关键词: self-correction, preference learning, trajectory-level, VLM reasoning, self-improvement

一句话总结

首个系统研究VLM推理自纠正能力的框架:发现现有推理VLM几乎不能自纠正(<10%出现aha moment),提出Sherlock三阶段训练框架(SFT冷启动→离线轨迹级偏好学习→在线自我迭代)仅用20K标注数据超越使用100K-260K数据的LLaVA-CoT/Mulberry/LlamaV-o1。

背景与动机

推理VLM(如LLaVA-CoT、VL-Rethinker)虽然能做长链推理,但存在三个关键问题:(1) 对推理错误极其敏感——一步错则链式传播导致最终错误;(2) 需要海量标注数据(100K-260K);(3) 泛化性差,难以超越训练领域。作者的关键洞察:自纠正可以同时解决这三个问题——部分正确的推理通过纠正比从头生成更容易,纠正前后的response自然形成偏好对,减少对外部标注的依赖。

核心问题

现有推理VLM能否自纠正?如果不能,如何教会它们自纠正?自纠正能力能否反过来提升直接推理性能?

方法详解

整体框架

三阶段训练: 1. SFT Cold-Start:用10K标注数据同时训练推理和纠正能力 2. Offline Preference Training:用轨迹级自纠正目标做偏好学习 3. Online Iterative Self-Improvement:无需外部标注,用自生成偏好数据迭代提升

关键设计

  1. 深入分析现有VLM的自纠正能力(Section 3)
  2. Step-wise:在LLaVA-CoT/VL-Rethinker上修改一个推理步后让模型续写,<10%出现aha moment(反思信号),且即使出现也仅约50%能纠正到正确答案
  3. Response-wise:无论是用self-correction prompt还是外部critic(Critic-V、Qwen2.5-VL),都无法有效改善推理,甚至可能下降
  4. 结论:当前推理VLM本质上不具备自纠正能力

  5. Trajectory-level Self-Correction Objective:不是修改整个response,而是只修改从错误步开始的suffix。给定preference pair (Y_w, Y_l),在随机truncation点i处分割,只对≥i的suffix做偏好学习。这避免了对已正确prefix的无意义更新,提供更清晰的学习信号。

  6. Visual Perturbation构造偏好数据:用视觉噪声扰动生成低质量response——在随机truncation点后给图像加噪声再让模型续写,产生可控质量差距的rejected response。无需外部验证器。

  7. Dynamic β for DPO:根据truncation位置i和噪声强度ε自适应调整β值:β(i,n,ε) = 1/4 * (0.5 + (i/n)^0.5 + ε/2)。质量差距大(早期truncation+强噪声)时β大→保守更新;差距小时β小→强学习。

  8. Online Self-Improvement(Stage 3):利用自纠正能力自举——对每个输入做3轮self-correction产生Y2/Y3/Y4,如果最终答案一致则Y4作为preferred。用Y1+视觉扰动构造rejected。每轮仅需5K无标注问题。

训练策略

  • 基座:Llama3.2-Vision-11B-Instruct
  • 仅需20K标注数据(从LLaVA-CoT 100K中随机采样2个10K子集DA、DB)
  • 在线阶段每轮5K无标注数据,做2轮迭代
  • 训练时间128 GPU·h,少于LLaVA-CoT(160h)和LlamaV-o1(288h)

实验关键数据

方法 标注数据 直接推理Avg 自纠正后Avg
LLaVA-CoT 100K 63.2 63.0 (↓0.2)
Mulberry 260K 63.9 63.8 (↓0.1)
LlamaV-o1 175K 63.4 48.2 (↓15.2!)
Sherlock Iter2 20K 64.1 65.4 (+1.3)

关键对比:Sherlock是唯一一个自纠正后性能提升的模型。LlamaV-o1纠正后崩溃是因为其多轮推理格式与correction prompt冲突。

推理时间缩放:Sherlock + MM-Verify验证器,MathVista上52.0→55.9(+3.9),GPU时间仅8.7h vs Majority Vote的40.2h。

消融实验要点

  • 自纠正和推理不是正交能力——学习自纠正也提升直接推理(Finding 1)
  • 轨迹级目标 >> 全response级目标——在线迭代时全response纠正反而退化(Finding 2)
  • Dynamic β稳定训练并持续提升两个能力(Finding 3)
  • 20K数据下Sherlock SFT已比相同数据量的LLaVA-CoT好+0.8(因为self-correction是free lunch)
  • 每轮self-correction都有提升:64.1→64.5→65.2→65.4(3轮)

亮点 / 我学到了什么

  • "现有推理VLM不能自纠正"这个实证发现——quantify了10%以下的aha moment率,非常有说服力
  • 轨迹级纠正而非全response纠正——只改错误suffix保留正确prefix,是一个精细且合理的设计
  • 视觉扰动构造偏好数据——巧妙利用图像噪声创造可控质量差距,不需要任何外部验证器
  • 自纠正 → 自我迭代的闭环:学会纠正后就能自己生成偏好数据继续进步,非常优雅
  • 20K数据超过260K——极高的数据效率,核心在于充分利用每个样本

局限性 / 可改进方向

  • 仅在Llama3.2V-11B上验证,更大模型(如72B)和其他VLM家族未测试
  • 自纠正提升幅度有限(+1.3%),对于已经接近正确的case纠正空间小
  • 视觉扰动只用高斯噪声,语义级扰动(如occlude关键区域)可能更有效
  • 在线阶段用self-consistency做过滤,但一致性≠正确性
  • 与RL方法(如GRPO)的结合未探索——Sherlock是纯SFT+DPO路线

与相关工作的对比

  • vs LLaVA-CoT:LLaVA-CoT只做SFT无自纠正,自纠正后性能轻微下降;Sherlock用1/5数据超越且自纠正有效
  • vs Mulberry:Mulberry用MCTS生成260K CoT数据+step-wise反思SFT,但自纠正仍失败;Sherlock的轨迹级偏好学习更effective
  • vs NoisyRollout (2504.13055):NoisyRollout用视觉扰动增强RL exploration,Sherlock用视觉扰动构造偏好数据——同一策略的不同应用场景
  • vs VL-Rethinker:RL-based但自纠正也失败(<10% aha),说明RL alone不够

与我的研究方向的关联

  • 与ideas/multimodal_vlm/20260316_causal_process_reward_vision.md相关——Sherlock证明过程级(轨迹级)信号比结果级更有效
  • 与NoisyRollout互补:NoisyRollout在RL阶段加视觉扰动做exploration,Sherlock在偏好学习阶段用视觉扰动做数据构造,可组合
  • "自纠正即free lunch"的发现很有启发——任何推理VLM都应该配备self-correction training

评分

  • 新颖性: ⭐⭐⭐⭐⭐ 首个系统研究VLM推理自纠正的工作,轨迹级纠正+视觉扰动偏好数据是novel的组合
  • 实验充分度: ⭐⭐⭐⭐⭐ 8个benchmark、详细消融、与MM-Verify的结合、case study极其细致
  • 写作质量: ⭐⭐⭐⭐⭐ Section 3的分析→Section 4的方法设计逻辑非常流畅,4个Takeaway清晰
  • 对我的价值: ⭐⭐⭐⭐⭐ VLM self-correction是关键能力,20K数据的高效训练范式对资源受限场景极有价值