DRT Loom Synthetic Industrial Data Twin
收藏资源简介:
DRT Loom是一个基于图的可扩展合成数据生成框架,用于创建可复现的合成工业企业。给定一个整数种子,它构建一个跨ERP、PLM、MES、CAD和企业文档的合成工业公司,然后从该单一模型派生结构化记录、知识图谱、文档、基准问题和地面真实数据。输出包含2793个实体、5309个类型化关系、204个文档、1个CAD装配体和18个带有地面真实数据的问题。
DRT Loom is a graph-based scalable synthetic data generation framework for creating reproducible synthetic industrial enterprises. Given an integer seed, it constructs a synthetic industrial company spanning ERP, PLM, MES, CAD and enterprise documents, then derives structured records, knowledge graphs, documents, benchmark problems and ground truth data from this single model. The output contains 2793 entities, 5309 typed relationships, 204 documents, 1 CAD assembly, and 18 questions with ground truth data.
DRT Loom 数据集详情
数据集概述
DRT Loom 是一个基于图的可扩展合成数据生成框架,用于创建可复现的合成工业企业环境。该框架通过一个整数种子(integer seed)构建一个覆盖多个业务领域的合成企业,并从中推导出结构化记录、知识图谱、文档、基准问题及真实答案(ground truth)。
核心特性
| 特性 | 说明 |
|---|---|
| 方法 | 图基础合成数据生成(Graph-Grounded Synthetic Data Generation) |
| 输出 | 合成工业数据孪生(Synthetic Industrial Data Twin) |
| 推理单元 | 数字推理线程(Digital Reasoning Thread) |
| 框架 | DRT Loom |
| 确定性 | 核心企业由确定性的 TypeScript 代码生成,不使用 LLM 发明实体、关系或基准真实答案 |
| 可复现性 | 同一种子可逐字节复现相同环境,不同种子生成不同环境但保持相同模式和推理类别 |
| 运行要求 | Node 20+,无需网络、API 密钥、数据库或运行时依赖 |
数据集规模(参考环境)
| 指标 | 数值 |
|---|---|
| 输入 | 一个整数种子 |
| 输出 | 2,793 个实体 · 5,309 个类型化关系 · 204 个文档 · 1 个 CAD 装配 · 18 个带真实答案的问题 |
| 运行时 | 约 30 毫秒(无网络、无 API 密钥) |
| 状态 | v0.1.0 |
输出内容结构
data/generated/ ├── dataset.json 2.1 MB 2,793 个实体和 5,309 个类型化关系 ├── gold.json 12 KB 18 个问题及其预期 ID 和值 ├── documents/ 204 个 Markdown 文件 └── nx/ 1 个 NX 装配导出
- 实体 记录其来源文件(sourceFile),包含 ID、类型、标签、属性和来源位置。
- 关系 是类型化的,并带有
EXTRACTED、INFERRED或AMBIGUOUS的来源标记。 - 文档 为 Markdown 格式,某些事实仅出现在文档中(如变更通知中的例外、多个检验报告中才能看到的失效模式)。
- 基准问题 每条问题携带正确答案应引用的实体 ID 和应陈述的标量值。
支持领域
| 领域 | 依赖 | 贡献内容 |
|---|---|---|
erp(核心) |
— | 客户、供应商、销售/采购订单、库存、供应商列表 |
plm(核心) |
erp | 零件、修订、图纸、产品、变体、物料清单、变更单 |
mes |
erp, plm | 工作中心、生产订单、工艺路线、零件预留 |
cad |
plm | CAD 装配和组件、NX 装配导出 |
documents |
erp, plm | 规格书、作业指导书、协议、通知、会议纪要、电子邮件 |
logistics |
erp | 发货(针对已派发的销售订单) |
核心领域(erp 和 plm)不可禁用;若禁用则视为配置错误。领域依赖会自动闭合。完整领域集可生成全部 18 个问题;仅 ERP 和 PLM 可生成 11 个问题。
配置参数
| 变量 | 默认值 | 作用 |
|---|---|---|
SEED |
20260728 |
指定 npm run gen 生成的环境 |
OUT_DIR |
data/generated |
输出目录(相对或绝对路径) |
BENCH_ROOT |
仓库根目录 | 提取器读取和写入的树 |
DRT_DATASET |
参考语料 | 评分器和图谱构建读取的数据集 |
DRT_GRAPH_OUT |
<数据集目录>/graph |
图谱构建的输出位置 |
PORT |
5173 |
查看器端口 |
config.yaml 支持配置公司名称、规模(small/medium/large)和领域选择;验证严格且会明确指出错误。
生成自定义企业
可通过交互式命令或一行命令生成自定义企业,例如:
bash npm run generate -- --name "Alpine Drive Systems" --domains erp,plm,cad --size small
生成结果输出到独立目录,包含 config.yaml、generation.json、dataset.json、gold.json,以及(如选中)documents/、nx/、graph/。相同配置和种子可复现相同工件。
辅助工具
- 知识图谱构建(
npm run graph):生成 2,793 个节点、5,128 条边的有向图,输出graph.json、graph.html、graph.cypher。图谱使用 Leiden 聚类,社区数量不可复现(构建时可能略有差异)。 - 环境浏览(
npm run view):静态文件 + 标准库服务器,不依赖构建步骤,提供系统视图、线程追踪、订单档案、问题重推导和评分功能。 - 评分(
src/score/score.ts):无依赖,无需 LLM 评判,支持引用评分和数值评分,包含名称解析和 NaN 处理。 - 着陆页(
npm run site):页面上的所有数字均由生成器运行产生,CI 自动重新生成,避免页面错误。
评分示例
评分可计算精确率、召回率、F1 分数以及数值匹配情况:
ts scoreCitations(enrichCitations(["SO-4711", "SO-4716"], answer), q.expectedIds); // → { precision: 1, recall: 0.074, f1: 0.138, hit: 2, expected: 27, cited: 2 }
scoreValues(answer, q.expectedValues); // → { matched: 3, total: 3, missing: [] }
知识图谱内容
生成的图包含 2,793 个节点和 5,128 条边(合并重复边后),保留 9 条 AMBIGUOUS 和 5,119 条 EXTRACTED 来源标记的边。图构建过程会创建 Python 虚拟环境并安装 Graphify 库。




