MLLM在细粒度视觉理解上仍然吃力:答案往往依赖图中只占极小比例的"决定性细节",而在整图推理时,这些细节被海量视觉 token 淹没。
- 在整图推理时,这些细节往往只占图像中很小一块,被大量无关视觉 token 包围,极易在全局场景的"合理猜测"中被忽略——模型可能基于全局语义给出看似合理、实则漏掉关键局部证据的答案。
- "Thinking-with-Images"方案,给 MLLM 配备了智能体式的视觉工具:在推理过程中主动裁剪、放大、检查感兴趣区域。这确实提升了细粒度理解,开销较大:
- 需要反复编码图像(每次 crop 都重新过视觉编码器);
- 需要多次模型调用(多步推理 + 工具调用)。
这引出一个问题:
能否通过训练把"视觉放大"的收益内化进模型,让模型在单趟前向传播(single forward pass)里就能从整图中利用细粒度证据,而不再依赖推理期的工具?
关键现象——regional-to-grdobal perception gap(区域到全局的感知差距):同一个 MLLM,当输入是"以证据为中心裁剪出的小图"时,比输入"完整大图"时答得更准。这说明很多失败不是因为模型认不出细节,而是因为模型在全局上下文里难以聚焦到相关细节。
Vision-OPD (Vision On-Policy Distillation):从同一个 MLLM 实例化两个"条件策略"——
- Teacher(老师):只看"证据裁剪图"(crop),相当于模型开了一个特权视角;
- Student(学生):看完整大图,即标准推理场景。
学生先在线(on-policy)生成回答,然后让老师和学生在这条学生自己生成的轨迹上做逐 token 的分布差异最小化。这样就把模型"放大看"的特权能力,迁移到了"看整图"的策略中。
2. 动机:Less is More(少即是多)
2.1 一个可验证的假设
作者提出一个简洁的验证思路:对比同一个模型在两种输入下的表现——
- Global input(全局输入):喂完整大图;
- Regional input(区域输入):只喂"以证据为中心裁剪出的小图"。
如果模型在"裁剪图"上答对、在"整图"上答错,就说明:模型其实能识别该证据,只是无法在全局上下文中聚焦到它。瓶颈是"聚焦能力",不是"识别能力"。
2.2 定性案例
基于 Qwen3.5-9B 的定性案例。问题问"护耳罩是什么颜色"。
- 输入整图→ 模型预测black(错);
- 输入裁剪区域→ 模型正确预测green(对)。
决定性证据在孤立看时清晰可辨,但在全局上下文中被淹没。
2.3 系统性验证:差距是普遍存在的
在 ZoomBench 上的系统评测表明,这并非个别现象,而是一个系统性规律:
区域输入的精度持续高出全局输入18~22 个百分点。
更关键的是——即便是非常大的模型、闭源模型(GLM-4.6V、GPT-5.4、Gemini-3.5-Flash、Gemini-3.1-Pro)也都有显著的差距,证明单纯堆参数无法关闭这个 regional-to-global gap。
结论:既然模型"自己的区域感知"始终强于"全局感知",那么就可以用前者作为特权监督(privileged supervision)来提升后者——把"放大"的收益内化进单趟前向,无需推理期工具。
3. 方法:Vision-OPD(区域→全局的在线策略自蒸馏)
整个方法由两大部分组成:(A) 数据合成(构造 triplet)与(B) 在线自蒸馏训练。论文的 Overview 图把这两部分画得很清楚:
Vision-OPD 总览。
左:在"证据裁剪图"上生成细粒度问题,并通过边界框叠加把问题"锚定"回整图。
右:用同一个 MLLM 实例化 teacher 策略p T ( ⋅ ∣ x crop ) p_T(\cdot\mid x_{\text{crop}})pT(⋅∣xcrop)与 student 策略p S ( ⋅ ∣ x global ) p_S(\cdot\mid x_{\text{global}})pS(⋅∣xglobal)。学生在线生成 rollouty ∼ p S y\sim p_Sy∼pS,沿该轨迹计算逐 token 散度D ( p T ∥ p S ) D(p_T\|p_S)D(pT∥pS)作为稠密监督;梯度只流经学生 logits,实现无标注的自蒸馏。
算法流程
输入:训练集 D = {(x_i, x'_i, q_i)}; MLLM p_θ; 散度 D(如 JSD_β) 定义: p_S(·|x, q) := p_θ(·|x, q) # 学生:整图条件 p_T(·|x', q) := p_θ(·|x', q) # 老师:裁剪图条件(特权视角) for step = 1 … M: 采样一个 batch B ⊆ D for 每个 (x, x', q) ∈ B: y ~ p_S(·|x, q) # 学生在线采样 ℓ(x,x',q) = 1/|y| Σ_n D( p_S(·|x, q, y_<n) || stopgrad( p_T(·|x', q, y_<n) ) ) L = 1/|B| Σ_{(x,x',q)∈B} ℓ(x,x',q) 用 L 更新 θ注意
stopgrad:梯度不回传到老师,老师只提供目标分布。
实验结果
参考文献
Vision-OPD: Learning to See Fine Details for Multimodal LLMs via On-Policy Self-Distillation,https://arxiv.org/abs/2605.18740
代码:https://github.com/VisionOPD/Vision-OPD