
DataArc-SynData-Toolkit
按规则批量造合成数据,替代敏感真实数据
DataArc-SynData-Toolkit 是 DataArcTech 开源的合成数据生成平台,用 Python 编写。它面向需要大量高质量训练数据但受限于隐私、成本或数据稀缺的团队,提供从配置到生成的一站式流程。核心能力包括:按字段和分布规则生成结构化表格数据,支持自定义约束与业务逻辑,可批量产出用于机器学习训练、测试和演示的数据集;同时兼顾数据脱敏场景,用合成数据替代真实敏感数据。项目以工具包形式组织,便于集成到现有数据管道,也适合快速搭建合成数据实验。相比从零写生成脚本,它把常用生成策略和配置抽象成可复用模块,降低门槛,让算法工程师和数据科学家更专注于模型与业务,而不是数据构造本身。
项目数据
使用教程
环境要求
- Python 环境(README 未标注具体版本,详见 docs/DEPENDENCIES.md)
- uv 包管理工具(README 用 pip install uv 安装)
- GUI 模式需要 Node.js 环境与 pnpm
- 调用大模型需要 OpenAI 兼容的 API Key
- 评估功能需要 Confident AI 的 API Key
安装与启动步骤
-
1安装 uv
README 要求先安装 uv 作为依赖管理工具,若已安装可跳过此步直接执行后续 uv 命令。
pip install uv -
2安装依赖
在项目根目录执行 uv sync,按 pyproject 配置同步安装全部依赖,硬件与依赖细节见 docs/DEPENDENCIES.md。
uv sync -
3准备配置文件
参照 configs 下的示例文件修改成自己的生成配置,README 给出 sdg.yaml、sft.yaml、grpo.yaml、eval.yaml 四种范例。
-
4填写 API 密钥
把密钥写入 .env 文件。OPENAI_API_KEY 必填,OPENAI_BASE_URL 为可选的自定义接口地址,CONFIDENT_API_KEY 用于评估。
OPENAI_API_KEY=sk-xxx OPENAI_BASE_URL=https://api.openai.com/v1 CONFIDENT_API_KEY=confident_us_xxx -
5运行评估
按评估配置样例写好 configs/eval.yaml 后执行该命令,结果会保存到配置的输出目录,并可在 Confident AI 网页可视化。
uv run sdg eval configs/eval.yaml -
6启动 GUI 后端
使用 FastAPI 启动后端服务,uv 的 dev 模式会自动重载;需另开一个终端执行前端构建步骤。
uv run fastapi dev sdgsystem/app/main.py -
7构建前端界面
切换到前端目录并安装依赖,以便配合后端使用图形界面完成零代码操作。
cd sdgsystem/webui pnpm install
关键配置
| 配置项 | 必填 | 说明 | 示例 |
|---|---|---|---|
OPENAI_API_KEY | 是 | 调用 OpenAI 兼容接口生成数据所需的密钥 | sk-xxx |
OPENAI_BASE_URL | 否 | 自定义的 OpenAI 接口基础地址 | https://api.openai.com/v1 |
CONFIDENT_API_KEY | 否 | 访问 Confident AI(deepeval)评估服务的密钥,注册后可免费创建 | confident_us_xxx |
configs/sdg.yaml | 是 | 合成数据生成的主配置文件示例,按需修改 | configs/sdg.yaml |
configs/sft.yaml | 否 | SFT 训练数据生成配置示例 | configs/sft.yaml |
configs/grpo.yaml | 否 | GRPO 训练数据生成配置示例 | configs/grpo.yaml |
如何确认成功
执行 uv run sdg eval configs/eval.yaml 后无报错并输出结果文件到配置的输出目录,即表示运行成功。
常见问题
Q:没有 uv 可以吗?
A:README 的安装与运行命令全部基于 uv,建议先 pip install uv,再在项目根目录执行 uv sync 安装依赖。
Q:必须填 OPENAI_BASE_URL 吗?
A:不必。README 标注该项为 Optional,留空时使用默认 OpenAI 地址,使用代理或兼容接口时才需要填写。
Q:评估结果在哪里看?
A:结果可在 Confident AI 网页上可视化查看,同时也会保存到配置文件中指定的输出目录。
Q:GUI 怎么启动?
A:先执行 uv run fastapi dev sdgsystem/app/main.py 启动后端,再另开终端进入 sdgsystem/webui 执行 pnpm install。
注意事项
- README 节选中未给出获取源码的命令,请自行克隆或下载仓库到本地后再执行上述步骤
- .env 中包含真实密钥,切勿提交到版本库或公开分享
- 安装章节疑似缺失第 1 步,依赖与硬件要求请以 docs/DEPENDENCIES.md 为准
- 前端构建还需要 pnpm,请提前安装 Node.js 环境
核心亮点
- 提供结构化表格数据的规则化生成能力,可直接用于模型训练与测试
- 支持自定义约束和业务逻辑,生成结果更贴近真实分布
- Python 工具包形态,便于集成进现有数据管道和实验流程
不足之处
- 文档与示例丰富度待观察,上手可能需要阅读源码
- 社区规模和生态插件相对有限,长期维护节奏待观察
适用场景
- 金融、医疗等敏感行业用合成数据替代真实数据做模型训练
- 为机器学习项目快速构造测试集和演示数据集
- 在真实数据稀缺或标注成本高时扩充训练样本
替代项目
SDV、Faker
项目介绍
上一篇:OpusFilter
同类项目推荐
X-AnyLabeling
开源
一站式AI辅助标注,图像视频文本通吃,导出格式随心配
X-AnyLabeling: A lightweight, efficient, and unified cross-platform desktop applicat···
distilabel
开源
基于论文的合成数据流水线,快速生成高质量 AI 反馈数据。
Distilabel is a framework for synthetic data and AI feedback for engineers who need ···
DataGen
开源
用大模型一键生成定制化训练数据,告别数据荒
[ICLR'25] DataGen: Unified Synthetic Dataset Generation via Large Language Models
stopes
开源
一键准备多语言翻译数据,从清洗到挖掘平行语料
A library for preparing data for machine translation research (monolingual preproces···