SO-Bench: A Structural Output Evaluation of Multimodal LLM¶
会议: CVPR 2026
论文: CVF Open Access
代码: https://github.com/apple/ml-sobench
领域: 多模态VLM
关键词: 结构化输出, JSON Schema, 多模态评测基准, 信息抽取, Agentic工具调用
一句话总结¶
这是 Apple 提出的首个系统评测「多模态大模型把视觉输入转成符合预定义 JSON Schema 的结构化输出」能力的 benchmark——SO-Bench 用一条三阶段自动标注管线,从 11.2 万张四领域图像、6.5K 个 JSON Schema 中构造了 1.8K 个「图像–Schema–指令」三元组,配套三级评测指标,揭示了即便最强的 Gemini-2.5-Pro 完全正确率也只有 18.9% 的巨大差距。
研究背景与动机¶
领域现状:MLLM 越来越多地被部署到 agentic 场景(网页自动化、数据抽取、工具调用),这时模型的输出不是给人看的,而是要被下游系统、控制器、API 消费——它必须严格符合一个预定义的 JSON Schema,否则下游程序根本无法解析。OpenAI、Gemini、Anthropic 都已上线「结构化输出模式」来强约束这件事。
现有痛点:纯文本的结构化输出已有 StructEval、JSONSchemaBench、StructBench 等 benchmark 在评,但视觉结构化输出几乎无人系统评测。已有的视觉结构化工作各有局限:Pix2Struct / Image2Struct 偏重截图转 HTML 或对渲染图做语义解析,领域窄且偏 captioning;IR3D-Bench 只测纯合成 3D 场景重建;最接近的文档 KIE(关键信息抽取)任务,则只针对扁平的预定义关键词、一层字典,完全没有真实世界 Schema 那种嵌套、复杂的结构。
核心矛盾:现实下游应用要求的 Schema 是多层嵌套、字段类型多样、随应用定制的(深达 22 层、超 2K 字段),而现有评测要么不带图像输入、要么只覆盖很窄的视觉域、要么 Schema 过于简单——没有任何研究能量化「MLLM 在视觉证据 grounding 下产出 Schema 合规输出」的真实能力。
本文目标:(1) 造一个覆盖真实多样 Schema、跨四个视觉域的高质量 benchmark;(2) 用它系统测出现有 MLLM 的差距;(3) 验证针对性训练能否补上这个差距。
核心 idea:把「视觉结构化输出」形式化为 \(p(Y|I,X,S)\)——给定图像 \(I\)、JSON Schema \(S\)、用户指令 \(X\),模型自回归生成既语法符合 \(S\) 又语义反映 \(I\) 与 \(X\) 的结构化输出 \(Y\);并用一条「多模态嵌入检索 + 多图分组造 Schema + 人在环路批判精修」的自动标注管线把这个任务的高质量数据规模化造出来。
方法详解¶
整体框架¶
SO-Bench 不是一个模型而是一套「数据 + 评测」基础设施。它的核心难点是:怎么把一张图像和一个有代表性的 JSON Schema 关联起来,并高效、准确地生成它对应的结构化输出标注。作者用一条三阶段自动标注管线(每阶段都有人类专家质检)解决:① Schema 生成阶段——给图像配上 Schema(从仓库检索或多图分组现造);② 用户意图生成阶段——给「图–Schema」对加上模拟真实人机交互的用户指令;③ 响应生成阶段——用「批判–精修」循环迭代产出并校验结构化标注。所有图像与 Schema 先经 CLIP 编码以支持嵌入检索。最终配一套把性能拆成「Schema 合规 / 结构保真 / 取值准确」三层的评测管线。
%%{init: {'flowchart': {'rankSpacing': 24, 'nodeSpacing': 28, 'padding': 6, 'wrappingWidth': 400, 'subGraphTitleMargin': {'top': 8, 'bottom': 16}}}}%%
flowchart TD
A["112K 图像 + 6.5K JSON Schema"] --> B["CLIP 编码<br/>(图像 caption 与 Schema 描述)"]
B --> C["阶段1:图像-Schema 关联<br/>多模态最近邻检索 + 多图分组造 Schema"]
C --> D["阶段2:用户意图生成<br/>60K Persona × 风格 采样"]
D --> E["阶段3:渐进式响应生成<br/>批判-精修循环 + 人类质检"]
E --> F["SO-Bench<br/>1.8K 图–Schema–指令三元组"]
F --> G["三级评测:Schema 合规 / 字段匹配 / 完整结构匹配"]
关键设计¶
1. 视觉结构化输出任务定义:把「读图填表」形式化为 Schema 约束下的条件生成
论文先把任务钉死成一个清晰的概率形式 \(p(Y|I,X,S)\):输入是图像 \(I\)、一个嵌套 JSON Schema \(S\)(指定 key、数据类型、对象层级)、一条用户指令 \(X\)(可以精确描述,也可以含糊到「帮我存下这张海报」),输出 \(Y\) 必须同时满足两个正交约束——语法上严格 conform 于 \(S\),语义上准确反映从 \(I\) 和 \(X\) 抽取的信息。这个定义之所以关键,是它把「文档 KIE 抽几个扁平字段」升级成「面向真实下游应用的、带任意嵌套结构的 Schema 适配」:难度来源被显式拆成「视觉信息抽取」与「层级结构对齐」两件事,也正是后面三级指标分别去测的两个维度。基准的多样性由图像(域覆盖、视觉表征)和 Schema(结构复杂度、字段类型)两侧共同撑起。
2. 三阶段人在环路自动标注管线:用 frontier 模型造数据、用 CLIP 检索保相关、用 critic-refiner 保质量
这是整个 benchmark 能规模化的发动机,针对「人工标注嵌套 JSON 标注成本极高、随机配对 Schema 又不相关」的痛点。阶段一 图像–Schema 关联:先用 GPT-4o 给图像生成 dense caption,再用 CLIP 抽图像 / caption / Schema 三种嵌入;对每张图在 Schema 库里做多模态最近邻检索,相似度按加权余弦 \(\text{sim}(I,S)=w_1\cos(E_I,E_S)+w_2\cos(E_T,E_S)\) 算(\(E_I,E_T,E_S\) 分别是图像、caption、Schema 嵌入),取 top-\(k\)(\(k=20\))后再让 GPT-5 从候选里选最匹配的一个,并掺入随机选择增加多样性。当库里没有合适 Schema 时走多图分组现造:对查询图取 top-\(m\)(\(m=3\))近邻图,把这一簇图一起喂给 Schema 生成器,让它提炼出跨图共享的统一嵌套 Schema(如多条目菜单、多 section 表单),图–图相似度用四项加权余弦 \(\text{sim}(I_i,I_j)=w_1\cos(E_{I_i},E_{I_j})+w_2\cos(E_{I_i},E_{T_j})+w_3\cos(E_{T_i},E_{I_j})+w_4\cos(E_{T_i},E_{T_j})\)。阶段二 用户意图生成:借鉴 persona-based prompting,先合成 6 万个在年龄、职业、地域上各异的用户画像,每个「图–Schema」对随机采一个画像 + 一种聊天风格,产出对话式 / 直接 / 含糊 / 甚至方言等多样指令。阶段三 渐进式响应生成与精修:用 Gemini-2.5-Pro 产初版输出(必要时喂 OCR 文本、ground-truth 值、布局元数据、UI 的 HTML 结构作辅助),再用 LLM validator 组成的 critic-refiner 工作流检查 Schema 合法性与语义一致性、给改进建议,非法或次优输出最多重生成三次,GPT-5 负责精修;全程八位人类领域专家在每阶段质检过滤后才放行下一阶段。
3. 三级分解评测指标:把「对不对」拆成 Schema 合规、字段匹配、完整结构匹配,并配 exact/fuzzy/ignore 三档匹配
针对「结构化输出对错不是二元」这一痛点,作者沿用 BFCL 的 AST 评测思路,把模型输出和 dict 形式的 ground truth 递归逐 key 比较,并把性能拆成三个递进指标。① Schema Validation Accuracy:输出相对 Schema 定义合法的样本占比,纯测语法合规。② Field Matching Accuracy (FMA):设 \(F(D)\) 为嵌套字典 \(D\) 的全部字段(含中间嵌套节点与叶子),则
其中嵌套结构当且仅当其所有子字段都匹配才算匹配。③ Full Structure Matching Accuracy (FSMA):整条输出全字段都匹配才算 1,即
而 \(\text{Match}\) 本身分三档:primitive 默认 exact;当 ground truth 不含图中显式文字(如折线图里的精确数值)时允许 fuzzy(字符串用归一化编辑距离、数值用相对误差);对非必填且与用户意图无关的字段标 ignore(直接给 1 分跳过比较)。为支持这种细粒度评测,管线里专门加了一步「评测标签生成」——把图、Schema、用户意图、最终 ground-truth 一起喂给 MLLM,为每个 primitive 字段生成 {exact, fuzzy, ignore} 的匹配类型。
实验关键数据¶
主实验¶
在 1.8K 测试集上横扫开源与闭源模型,三档核心指标(fuzzy 版)如下(节选):
| 模型 | Schema 合规 | 字段匹配(Fuzzy) | 完整匹配(Fuzzy) |
|---|---|---|---|
| Gemini-2.5-Pro | 97.74 | 73.14 | 18.91 |
| GPT-5 | 96.38 | 62.74 | 11.60 |
| Gemini-2.5-Flash | 91.69 | 66.32 | 11.31 |
| Claude-4.5-Sonnet | 96.50 | 62.67 | 8.74 |
| Qwen2.5-VL (3B) | 60.71 | 41.59 | 2.68 |
| Phi-4-Vision (5.6B) | 22.04 | 27.78 | 0.72 |
最强的 Gemini-2.5-Pro 在 Schema 合规上接近 98%,说明 frontier 模型「会按 Schema 框架填空」;但完整结构匹配上谁都没破 20%(最高 18.9%),说明「整条输出全字段都填对」仍是大坑。小模型(3B/7B)在所有指标上都与闭源大模型有巨大鸿沟,尤其 Schema 合规普遍只有 50%–70%。作者进一步发现:字段匹配与完整匹配之间的大落差,常常源于模型对某些字段给了语义上正确但 fuzzy 匹配抓不住的答案——这也是他们坦言的指标局限。
关联性与消融分析¶
| 对比维度 | 关键发现 |
|---|---|
| 与外部 benchmark 相关性 (Table 2) | SO-Bench 与 BFCL(r=0.79)、MMMU(r=0.79)、MIABench(r=0.88)、LiveBench-Coding 强相关,说明结构化输出能力与 agentic 工具调用、通用视觉知识、视觉指令跟随高度绑定;与 IFEval、RefCOCO 几乎不相关 |
| Schema 深度 (Fig.6) | 深度越大两项指标都单调下降;GPT-5 / Gemini-2.5-Pro 在深度 >6 时仍能保持 Schema 合规 >95%,而 Intern3.5-VL(4B) 暴跌约 40% |
| 结构化 API vs 指令跟随 (Table 3) | GPT-4o 系用结构化 API 时 Schema 合规略升但字段匹配反降;GPT-5/Gemini 系反而是指令 prompt 更优——说明 API 强约束 Schema 的同时可能牺牲取值准确性 |
训练实验¶
作者用同一管线(去掉人工核验)造了 11.4 万训练样本,在内部 3B 稠密模型(ViTDet-L 视觉编码器 + AnyRes)上做 SFT 与 RLVR:
| 配置 | Schema 合规 | 字段匹配(Fuzzy) | 完整匹配(Fuzzy) |
|---|---|---|---|
| Baseline 3B | 58.7 | 45.6 | 4.4 |
| +RLVR | 72.0 | 47.1 | 4.9 |
| +SFT | 81.3 | 54.9 | 6.5 |
SFT 把 Schema 合规拉高 ~20 个点、字段匹配 ~13 个点,全量训练后 3B 模型甚至能逼平 10 倍大的模型;且随数据规模上升性能持续涨、未见 plateau。
关键发现¶
- 「按 Schema 框架填空」与「全字段填对」是两种难度天差地别的能力——所有模型在前者上能到 95%+,在后者上没人破 20%。
- 结构化输出能力与 agentic 工具调用(BFCL)、视觉指令跟随(MIABench)的强相关,暗示它本质考的是「多模态结构化推理」而非单纯 OCR。
- 强约束的结构化输出 API 不是免费午餐:它保了语法合规,却可能压住内容生成、降低取值准确率。
亮点与洞察¶
- 把模糊的「结构化输出对不对」拆成三级正交指标 + 三档匹配策略,既能公平比较不同 Schema 响应,又把「语法合规」和「取值准确」彻底解耦——这套评测协议本身比 benchmark 数据更可复用。
- persona × 风格采样造指令这个 trick 很巧:用 6 万用户画像随机配聊天风格,一举把单调的「按 Schema 抽信息」扩成对话式 / 含糊 / 方言等真实分布,逼近线上 agent 面对的指令噪声。
- 多图分组现造 Schema 解决了「单图模板太浅」的问题:对一簇近邻图提炼共享嵌套结构,天然造出多条目菜单、多 section 表单这类深层 Schema,把结构复杂度推到 22 层。
- 相关性分析给了一个可迁移结论:想提升结构化输出,与其堆 OCR 能力,不如补 agentic 推理与视觉指令跟随——这对下游做 agent 的人是直接的能力配方。
局限与展望¶
- 作者自承评测只用 exact/fuzzy 匹配、不做语义匹配(为了简单与可复现),导致很多「语义对但表述不同」的字段被误判为错,这正是字段匹配与完整匹配间大落差的一部分来源;更灵活的匹配函数是明确的未来工作。
- 数据偏向英文、且对测试集做了下采样,多语种、长尾域的结构化输出能力未覆盖。
- 标注管线重度依赖 GPT-5 / Gemini-2.5-Pro 当 generator 与 critic,ground-truth 本身带这些 frontier 模型的偏置;⚠️ 人在环路虽缓解但难完全消除「用强模型评强模型」的循环依赖问题。
- 训练实验只在单个内部 3B 模型上做,SFT/RLVR 的增益能否泛化到更大模型或不同架构未验证。
相关工作与启发¶
- vs 文本结构化 benchmark(StructEval / JSONSchemaBench / StructBench):它们只测纯文本输入下的格式保真与约束解码,SO-Bench 把战场搬到视觉输入,多了「从图像抽证据并对齐嵌套 Schema」这一核心难度。
- vs 视觉结构化先例(Pix2Struct / Image2Struct / IR3D-Bench):前者偏截图转 HTML / 渲染图语义解析 / 纯合成 3D 重建,领域窄;SO-Bench 覆盖 UI / 自然图 / 文档 / 图表四域 + 真实定制 Schema。
- vs 文档 KIE / OCR benchmark(OCRBenchV2 / CC-OCR / OmniDocBench):它们做扁平关键词抽取、一层字典模板,SO-Bench 强调带嵌套结构、应用驱动的真实 JSON Schema 适配。
- vs agentic 工具调用 benchmark(BFCL / Tau-Bench / ToolVQA):它们聚焦文本 API 或有限工具集,SO-Bench 用大规模多样 JSON Schema 把感知与结构化推理桥接起来,且实验证实二者强相关。
评分¶
- 新颖性: ⭐⭐⭐⭐⭐ 首个系统评测视觉结构化输出的 benchmark,任务定义、数据管线、三级指标都是空白填补。
- 实验充分度: ⭐⭐⭐⭐⭐ 22 个开闭源模型横扫 + 外部 benchmark 相关性 + Schema 深度 + API 对比 + SFT/RLVR 训练,维度极全。
- 写作质量: ⭐⭐⭐⭐ 任务定义与管线讲得清楚,指标公式完整;部分图表分析需翻附录。
- 价值: ⭐⭐⭐⭐⭐ 直击 agent 落地刚需,评测协议与数据管线都高度可复用,且开源。