Consensus Entropy: Harnessing Multi-VLM Agreement for Self-Verifying and Self-Improving OCR¶
会议: CVPR 2026
论文: CVF Open Access
代码: https://github.com/Aslanyulong/consensus-entropy
领域: 多模态VLM
关键词: OCR质量验证, 多模型共识, 熵, 无监督, 自适应路由
一句话总结¶
本文提出 Consensus Entropy(CE)——一个免训练、模型无关的指标,用"多个 VLM 对同一张图的 OCR 结果是否收敛"来无监督地判断输出可靠性,并基于它搭出 CE-OCR 框架(共识熵加权集成 + 熵阈值路由到更强模型重写),在 OCRBench 等数据集上把质量验证 F1 比 VLM-as-Judge 提升 42.1%、OCR 准确率提升 8.2% 且只路由 7.3% 样本。
研究背景与动机¶
领域现状:OCR 已经从专用算法变成 VLM 的核心能力,OCR 准确率成了衡量多模态模型视觉-语言理解力的关键指标,OCR 抽出来的文本也是喂给 LLM 训练的重要数据源。但评测方式还停留在跑标准 benchmark 的平均分上。
现有痛点:平均分高不代表单样本可靠。作者实测发现,连 Qwen2.5-VL-72B、GPT-4o 这种顶级模型也频繁出现语义错误和格式不一致,而这些错误恰恰被传统指标漏掉——甚至 benchmark 排名更高的模型在实际场景里反而更差。现有补救手段有两类,都不灵:跨模型重评(multimodal re-evaluation)受评测模型自身不确定性拖累、引入二次噪声;VLM-as-Judge 只看文本质量,根本没法验证"视觉输入和文本输出到底对不对得上"。
核心矛盾:OCR 缺高质量标注、人工标注又贵,于是"判断一条 OCR 输出对不对"长期没有可靠的无监督手段;而既然连 SOTA 模型都做不到零错误,单靠某一个模型自评必然带偏。
本文目标:在没有人工监督、不重新训练的前提下,让模型自己验证(哪条对哪条错)并改进(把错的修对)OCR 结果。
切入角度:作者在 OCRBench 上观察了 210 个 VLM,发现三个朴素但有用的规律——(1) OCR 任务通常有唯一的语义真值(格式可变);(2) 模型答对时,多个模型的输出在语义空间里紧紧聚成一簇;(3) 答错时,输出四散、熵很高。"对则收敛、错则发散"这个跨模型行为,正好是一个不需要标签的可靠性信号。
核心 idea:用"多个独立 VLM 输出之间的两两相似度分布的熵"来度量共识程度(即 Consensus Entropy),低熵=高度一致=大概率正确,高熵=分歧=可能出错;再让这个熵同时驱动集成加权和路由决策。
方法详解¶
整体框架¶
CE-OCR 是一条无训练的"生成→评估→决策"流水线。给定一张图,先让 \(n\) 个独立 VLM 各自跑出 OCR 结果;然后两两比对这些结果、把相似度转成概率分布并算出一个标量共识熵 \(\delta\);最后用一个阈值门 \(\theta\) 决定怎么处理:\(\delta\le\theta\)(大家基本一致)就直接用共识熵加权的集成输出,\(\delta>\theta\)(分歧大、可能出错)就把图 + 各模型输出 + 集成结果一起喂给一个更强的 VLM 让它重写。整个过程不需要任何标签或参数微调,纯推理。
%%{init: {'flowchart': {'rankSpacing': 24, 'nodeSpacing': 28, 'padding': 6, 'wrappingWidth': 400}}}%%
flowchart TD
A["输入图像 I"] --> B["n 个 VLM<br/>各自生成 OCR"]
B --> C["共识熵 δ<br/>两两相似度→熵"]
C -->|"δ ≤ θ 高度一致"| D["共识熵加权集成<br/>低熵权重高"]
C -->|"δ > θ 分歧大"| E["专家路由重写<br/>更强 VLM + 上下文"]
D --> F["最终 OCR 输出"]
E --> F
关键设计¶
1. 共识熵 CE:用"输出两两相似度的熵"无监督地度量对错
针对的痛点是"没有标签时无法判断单条 OCR 对不对"。做法是把质量评估从"有监督打分"转成"无监督一致性分析"。对一张图收集 \(n\) 个模型输出 \(\{O_1,\dots,O_n\}\),先算两两相似度——任务相关地选度量:字符级精度任务(标准 OCR、数学公式)用编辑距离,语义任务用文本编码器 embedding 的余弦相似度。字符级时在每个位置 \(k\) 算归一化相似度
再归一化成概率 \(p_{ij}(k) = s_{ij}(k)/\sum_{j'} s_{ij'}(k)\),然后对每一对输出算两两熵
关键在于:用熵(分布层面的不确定性)而不是单个余弦标量来刻画两条输出的差异。论文给了个直观例子——三个 VLM 把发票号读成 "Invoice"、"1nvoice"、"Invoice",相对第一条的相似度是 \((1.0, 0.86, 1.0)\),归一化得 \(p=(0.35,0.30,0.35)\)、熵 \(H=1.09\)(接近均匀=有分歧);若三条完全一致则 \(H=0\)(完美共识)。每条输出再对其余所有输出求平均熵距离 \(E_i = \frac{1}{n-1}\sum_{j\ne i} E_{ij}\),衡量它和集体共识的偏离程度。最终把所有输出的分布建模到一起得到标量 \(\delta\):语义任务用 KDE 在输出空间做核密度估计、每条输出的权重与其 \(E_i\) 成反比(共识高的权重大),把空间离散成 \(N\times N\) 网格后 \(\delta = -\sum_{i=1}^{N^2} p_i\log p_i\);编辑距离任务则直接从两两距离分布算熵。作者比较了 Sum/Max/Mean/Mean-Distance 四种聚合,发现 Mean Distance(直接平均 \(E\) 值)既"网格无关"(CE 在不同分辨率 \(N\) 下稳定)又"序保持"(共识越高 CE 越低),最稳,作为默认。
2. CE-Ensemble:用共识熵的倒数当权重做 token 级集成
针对的痛点是"普通平均/投票会被离群的错误输出拉偏"。CE-Ensemble 直接复用上面的熵框架当权重——共识熵距离 \(E_i\) 越低(越贴近共识)权重越高:
文本不能直接加权平均,所以先用动态规划把所有输出对齐、找出各位置对应的 token,再在每个位置 \(k\) 选"加权共识最高"的 token:\(t^*_k = \arg\max_{t\in T_k}\sum_{i:\,t\in O_i} w_i\),即把所有在该位置输出了 token \(t\) 的模型权重加起来取最大。这样离群点被自动降权、可靠模型主导结果,比简单多数投票更抗噪。
3. 阈值门路由 + 专家重写:只对真正难的样本花更强算力
针对的痛点是"全部样本都喂大模型太贵、全部用小集成又救不了硬样本"。引入阈值门 \(\theta\) 做二值路由:
\(R=0\) 直接用 CE-Ensemble 输出;\(R=1\)(共识熵超阈值,说明模型们分歧大、八成有错)才路由到更强的 VLM \(M_\text{exp}\) 重写,且把原图、各模型输出、集成结果一起作为上下文喂进去:\(O_\text{final} = M_\text{exp}(I, \{O_1,\dots,O_n\}, O_\text{ens})\)。\(\theta\) 是质量-效率的旋钮——调低就更多样本送去重写(更准但更贵),调高就更多直接接受集成(更省);作者在开发集上标定,发现 \(\theta\approx0.5\) 对多数 OCR 任务最优,实测只需把 7.3% 的样本送去重写就能拿到主要增益。
实验关键数据¶
主实验¶
无监督质量验证(人工标注的 1000 页 PDF,单参考模型、无集成,F1):CE 在大多数难度区间都显著优于 VLM-as-Judge,整体平均 F1 提升 15.2、即 +42.1%。
| 参考模型 | VLM-as-Judge F1 | CE (本文) F1 | 提升 |
|---|---|---|---|
| GPT-4o | 40.0 | 48.0 | +20.0% |
| Qwen2-VL-7B | 36.1 | 51.3 | +42.1% |
| Qwen2-VL-72B | 39.8 | 51.0 | +28.1% |
CE-OCR 自我改进(OCRBench-V2 分项,阈值 0.5):相比基础集成在英文 OCR / 数学 / 中文整体都有 +5~6.5% 相对提升,数学场景尤其突出。
| 方法 | En | Math | Elem | Cn All |
|---|---|---|---|---|
| GPT-4o | 61.2 | 43.4 | 29.8 | 32.2 |
| InternVL2.5-26B | 65.6 | 37.4 | 32.6 | 44.2 |
| Gemini Pro | 61.2 | 47.7 | 30.9 | 43.1 |
| CE-Ensemble | 67.2 | 50.1 | 34.0 | 45.7 |
| CE-OCR (GPT-4o 重写) | 71.6 | 53.1 | 33.8 | 48.0 |
| 相对最优单模型 | +9.1% | +11.3% | +3.7% | +8.6% |
CE-Ensemble 还能让一堆小模型组合超过 SOTA 单模型:例如 Ovis2-1B(890)+Qwen2.5VL-7B(874)+Step1V(886)+Step1o(926) 集成出 955(+29,超过 SOTA 单模型 926);纯开源 <10B 模型组合(InternVL2.5-8B+Qwen2VL-7B+Qwen2.5VL-7B)也能从最高 874 提到 897。
消融实验¶
OCRBench 上逐组件移除(满分 1000,Rel. Perf. 相对完整框架):
| 配置 | Score↑ | % 路由 | 相对完整 |
|---|---|---|---|
| w/o CE(单模型取最大) | 888 | 0% | 97.9% |
| w/o 集成(单模型平均) | 852 | 0% | 93.9% |
| w/o 路由(全部集成) | 902 | 0% | 99.4% |
| 完整 CE-OCR | 907 | 7.3% | 100% |
和经典集成方法对比(同 3-VLM,平均 ∆):ROVER 的离散词级投票在开放式 VLM 输出上灾难性失败(Doc-VQA −42.1%、Math-VQA −92.0%,因为 VLM 输出措辞多样、无法对齐);VL-Uncertainty 用语义聚类,在结构化 OCR 上 +3.3% 但在语义 VQA 上掉点(字符级差异对语义 embedding 不可见)。CE-Ensemble 四类任务全涨、平均 +8.2%。
| 方法 | OCR | Doc-VQA | Math | KR | Avg ∆ |
|---|---|---|---|---|---|
| Best Single | 61.2 | 87.5 | 40.0 | 60.3 | 0% |
| VL-Uncertainty | 64.5 | 78.7 | 45.1 | 58.2 | +0.2% |
| ROVER | 57.5 | 50.7 | 3.2 | 50.4 | −33.8% |
| CE-Ensemble | 67.2 | 90.5 | 45.6 | 66.3 | +8.2% |
关键发现¶
- 集成是骨架,路由是性价比之王:去掉集成掉得最狠(−7.2%,掉到 852),说明多模型多样性是 CE 计算和稳健性的基础;而去掉路由只损失 0.6%(902 vs 907)——也就是仅用 7.3% 的额外重写就把"全集成"补到满分,几乎不加算力就拿到收益。
- 集成规模越大、下界越稳:3→5 模型时,集成超过"组内最差单模型"的比例恒为 100%(CE 永远避开最差),超过"最优单模型"的比例从 66.2% 升到 91.1%——CE 越来越能选到接近最优的输出。
- 阈值 θ 是连续旋钮:OCRBench-V2 上 GPT-4o 在 θ=0.95 时 +3.8%/重写 15%,θ=0.2 时 +8.8%/重写 91.2%,准确率与算力可平滑权衡。
- 同架构也有效:即便用同系列甚至同一模型采样(T=0.7 跑 3 次)也能涨(Identical +2.1%、QwenVL +1.83%),多样性增强 CE 但非必要条件。
- 可迁出 OCR:换用编辑距离/余弦距离后,CE 在 Math-VQA(+14.0%)、Knowledge-Reasoning(+10.0%)、Formula(+7.3%) 等非 OCR VQA 上同样涨点。
亮点与洞察¶
- 把"对则收敛、错则发散"做成可计算的标量:核心洞察很朴素(210 个模型的行为观察),但用两两相似度的熵把它量化成一个免训练、模型无关、即插即用的可靠性信号,非常优雅——不需要看模型内部参数,黑盒/闭源 API 也能用。
- 同一个熵同时驱动三件事:验证(CE 当过滤器)、集成(\(1/E_i\) 当权重)、路由(\(\delta\) 比阈值),一个量贯穿"评估-聚合-决策"全链路,设计高度自洽。
- "用熵分布而非单标量"是关键技术点:作者特意强调不用单个余弦标量、而用整个相似度分布的熵,能捕获输出间的分布级不确定性——这个思路可迁移到任何"多候选生成需要无监督选优"的场景(代码生成、翻译、结构化抽取)。
- Mean Distance 聚合的"网格无关 + 序保持":两条性质保证了 CE 值在不同离散分辨率下稳定可比,是能落地部署的关键工程考量。
局限与展望¶
- 依赖多模型多样性:消融显示去掉集成掉点最多,CE 本质需要"多个相对独立的输出"才能算共识;只有单一模型且无法多样采样时,信号会变弱(同模型采样虽可用但增益较小)。
- 路由上界受限于专家模型:高熵样本的最终质量取决于 \(M_\text{exp}\)(如 GPT-4o)的能力,若专家模型本身也读错,框架无法纠正——CE 只负责"识别可疑",不保证"修对"。
- ⚠️ 阈值 \(\theta\approx0.5\) 需按任务标定:论文称在开发集上标定,跨数据集/语言的最优 \(\theta\) 可能漂移,部署前要重新校准(Table 7 也显示不同模型的 θ-性能曲线不同)。
- 共识熵高 ≠ 一定错:当多模型恰好"一致地错"(共同 bias、训练数据污染)时,低 CE 会给出虚假的高可信度,这是所有共识类方法的固有盲区,论文未深入讨论。
- 改进思路:可引入轻量的"独立性度量"给同源模型降权,或在路由时结合外部知识/工具校验来突破专家模型上界。
相关工作与启发¶
- vs VLM-as-Judge:后者让一个 LLM 直接给文本质量打分,受 prompt 敏感、训练数据污染、格式偏好、偏好泄漏(生成模型与评测模型相关性虚高分)等系统性问题困扰,且无法验证视觉-文本一致性;CE 不依赖任何"裁判模型",靠多模型输出空间的一致性间接判断,F1 高出 42.1%。
- vs VL-Uncertainty:它在 LLM embedding 上做语义聚类测幻觉,对 OCR 至关重要的字符级差异"不可见",在语义 VQA 上甚至掉点;CE 可按任务切换编辑距离/余弦,字符级和语义级都覆盖。
- vs ROVER(经典 ASR 集成):离散词级投票适合封闭词表的语音识别,但 VLM 输出措辞自由、无法对齐,导致灾难性失败(Math-VQA −92%);CE 在连续相似度/熵空间操作,对开放式生成稳健。
- vs Self-Consistency:SC 对同一模型同一 prompt 多次采样后投票(同源、贵),CE-OCR 则跨模型按共识动态选策略,Table 5 显示路由平均 +6.5%、最佳 +8.2%,而 SC@3 平均反而 −2.8%。
评分¶
- 新颖性: ⭐⭐⭐⭐⭐ "对则收敛错则发散"的观察 + 把它做成贯穿验证/集成/路由的统一熵指标,简单而有洞察
- 实验充分度: ⭐⭐⭐⭐⭐ 210 模型 + 55154 种集成组合 + 多 benchmark + 充分消融与阈值敏感性,还做了 OCR 外迁移
- 写作质量: ⭐⭐⭐⭐ 动机清晰、公式与例子配合好,部分细节(KDE 离散化、θ 标定)压在附录略简
- 价值: ⭐⭐⭐⭐⭐ 免训练即插即用、黑盒可用,直接解决 OCR 无监督质量控制这一真实痛点,对 LLM 训练数据清洗有现实意义