Omni OCR Benchmark

Omni OCR Benchmark

一个基准测试工具,用于比较不同大型多模态模型(如 gpt-4o)的 OCR 和数据提取能力,评估文本和 JSON 提取的准确性。此基准测试的目标是发布一个全面的 OCR 准确性基准,涵盖传统的 OCR 提供商和多模态语言模型。评估数据集和方法均为开源,我们鼓励扩展此基准测试以涵盖任何其他提供商。

开源 LLM 基准测试结果 (2025 年 3 月) | 数据集 基准测试结果 (2025 年 2 月) | 数据集

方法论

主要目标是评估从文档中提取 JSON 的能力。为了评估这一点,Omni 基准测试运行 文档 ⇒ OCR ⇒ 提取。衡量模型 OCR 页面的能力,并以 LLM 可以解析的格式返回内容。

评估指标

JSON 准确率

我们使用修改后的 json-diff 来识别预测的 JSON 对象和真实 JSON 对象之间的差异。您可以查看 evaluation/json.ts 文件以查看确切的实现。准确率计算如下:

$$\text{准确率} = 1 - \frac{\text{差异字段的数量}}{\text{总字段数}}$$

文本相似度

虽然主要的基准测试指标是 JSON 准确率,但我们已包括 levenshtein distance 作为提取文本和真实文本之间文本相似度的度量。距离越小表示相似度越高。请注意,此评分方法会严重惩罚不符合真实数据确切布局的准确文本。

在下面的示例中,LLM 可以毫无问题地解码两个文本块。所有信息都是 100% 准确的,但标题文本(地址、电话号码等)的略微重新排列会导致编辑距离评分的巨大差异。

运行基准测试

  1. 克隆 repo 并安装依赖项:npm install
  2. 准备测试数据 1. 对于本地数据,将单个文件添加到 data 文件夹。 2. 要从数据库中提取数据,请在 .env 中添加 DATABASE_URL
  3. models.example.yaml 文件复制到 models.yaml。在 .env 中为您要测试的模型设置 API 密钥。查看 支持的模型
  4. 运行基准测试:npm run benchmark
  5. 结果将保存在 results/<timestamp>/results.json 文件中。

支持的模型

要启用特定模型,请在 src 目录中创建一个 models.yaml 文件。查看 models.example.yaml 文件以获取所需的变量。

models:
 - ocr: gemini-2.0-flash-001 # 用于 OCR 的模型
  extraction: gpt-4o # 用于 JSON 提取的模型
 - ocr: gpt-4o
  extraction: gpt-4o
  directImageExtraction: true # 是否使用模型原生的图像提取功能

您可以在 src/models/ 文件夹中查看每个模型的配置。

闭源 LLM

| 模型提供商 | 模型 | OCR | JSON 提取 | 所需 ENV 变量 | |---|---|---|---|---| | Anthropic | claude-3-5-sonnet-20241022 | ✅ | ✅ | ANTHROPIC_API_KEY | | OpenAI | gpt-4o | ✅ | ✅ | OPENAI_API_KEY | | Gemini | gemini-2.0-flash-001, gemini-1.5-pro, gemini-1.5-flash | ✅ | ✅ | GOOGLE_GENERATIVE_AI_API_KEY | | Mistral | mistral-ocr | ✅ | ❌ | MISTRAL_API_KEY | | OmniAI | omniai | ✅ | ✅ | OMNIAI_API_KEY, OMNIAI_API_URL |

开源 LLM

| 模型提供商 | 模型 | OCR | JSON 提取 | 所需 ENV 变量 | |---|---|---|---|---| | Gemma 3 | google/gemma-3-27b-it | ✅ | ❌ | | | Qwen 2.5 | qwen2.5-vl-32b-instruct, qwen2.5-vl-72b-instruct | ✅ | ❌ | | | Llama 3.2 | meta-llama/Llama-3.2-11B-Vision-Instruct-Turbo, meta-llama/Llama-3.2-90B-Vision-Instruct-Turbo | ✅ | ❌ | | | ZeroX | zerox | ✅ | ✅ | OPENAI_API_KEY |

云 OCR 提供商

| 模型提供商 | 模型 | OCR | JSON 提取 | 所需 ENV 变量 | |---|---|---|---|---| | AWS | aws-text-extract | ✅ | ❌ | AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, AWS_REGION | | Azure | azure-document-intelligence | ✅ | ❌ | AZURE_DOCUMENT_INTELLIGENCE_ENDPOINT, AZURE_DOCUMENT_INTELLIGENCE_KEY | | Google | google-document-ai | ✅ | ❌ | GOOGLE_LOCATION, GOOGLE_PROJECT_ID, GOOGLE_PROCESSOR_ID, GOOGLE_APPLICATION_CREDENTIALS_PATH | | Unstructured | unstructured | ✅ | ❌ | UNSTRUCTURED_API_KEY |

基准测试仪表板

您可以使用基准测试仪表板轻松查看每次测试运行的结果。查看 dashboard documentation 了解更多详细信息。

许可证

该项目根据 MIT 许可证获得许可 - 有关详细信息,请参阅 LICENSE 文件。