【免费下载链接】ExtractBench
做文档抽取(Document Extraction)评测时,最常见的困惑是:模型整体分数不高,却说不清到底错在哪。是长文档撑不住?扫描件看不清?还是跨页表格处理不好?ExtractBench是一个面向 Schema 引导式企业文档结构化抽取的评测基准,它的五维标签体系(任务挑战、感知挑战、表格结构、长度、业务领域)可以把低分归因到具体原因,而不是只给你一个笼统的总分。
一分钟了解 ExtractBench 评测基准
ExtractBench 的任务定义很清晰:输入一份完整文档(born-digital 或扫描件)+ 用户编写的 JSON Schema,系统必须返回Schema 校验通过的 JSON,且每个值都要给出来源页码和 bounding box 作为证据。
数据集规模:
- 370 份文档、4,869 页,覆盖 8 大业务领域、67 种文档类型
- 每种文档类型有且只有一个 Schema,所有同类型文档共享
- 6 个按长度划分的测试集文件,例如 short.jsonl(252 例,≤10 页)、medium.jsonl(98 例,11–50 页)、long.jsonl(20 例,>50 页)
其中 325 份为真实文档、45 份为合成长列表;另有 38 份是"干净版 + 降质版"配对文档——配对设计是后面归因分析的关键。
五维标签体系:每个文档打五个独立标签
ExtractBench 沿五个相互独立的维度给每份文档打标签(tags字段),例如"challenge:T3.b"、"domain:D1"。因为维度独立,低分才能被追溯到真实原因:
"tags": ["source:real", "challenge:T3.b", "length:short", "domain:D1"]维度一:任务挑战(challenge)——抽取本身难在哪
- T1 长列表完整性:找回跨越多页的重复结构中的每一条记录。典型失败:截断、重复/合并行、幻觉记录、值挂错记录
- T2 大海捞针:长文档中找少数几个目标事实。失败模式:漏目标、抓错出现次数、同义改写未归一化
- T3 密集文档:标签、空格、复选框、手写、扫描瑕疵挤满一页。典型失败:对空白字段"脑补"出值(过度抽取)
每类还细分了子类(T1.a–T1.e、T2.a–T2.d、T3.a–T3.e)。三类任务的文档量与预期值量级差异极大:
| 任务挑战 | 文档数 | 页数 | 预期值数量 |
|---|---|---|---|
| T1 长列表完整性 | 154 | 3,710 | 813,792 |
| T2 大海捞针 | 39 | 1,109 | 10,300 |
| T3 密集文档 | 214 | 905 | 31,200 |
一份文档可以带多个任务挑战标签,所以行之间有重叠。
维度二:感知挑战(perception)——页面是怎么被拍下来的
- P1:旋转或纯图像捕捉
- P2:扫描件图像
- P3:手写内容(数据集含 134 份扫描页文档、55 份含手写)
维度三:表格结构(structure)——表格的"坑"
- S1合并/层级表头
- S2表头不在数据正上方
- S3表格跨页续排
- S4超过 1,000 行的超大表格
- S5单元格内再塞一张表
维度四:文档长度(length)
- short / L1:≤10 页medium / L2:11–50 页long / L3:>50 页
- 该标签与数据集切分(category)始终一致,对应 docs/short/、docs/medium/、docs/long/ 下的 PDF 目录
维度五:业务领域(domain)
D1 金融与基金持仓(145 份)、D2 能源监管(98)、D3 政府采购与海关(49)、D4 汽车估值(27)、D5 供应链交易(20)、D6 医疗结算(15)、D7 法律与破产(10)、D8 房产过户披露(6)。
数据集还会额外记录交付要求(G1–G4)和来源属性(source:real325 份 /synthetic45 份)。
用标签归因:低分到底怪谁?
拿到评测报告后,用下面这套思路把"低分"拆成可执行的结论 👇
| 分数对比现象 | 归因指向 | 排查方向 |
|---|---|---|
| short 分高、long 分低 | length:L3 + challenge:T1 | 长列表截断、跨页记录合并/丢失 |
同一文档干净版得分高、*_corrupted版得分低 | perception:P1/P2/P3 | OCR 与版式感知,而非模型抽取逻辑 |
| 只在 S3/S4 文档上掉分 | structure:S3/S4 | 跨页表格拼接、超长表上下文管理 |
| T3 密集文档分数偏低 | challenge:T3 | 空白字段误填(过度抽取)、复选框漏读 |
| 某 domain 全线偏低 | domain:Dx | 领域版式与术语适配 |
降质配对是感知归因的杀手锏:38 份文档同时提供干净版和降质重扫版(如real_ftx_full.pdf与 real_ftx_full_corrupted.pdf),两者的预期值完全一致——分差直接就是"捕捉质量退化"的影响量。
三个指标 × 标签:完整阅读评测结果
ExtractBench 的评分完全确定性(无模型参与),报告按 split、tag、system 三个口径输出:
- Unified value F1:抽取值是否正确,标量字段与记录数组用统一定义
- Word-level grounding F1:值正确且预测框与该字段验收框 IoU ≥ 0.5 才算"有证据"
- Page-level grounding F1:只需指对来源页
读结果时的建议:先看 value F1 找"抽错什么",再看 grounding F1 找"能不能证明来源",最后用 tags 切片锁定是哪类文档在拖后腿。
快速上手:加载数据与运行评测
from datasets import load_dataset import json ds = load_dataset("llamaindex/ExtractBench", split="short") case = ds[0] schema = json.loads(case["data_schema"]) expected = json.loads(case["expected_output"])每条记录包含id、pdf(源文档路径)、data_schema、expected_output、field_rules(逐字段评分规则)、repeated_structure(重复记录的对齐键)与tags五个标签。完整字段说明见 README.md,评测任务配置见 eval.yaml。
跑通一条流水线:
uv run extract-bench download # 下载 data/<split>/<doc>.pdf + <doc>.test.json uv run extract-bench run <pipeline> # 推理 -> 评分 -> 按标签出报告小结
- ExtractBench 用370 份文档、8 大领域、67 种文档类型模拟真实企业级 Schema 引导抽取
- 五维标签相互独立,低分可以归因到任务挑战、感知质量、表格结构、长度或领域,而不是"玄学"
- 配合 value F1 与双粒度 grounding F1,按 tag 切片阅读报告,是最快的调优路径
下次模型得分偏低,先问一句:是哪个 tag 在拖后腿?答案往往就在那里。
【免费下载链接】ExtractBench
相关推荐
为什么"规格不足的任务"必然失败:learn-harness-engineering 教你定位能力型 Agent 失败的真正根源
为什么"规格不足的任务"必然失败:learn harness engineering 教你定位能力型 Agent 失败的真正根源 本文基于 learn harn
为什么你的网络总是连接失败?NatTypeTester帮你一键诊断NAT类型
为什么你的网络总是连接失败?NatTypeTester帮你一键诊断NAT类型 你是否经常遇到在线游戏无法组队、视频通话频繁卡顿、P2P下载速度缓慢的问题?这些问
网络通信为什么你的BrushNet配置总是失败?5分钟搞定模型路径问题
为什么你的BrushNet配置总是失败?5分钟搞定模型路径问题 你知道吗,BrushNet作为ComfyUI中强大的图像修复插件,却因为一个小小的模型路径问题让
人工智能计算机视觉AI 应用
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考