隐藏在你视觉编码器中的免费午餐:SigLIP-HD 做对了什么
参考论文: SigLIP-HD by Fine-to-Coarse Supervision — Lihe Yang, Zhen Zhao, Hengshuang Zhao
跑步者经过横幅
一名跑步者在比赛途中跑过一面横幅。横幅上写着“HOKA TIME TO FLY”,这是对该跑鞋品牌的广告。将这张照片输入到一个最先进的视觉语言模型中,并询问横幅上写了什么,模型返回的结果却是:“HOOKA TIME TO FLY。” 图片中并没有拼写错误。这是模型“发明”出来的错误,因为在它观察的分辨率下,字母模糊得刚好足以将一个真实的品牌名称变成一个不存在的词。
一篇名为 SigLIP-HD 的新论文旨在修复这种失败模式,而其修复方法几乎简单得令人怀疑。不需要更大的图像。推理时不需要额外的计算资源。也不需要新的架构。仅仅是以不同的方式训练已经内置于当今大量多模态模型中的同一个视觉编码器。来自香港大学和上海人工智能实验室的作者们,在不要求模型在推理时查看任何额外像素的情况下,从 SigLIP 2(一种广泛使用的图像编码器)中获得了显著提升的 OCR 和文档理解能力。

人人都有的直觉,以及为何其代价远超表面所见
当多模态大语言模型(MLLM,一种接收图像和文本并输出文本的模型,如 GPT-4V 或 LLaVA)误读小字时,显而易见的解决方案是输入更大的图像。更多的像素输入意味着更细粒度的视觉 token 输出,从而增加捕捉每个字符的概率。这正是该领域的发展方向:早期系统如 LLaVA 将所有图像调整为固定的 336×336 分辨率,而较新的系统如 Qwen2.5-VL 或 InternVL 则尝试保留原始分辨率,有时甚至将文档切割成网格状的图块,并对每个图块单独运行视觉编码器。
这种方法有效,但并非没有代价。将图像切片意味着对单个输入需要进行多次编码器前向传播。更多的图块意味着更多的视觉 token 流入语言模型,由于 Transformer 的计算成本随序列长度增加而上升,这会导致成本迅速攀升。因此,系统会引入重采样器(resamplers)或像素反洗牌(pixel-unshuffle)技巧来压缩这些 token,但这又增加了工程复杂度和特有的故障模式。分辨率的每一次提升都伴随着延迟和成本的增加,这类问题往往在生产环境中表现为超时,远早于任何人更新基准测试数据。
作者在承担这些成本之前提出了一个更尖锐的问题:我们是否已经从当前使用的分辨率中榨取了所有价值?他们的插图很好地说明了这一点。以一张高长的信息图为例,比如一张数据密集型的体育海报,其原始高度为 1722 像素。将其下采样到标准的“中等”分辨率 512 像素。文字变得模糊。眯着眼睛看缩小版本的人类仍然能读懂大部分内容。我们擅长根据上下文和粗略的字形重建退化的文本。视觉模型是否在进行同样的重建,还是仅仅……没有足够仔细地审视它已有的内容?如果答案是后者,你就不需要更大的图像。你需要教会模型从它已经“付费”获取的图像中提取更多信息。
让廉价图像拥有昂贵图像的视觉能力
该方法被称为“细到粗监督”(fine-to-coarse supervision),一旦看到示意图,大约三十秒就能理解。首先使用一个冻结的、预训练的 SigLIP 2 编码器。“冻结”意味着在此步骤中其权重被锁定且保持不变。将同一张图像以两种尺度输入:一种是廉价的 512×512 像素基础版本,另一种是更昂贵的 1024×1024 像素放大版本。两次推理都会生成一个特征向量网格(可以将其视为模型对图像中每个小区域内容的内部摘要)。高分辨率推理显然能捕捉更多精细细节、更小的文本和更清晰的边缘,但它生成的网格更大,形状与廉价版本不匹配。
因此,作者使用简单的双线性插值对高分辨率特征网格进行下采样,直到其形状与基础分辨率网格相同,然后逐块将两者平均。这个平均结果就是“教师”特征:它确实从昂贵推理中看到了精细细节,但被打包成与廉价输出相同的形状。
接下来是实际的训练步骤。取第二个相同的预训练编码器副本。这个编码器是可训练的,而非冻结的,并且只接收廉价的 512×512 图像。对其进行微调,使其从该廉价图像生成的特征与教师特征逐块匹配,使用简单的 L1 损失(简而言之:最小化两个特征网格之间的绝对差异)。无需文本标签、合成字幕或人工标注。这里的“监督”是模型仅利用不同尺寸的原始图像进行自我教学。
训练完成后,完全丢弃昂贵的多尺度教师设置。剩下的只是一个编码器,它接受完全相同的 512×512 输入,生成完全相同数量的 token,并可以作为即插即用的检查点替换嵌入到多模态大语言模型(MLLM)中,但其权重中现在编码了该图像更精细细节版本的样子。相同的输入,相同的成本,更好的输出。 这就是整个技巧:知识蒸馏并非来自更大的独立教师模型(知识蒸馏中的常见设置),而是来自同一模型对同一张图片更多像素的观察。
它的产生成本也很低。作者在 450 万张图像上训练了 90,000 步,整个过程在 32 块 A100 GPU 上耗时 34 小时。相比之下,论文指出从头预训练视觉编码器可能需要消耗“百万 GPU 小时”和包含十亿张图像的数据集。这是一种附加在现有编码器上的轻量级抛光步骤,而非从头构建的新模型。

