five

InvoiceBenchmark

收藏
Hugging Face2026-04-27 更新2026-04-28 收录
下载链接:
https://huggingface.co/datasets/jngb-labs/InvoiceBenchmark
下载链接
链接失效反馈
官方服务:
资源简介:
InvoiceBenchmark 是一个包含 200 份合成发票的数据集,专门设计用于评估语言模型处理发票数据的准确性,特别是数字读取和结构化提取能力。数据集提供了精确到分的地面真值标注,包含文本(Markdown)和视觉(PDF/PNG)两种格式的发票,以测试模型在不同输入形式下的表现。每份发票在五个维度上进行了系统性的控制变量设计:增值税表述方式(4种变体)、折扣表述方式(5种变体)、数字格式(英语、德语、瑞士格式3种)、布局(表格、段落、混合3种)和一致性(正确、小计错误、总计错误3种)。此外,10%的样本包含边缘案例(如反向收费、混合增值税率等)。数据集还提供了生成工具、评估框架和基准测试结果(测试了5种开源模型),适用于文档理解、多模态处理和企业AI应用场景的评估。所有货币值均使用Python Decimal类型精确计算,避免浮点数误差。数据集采用MIT许可,支持自由使用和结果发布。

InvoiceBenchmark is a dataset containing 200 synthetic invoices, specifically designed to evaluate the accuracy of language models in processing invoice data, particularly in number reading and structured extraction. The dataset provides ground truth annotations accurate to the cent, including invoices in both text (Markdown) and visual (PDF/PNG) formats to test model performance across different input forms. Each invoice is systematically designed with controlled variables across five dimensions: VAT representation (4 variants), discount representation (5 variants), number format (English, German, Swiss formats, 3 types), layout (table, paragraph, mixed, 3 types), and consistency (correct, subtotal error, total error, 3 types). Additionally, 10% of the samples include edge cases (e.g., reverse charge, mixed VAT rates). The dataset also provides generation tools, an evaluation framework, and benchmark results (testing 5 open-source models), making it suitable for evaluating document understanding, multimodal processing, and enterprise AI applications. All monetary values are calculated precisely using Python Decimal type to avoid floating-point errors. The dataset is licensed under MIT, supporting free use and publication of results.
创建时间:
2026-04-24
原始信息汇总

InvoiceBenchmark 数据集概述

基本信息

  • 数据集名称: InvoiceBenchmark
  • 许可证: MIT
  • 任务类型: 问答(question-answering)
  • 语言: 英语
  • 数据集大小: 少于 1000 条样本
  • 标签: benchmark、invoices、arithmetic、structured-extraction、enterprise-ai、llm-evaluation、number-formatting、vat、financial-documents、document-understanding、vision、multimodal、ocr

数据集描述

该数据集包含 200 张合成发票,具有精确到分的真实标注(ground truth),专门用于评估语言模型从发票中读取数字的能力。每种发票提供两种格式:

  • Markdown 版本:纯文本格式,适合直接输入到提示词中。
  • PDF 版本:渲染后的样式化文档,同时提供 200 DPI 的 PNG 版本,适合多模态或视觉模型作为图像输入。
  • 地面真相(Ground Truth):每个发票对应一个 JSON 文件,记录规范的正确值、构建参数以及(对于注入错误的发票)正确值和故意错误值。

所有货币值使用 Python 的 Decimal 类型,采用 ROUND_HALF_UP 舍入方式,确保精确到分。

五个控制维度

每个发票沿以下五个受控轴变化,目的是在控制其他变量不变的情况下,单独变化一个因素,从而归因模型的失败原因:

1. VAT 表述(4 种变体)

  • explicit_included:价格已含 VAT,模型不得重复计算
  • explicit_excluded:VAT 额外加收
  • implicit_rate_stated:税率可见,是否含税不明确
  • implicit_no_rate:显示 VAT 金额,但省略税率

2. 折扣表述(5 种变体)

  • none:无折扣(作为模型不会虚构折扣的校验)
  • explicit_percentage:明确百分比折扣
  • explicit_amount:固定金额减免
  • trade_terms:条件性折扣(如“2/10 net 30”),不应应用
  • obfuscated:百分比隐藏在参考字符串中

3. 数字格式(3 种变体)

  • english:1,234.56
  • german:1.234,56(德语逗号是数据集中最具陷阱性的格式)
  • swiss:1234.56

4. 布局(3 种变体)

  • table:Markdown 管道表格
  • paragraph:散文段落
  • mixed:行项目用表格,摘要用散文

5. 一致性(3 种变体)

  • correct(60%):发票加总正确
  • subtotal_error(20%):小计金额错误 ±5 到 ±50 欧元
  • total_error(20%):总计金额错误 ±1–3%

第六维度:边缘情况(占数据集的 10%)

  • reverse_charge:0% VAT(第 196 条)
  • mixed_vat:两种 VAT 税率
  • credit_note:负金额(贷项通知单)
  • single_item:单一行项目

基准测试结果

