Synthetically Engineered Evaluation Data (SEED)
收藏资源简介:
SEED是一个基于AI的合成文档生成管道,使用代理AI创建合成文档数据。它从JSON模式生成逼真的PDF文档,通过多阶段批评循环进行验证,并可选择应用图像增强来模拟真实世界的扫描/传真伪影。每个文档都配有一个真实JSON标签,因此输出是一个现成的基准集。该数据集专为构建文档理解系统(如OCR、关键信息提取和文档分类)的评估数据集而设计。
SEED is an AI-powered synthetic document generation pipeline that utilizes AI Agents to create synthetic document datasets. It generates realistic PDF documents from JSON schemas, validates the generated content through multi-stage critique loops, and optionally applies image augmentation to simulate real-world scanning and faxing artifacts. Each document is accompanied by a ground-truth JSON label, thus the output constitutes a ready-to-use benchmark dataset. This dataset is specifically tailored as an evaluation benchmark for developing document understanding systems including OCR, key information extraction, and document classification.
数据集概述
数据集名称: Synthetically Engineered Evaluation Data (SEED)
数据集定位: 一个基于AI的合成文档生成管道,专门用于构建文档理解系统的评估数据集。该管道并非生产就绪解决方案,而是一项价值验证资产。
核心功能: 根据JSON Schema生成逼真的PDF文档,并通过多阶段评论循环进行验证。可选地对输出文档应用图像增强,以模拟真实世界的扫描/传真伪影。每个生成的文档都配有一个地面真相JSON标签,可直接用作基准测试集。
应用场景: 主要用于评估以下文档理解系统:
- 光学字符识别(OCR)
- 关键信息提取(KIE)
- 文档分类
使用方式: 作为一个Python模块(python -m seed_data)调用,或通过提供的批量和数据包脚本调用。
架构与流程
单文档生成管道: 采用多阶段流水线,包含多个AI代理,并具备重试机制。
data_generator → data_critic → doc_generator → doc_critic → [augmentor → aug_critic] ↑ (reject) ↑ (reject) └─────────┘ └──────────┘
批量生成管道: 支持并行处理,通过--extra参数传入高级主题描述,由场景生成器(LLM)据此创建多样化的文档场景,然后并行执行单文档管道。
数据包管道: 用于生成由多种相关文档类型组成的文档包(例如,包含信用报告、工资单和意向书的贷款申请包)。管道先生成共享上下文,然后为每种文档类型运行单文档管道,最后将所有PDF合并为一个多文档PDF文件。
关键特性
- 多样性与可控性:
--extra参数: 通过传入高级主题描述(例如,“中西部的包装食品公司的FCC广播发票”),由场景生成器创建多样化的文档场景,避免生成雷同的输出。- 生成选项(Generation Choices): 通过Schema中的
x-probability字段控制可选字段的包含与否,以及在generation_guidance.md中声明表格/内联字段的表示方式,增加文档间的差异性。
- 图像增强: 使用
augraphy库模拟扫描/传真伪影(如老化效果),增强数据的真实感。 - 多渲染器支持: 支持
xhtml2pdf、weasyprint和reportlab三种PDF渲染后端。其中xhtml2pdf为纯Python实现,开箱即用。 - 参考文档: 可选的
samples/目录用于存放真实PDF,仅作为文档质量评论家的视觉风格参考,生成阶段不会看到这些文件,且内容不会被复制到输出中。
代理角色与模型
管道包含7个AI代理,每个代理有特定的角色和默认模型:
| 代理名称 | 角色 | 默认模型 |
|---|---|---|
| Scenario Generator | 根据摘要和Schema指导创建多样化场景 | gpt-oss |
| Data Generator | 从Schema生成JSON数据,具备计算器工具用于数学验证 | nova2-lite |
| Data Critic | 根据Schema和领域规则验证数据,具备计算器工具,结构化输出 | sonnet |
| Doc Generator | 编写HTML/CSS并渲染为PDF,具备编辑工具进行针对性修复 | gpt-oss |
| Doc Critic | 视觉模型评估PDF质量(布局、字体、截断、数学等),自由文本输出 | sonnet |
| Augmentor | 选择augraphy增强配置并应用文档老化效果 | gpt-oss |
| Aug Critic | 评估增强后文档的可读性和真实感,结构化输出 | sonnet |
Schema目录结构
每个文档类型占用独立的目录,如schemas/fcc-invoice/:
schemas/fcc-invoice/ ├── schema.json # JSON Schema文件——必需 ├── generation_guidance.md # 视觉风格、数据范围、数学规则等可选指导文件 └── samples/ # 参考PDF目录——可选,本地使用,被git忽略 ├── README.md └── *.pdf # 不提交至仓库
输出结构
输出目录(./output/<batch-name>/)包含:
output/<batch-name>/
├── pdfs/ # 干净的PDF文件
├── data/ # 每个文档对应的源数据JSON文件
├── generation_scripts/ # 用于渲染PDF的HTML文件
├── augmented/ # 增强后的PDF文件(启用--augment时)
├── config/ # Schema和指导文件的副本,用于可复现性
│ └── batch_manifest.json # 完整运行元数据,包括场景、时间等信息
快速开始
使用pip安装并生成第一个文档:
bash pip install seed-data export AWS_PROFILE=your-profile-name seed-data clone-schema-library ./schemas seed-data --schema-dir ./schemas/fcc-invoice --output ./output
性能与预期
- 单个文档生成耗时约60-100秒。
- 批量生成(
--count 10 --workers 3)约需5-7分钟。 - 并发工作线程数(
--workers)建议不超过4-5个,以避免AWS Bedrock速率限制。 - 部分失败是正常现象,失败的文档不会影响其他文档的生成。