巴黎 - 1973年地铁图 — 由 roger4336 通过 flickr 提供,采用 BY-SA 2.0 许可。
调整尺度和损失函数究竟揭示了什么
在确定最终方案之前,作者进行了一系列值得深入探讨的初步研究,因为其结论远比“越大越好”有趣得多。
在测试教师信号的单尺度与多尺度输入时,他们发现,将基础的 512² 视图与 1024² 的放大视图相结合,在 12 个基准测试中的 10 个上表现优于单独使用其中任何一种。然而,叠加第三个尺度(1536²)或第四个尺度(2048²)大多不再带来收益,有时甚至适得其反。单独使用高分辨率视图(没有基础尺度视图配合)的表现实际上不如两者的组合。模型似乎需要粗略的全局视图与精细的局部视图相辅相成,而不仅仅是堆砌更多的细节。
他们还测试了当编码器仅在固定较小尺寸上训练时,如何处理高分辨率图像。从分割等密集预测任务中借鉴的直观做法是,在图像上滑动重叠窗口,以确保重要内容不会尴尬地落在图块边界上。但在这里这种做法适得其反:非重叠窗口反而胜出。他们最好的猜测是,重叠区域受到了不一致的处理(某些补丁实际上被“重复计算”),或者当相同内容出现在多个窗口中时,位置嵌入会发生冲突。无论如何,来自计算机视觉其他领域的一些先验智慧并未在此适用。
而在结合多尺度特征时,最简单的选项再次胜出:使用双线性插值对齐形状,然后进行简单的无权重平均,击败了通道级拼接和像素反洗牌(pixel-unshuffle)下采样。他们甚至尝试在文档 VQA 等细节密集的基准测试中,让平均值向高分辨率特征倾斜,理论依据是“在细节最关键的地方,更多细节应该带来更多帮助”。结果并非如此。在整个过程中,直接的 1:1 平均始终表现最佳。
实际数据,以及修复的几个真实误读
在标准的 LLaVA 训练流水线中,结合拥有 70 亿参数的 Vicuna 大语言模型,并使用 LLaVA-NeXT 更侧重 OCR 的指令微调数据,SigLIP-HD 将 DocVQA(一个用于阅读扫描文档中文本的基准测试)的成绩从 56.0 提升至 59.6,将 ChartQA(从图表和图形中读取数据)从 61.6 提升至 65.2,将 HRBench(专门针对细粒度视觉细节构建的基准测试)从 43.5 提升至 48.3。所有这些提升都是相对于 SigLIP 2 基线而言的,且推理成本完全相同。在所有测试基准的平均表现上,该训练配置从 62.8 提升到了 64.4。
这些增益并非特定于某一个大语言模型。如果换成较小的 Llama-3.2-3B,ChartQA 的成绩从 45.2 跃升至 49.8;如果换成 Qwen2.5-7B,DocVQA 的成绩从 62.5 提升至 64.2。而且这也不仅仅是 SigLIP 2 的故事:当附加到 2021 年更早期的 OpenAI CLIP 编码器上时,同样的自蒸馏技巧将 DocVQA 的成绩从 22.4 推高至 33.2。无论这种方法在做什么,它并不依赖于某个特定编码器的特性。
有两个结果尤为突出,不仅仅是排行榜上的噪音。首先,该方法可以与“直接使用原生分辨率”的方法(AnyRes 分块)叠加使用,而不是与之竞争。在 AnyRes 之上应用 SigLIP-HD,ChartQA 的成绩又提升了 3.5 分。其次,这正是论文摘要中的主张在实践中体现的地方:论文中的定性示例包含了本文开头提到的 HOKA/HOOKA 误读案例,以及一张白板照片,其中基线模型将手写名字误读为“Brian Owens”,而微调后的版本则正确识别为“Bryan Owens”。这些错误微小而具体,正是当你将摄像头对准野外的手写内容或模糊横幅,而非干净的扫描页面时,实际会出现的那种错误。
为什么在构建或采购 OCR 流水线时这很重要
核心教训并非仅关于 SigLIP 本身。关键在于,供应商在描述 OCR 或文档 AI 引擎时引用的“分辨率”和“Token 预算”等数字,并不能完全揭示模型实际从图像中提取了多少信息。两个编码器可以处理完全相同的 512×512 图像,生成相同数量的 Token,在推理时成本也完全相同,但由于训练方式的差异,它们在文档和图表基准测试上的表现仍可能相差几个百分点。如果你仅凭分辨率规格和 Token 数量来评估引擎,你就忽略了一个同样重要的变量。
实际上,对于任何在真实环境中大规模部署 OCR 而非仅在实验室中进行基准测试的人来说,这也是一个好消息。高分辨率分块流水线确实是捕捉小字的有效方法,但它会成倍增加前向传播和 Token 数量,从而增加每张文档的延迟和成本;当每天处理数千页文档时,这是一个实实在在的数字。一次性的、耗时 34 小时的自监督微调过程可以在不增加服务成本的情况下提高准确率,这种改变很容易证明其合理性,而且如果效果不佳也很容易撤销,因为它只是检查点替换,而不是重新架构。
作者坦诚地指出(而非隐藏)的一个限制是:这并不意味着原生高分辨率变得过时。一旦图像被下采样,某些细节确实会被破坏;无论训练多么巧妙,都无法恢复模型从未见过的、已被平均掉的像素。这为你带来的是从已承诺的分辨率预算中挤出更多的准确率,对于那些无法负担将每份文档都通过昂贵多块流水线处理的团队来说,这可能是首先应该拉动的更有用的杠杆。鉴于中文排版通常字符密集且布局复杂,若该研究仅针对英文/拉丁文本,其在处理高密度汉字识别时的直接适用性可能需要额外验证。