2026 年 5 月测试了五种开放权重模型,采用两种评估条件:

  • 自动驾驶模式:模型直接读取发票并报告总计。
  • 混合模式:模型提取结构化字段,Python 重新计算总计。
模型 解析率 精确匹配(自动驾驶) 精确匹配(混合) 错误但通过审核 错误检测率 最严重单个错误 每张发票耗时 硬件 运行成本
Llama 3.1 8B 99% 69% 43% 23% 18% 99.9% 25s MacBook Air 免费
Qwen3 8B 57% ~85%* ~77%* ~13%* 45% 100%* 32s 1× H100 €2.73/小时
Gemma 4 31B 100% 83% 83% 18% 83% 3% 19s 1× H100 €2.73/小时
QwQ 32B 81% ~73%* ~77%* ~11%* 38% 100%* 112s 1× H100 €2.73/小时
Llama 3.3 70B 100% 77% 81% 16% 75% 99.9% 3s 8× H100 €23/小时

*其中模型产生可解析输出的发票。

关键发现

  1. 推理模型表现更差:8B 推理模型 43% 的输出无法解析;32B 推理模型在 22 张发票上推理出 €0.00。
  2. 更大的模型不一定更好:Llama 70B(8 GPU)不如 Gemma 31B(1 GPU)。
  3. 德语逗号是最昂贵的标点符号364.065,64 被读作 364.065 而非 364,065,导致结果偏差。

数据格式说明

发票(Markdown)

纯文本渲染的欧洲 B2B 发票。公司名称为虚构(如 Pierce & Pierce、Vandelay Industries 等),地址为编造,IBAN 具有正确的国家前缀和长度但数字随机。

发票(PDF)

样式化的单页 PDF 发票(同时提供 200 DPI PNG 版本)。包含行项目表格、头部信息和摘要部分。德语、瑞士和英语数字格式在视觉上保留。

地面真相(JSON)

每条记录包含:

  • invoice_id:发票编号
  • vendor:供应商名称
  • subtotal / vat_rate / vat_amount:小计、VAT 税率、VAT 金额
  • discount:折扣类型、值、应用对象、是否条件性
  • discount_amount / total:折扣金额、总计
  • variants:所有五个维度的变体及边缘情况
  • rendered_subtotal / rendered_total:模型实际看到的金额(与 total 的区别在于错误注入的发票中,rendered_total 是错误值,total 是正确答案)
  • error_note:错误注释

已知限制

  • 所有发票使用英语渲染,无论供应商隐含国籍。
  • 主语料库仅使用 20% 的单一 VAT 税率,未模拟国家特定税率(19% DE、21% NL、25% NO)。
  • 语料库设计为 200 张发票,可通过 --count 参数扩展。
  • 公司名称来源于电影、电视和小说,可能影响已知模型的解析。

如何使用

生成语料库

bash python invoice_generator.py --output ./output --count 200 --seed 42

确定性生成,需 Python 3.10+,无外部依赖。

验证地面真相

bash python invoice_generator.py --output ./output --verify

运行基准测试

bash

本地模型(Ollama)

python run_benchmark.py --models llama3.1:8b

远程模型(vLLM)

python run_benchmark.py --models vllm:google/gemma-4-31b-it --vllm-url http://gpu-server:8000/v1

多个模型

python run_benchmark.py --models llama3.1:8b,qwen3:8b --conditions B

支持两种条件:B(自动驾驶)和 C(混合模式)。

评分标准

  • 精确匹配:模型的报告总计与地面真相总计精确到分一致。
  • 错误但足够接近:答案在 5% 范围内(可通过人工审核的错误类型)。
搜集汇总
数据集介绍
main_image_url
构建方式
InvoiceBenchmark数据集由Jakob Neugebauer构建,旨在精确评估语言模型在处理发票数字时的能力。数据集包含200张合成发票,每张发票均以Markdown纯文本、PDF和PNG图像三种格式呈现,并配以精确到分的真实标注(ground truth)JSON文件。发票的生成通过一个完全确定性的Python脚本实现,所有货币数值均采用Python的Decimal类型并执行ROUND_HALF_UP舍入,杜绝浮点数误差。数据集的构建围绕五个可控维度展开:增值税表述、折扣表述、数字格式、布局样式和一致性,每个维度均包含多种变体,以确保模型失败时可归因于特定因素。此外,10%的样本引入了边缘案例,如反向征税、混合增值税、贷项凭单等,增强了评估的全面性。生成脚本和评估工具均随数据集提供,支持用户复现和扩展。
特点
该数据集的核心特点在于其精细化的控制结构和多模态呈现。首先,每个样本均沿五个维度系统变化,涵盖增值税、折扣、数字格式(如英语的逗号分隔、德语的句点逗号互换、瑞士的撇号分隔)、布局(表格、段落、混合)及一致性(正确、小计错误、总计错误),使得评估结果具有高度可解释性。其次,同一张发票以文本和视觉两种形态并存,分别适配纯语言模型与多模态模型,从而支持对模型读取与理解能力的对比分析。值得注意的是,数据集包含了故意注入的错误(占40%),并标注了真实值与错误渲染值,专门用于检测模型是否具备异常识别能力。此外,所有货币运算均经过精确处理,确保标注无误,而公司名称虽源自影视作品,但不影响数值评估的客观性。
使用方法
使用InvoiceBenchmark时,用户可通过运行Python脚本直接生成或验证数据集,并借助内置评估框架进行模型测试。用户首先运行invoice_generator.py指定输出目录和样本数量,即可生成完整的数据集及其真实标注。评估时,run_benchmark.py支持两种对比条件:一是'autopilot'模式,让模型直接读取发票并输出总金额;二是'hybrid'模式,由模型提取结构化字段后由Python重新计算总额,以区分模型的理解能力与计算依赖。该脚本兼容本地模型(如通过Ollama)和远程模型(如通过vLLM),并支持单次运行多个模型。最终结果以CSV格式存储,涵盖精确匹配率、近似误差范围(5%以内)及错误检测率等关键指标,便于用户系统衡量模型的真实表现与潜在风险。
背景与挑战
背景概述
InvoiceBenchmark是由Jakob Neugebauer于2026年创建的一个专门用于评估语言模型发票处理能力的数据集。在当今企业级人工智能应用中,发票处理被视为检验模型数位理解与精准提取能力的试金石,其重要性不言而喻。该数据集的核心研究问题在于探究即便在看似简单的数值读取任务中,前沿语言模型是否真正具备可靠处理财务文档的能力。通过对五种主流开源模型在受控条件下的系统性评估,揭示了模型表现与预期之间的显著差距——最优模型仅取得83%的精确匹配率,且参数量更大的模型并未必然表现更优。这一发现对当前大语言模型在企业财务自动化领域的实际应用提出了严峻警示,推动研究社区重新审视模型在数值精度与结构化提取任务上的真实局限。
当前挑战
InvoiceBenchmark所应对的挑战涵盖了领域问题与构建过程两个层面。在领域层面,该数据集直面的核心挑战在于语言模型在处理包含多种数字格式(如英语千分位逗号、德语千分位点与逗号、瑞士千分位撇号)的发票时,极易因格式误解而导致数个数量级的数值错误,且此类错误在视觉上极具迷惑性。同时,模型还需区分条件折扣与非条件折扣、识别故意注入的错误金额,这对数值推理与异常检测能力提出了极高要求。在构建过程中,数据集的设计挑战在于如何系统性地控制五大变量维度——增值税表述、折扣规则、数字格式、版面布局及数据一致性,并通过生成逻辑确保每一份发票的基准真值精确到分,严防浮点数误差侵犯数据管道;此外,错误注入机制要求同时记录显示值与正确值,以精准度量模型在异常检测任务上的真实性能。
常用场景
经典使用场景
InvoiceBenchmark 专为评估语言模型在发票处理任务中的数值精确性而设计,其核心用例是测量模型从结构化或半结构化文本中读取并理解数字的能力。数据集包含200张合成发票,每张均以Markdown文本、PDF和PNG图像三种形式呈现,覆盖了英、德、瑞士三种数字格式,以及增值税措辞、折扣表述、布局样式、一致性和边缘案例五个受控维度。研究者可通过该基准测试模型在“自动模式”(直接输出总额)与“混合模式”(提取结构化字段后由Python计算)下的准确率,从而精细诊断模型在数字理解、格式转换和算术操作中的薄弱环节。
解决学术问题
该数据集直面当前大语言模型在金融文档处理领域一个被低估的学术挑战:数值提取与算术推理的可靠性。研究发现,即便是最先进的开放权重模型,在发票总额的精确匹配率上也仅达83%,而更大参数量的模型并未带来更好表现,推理模型甚至更差。这一问题揭示了模型对数字格式(如德国逗号分隔符)的脆弱性、对条件性折扣(如“2/10 net 30”)的误判,以及错误检测能力的不足。InvoiceBenchmark以控制变量的实验设计,首次量化了“看似简单实则易错”的数值任务中模型能力的真实边界,推动了文档理解向高精度、可审计方向发展的研究进程。
衍生相关工作
InvoiceBenchmark 的发布催生了多项相关研究与实践探索。其受控实验设计启发了针对结构化提取任务的细粒度基准构建,如将推理模型的分步思考过程与数值错误关联分析,揭示了“想得多不一定算得准”的反直觉现象。数据集中的边缘案例(如反向收费、混合税率、贷记通知)为后续工作提供了标准化测试集,推动了针对异常财务场景专门优化的微调策略开发。此外,研究者基于该基准提出了混合评估框架,即将模型提取的结构化数据送入传统计算管道,显著提升了跨格式发票处理的鲁棒性,这一范式现已被多家金融科技企业采纳为内部质检方案。
以上内容由遇见数据集搜集并总结生成
5,000+
优质数据集
54 个
任务类型
进入经典数据集
二维码
社区交流群

面向社区/商业的数据集话题

二维码
科研交流群

面向高校/科研机构的开源数据集话题

数据驱动未来

携手共赢发展

商业合作