英语 | 中文
DataSynth
LLM-Powered Synthetic Dataset Generation with Quality-Diversity Optimization
LLM 驱动的合成数据生成引擎 — 智能模板 · 并发生成 · Schema 验证 · 成本精算
Seed-to-scale synthetic data engine with auto-detected templates, concurrent generation, schema validation, and precise cost estimation
 ](https://pypi.org/project/knowlyr-datasynth/)  
   
摘要 · 问题陈述 · 形式框架 · 建筑 · 关键创新 · 快速开始 · MCP服务器 · 生态系统 · 参考文献
______________________________________________________________________
摘要
高质量训练数据是 LLM 性能的关键瓶颈。人工标注成本高($0.1–$10/条)、速度慢(100 条/天)、一致性差(标注员理解差异),而简单的 LLM 批量调用又缺少质量保证——重复样本、违反 Schema 约束、分布偏斜等问题无法自动检测。
DataSynth 提出种子驱动的合成数据生成框架 (seed-driven synthetic generation):从少量种子数据(50 条)出发,通过智能模板选择 (auto-detected templates) 匹配最佳 Prompt 策略,并发批量生成 + Schema 验证 + 跨批次去重,以 $0.001–$0.01/条的成本生产高质量训练数据。系统实现「种子 → 模板 → 生成 → 验证 → 去重 → 统计」的完整管线,支持增量续跑和后置钩子自动触发质检。
DataSynth 实现种子驱动的合成数据生成框架。该系统自动检测数据类型(指令响应/偏好对/多回合对话),选择专门的提示模板,通过并发LLM调用(Anthropic/OpenAI)生成数据,根据模式约束(类型/范围/枚举/长度)进行验证,跨批次进行重复数据消除,并根据每个模型的定价提供精确的成本估算。支持增量恢复、温度上升重试和后生成挂钩。
______________________________________________________________________
问题陈述
合成数据生产面临三个根本性挑战:
| 根本性问题 | 形式化定义 | 现有方案局限 | DataSynth 的方法 |
|---|---|---|---|
| 成本-规模矛盾 | |||
| Cost-Scale Dilemma | 人工标注成本 $c_h \\gg c\_{llm}$,但 LLM 生成缺少质量保证 | 简单批量调用无验证,"量大质低" | Schema 验证 + 去重 + 重试温度递增,成本降至 $0.001–$0.01/条 |
| 模板盲选 | |||
| Template Blindness | 指令-回复、偏好对、多轮对话需要不同的生成策略 | 通用 Prompt 生成所有类型,质量低 | 自动检测数据类型,选用专用 Prompt 模板 |
| 生成断裂 | |||
| Generation Fragmentation | 大批量生成中断后需从头重来,已有结果浪费 | 无增量续跑,重复消耗 API 和成本 | 增量续跑 (--resume) + 并发批量 + 后置钩子自动质检 |
DataSynth 不是通用 LLM 调用工具。它是 LLM 训练数据的生产线——从种子数据到大规模合成数据的端到端管线,质量可验证、成本可预估、流程可恢复。
______________________________________________________________________
形式框架
生成模型
合成数据生成形式化为映射函数:
$$G:(\\mathcal{S},\\mathcal{1T},\\theta)\\到D'$$
其中 $\\mathcal{S} = {s_1, \\ldots, s_k}$ 为种子数据集($k \\approx 50$),$\\mathcal{T}$ 为模板函数(由数据类型自动选择),$\\theta = (\\text{model}, \\text{temperature}, \\text{max_tokens})$ 为生成参数,$D'$ 为合成数据集。
质量多样性权衡
合成数据需要同时满足质量和多样性:
$$\\max_theta;\\mathb{E}_{d\\sim d'}\[Q(d)\]\\quad\\text{s.t.}\\quad H(d')\\geq H_{\\ min}$$
其中 $Q(d)$ 为样本质量(Schema 合规性),$H(D')$ 为数据集熵(多样性度量)。
Schema 验证确保质量:类型检查 + 约束校验(range / enum / length),不合规样本自动过滤。
温度递增确保多样性:重试时 $\\theta\_{\\text{temp}} \\leftarrow \\theta\_{\\text{temp}} + 0.05$,逐步增加生成多样性。
去重
精确匹配去重(种子集 + 跨批次),避免重复数据稀释多样性:
D_{\\text{final}}={d\\in d':d\\notin\\mathcal{S};\\土地;对于d中的所有d_{\\text{prev}},d\\neq d'}$$
成本模型
精确成本估算基于模型实际定价:
$$\\text{成本}(D')=\\sum\_{D\\in D'}(t\_{\\text{in}}(D)\\cdot p\_{\\text{in}+t\_{\\text{out}}(D)\\cdot i\_{\\text{out}})$$
其中 $t\_{\\text{in}}, t\_{\\text{out}}$ 为输入/输出 token 数,$p\_{\\text{in}}, p\_{\\text{out}}$ 为对应模型的每 token 单价。
______________________________________________________________________
建筑
graph LR
Seed["Seed Data
(~50 samples)"] --> Detect["Type Detector
Auto-detect"]
Detect --> Template["Template
Specialized Prompt"]
Template --> Gen["Generator
Concurrent Batches"]
Gen --> Val["Validator
Schema Constraints"]
Val --> Dedup["Deduplicator
Seed + Cross-batch"]
Dedup --> Stats["Statistics
Distribution Report"]
Stats --> Hook["Post Hook
(Optional)"]
style Gen fill:#0969da,color:#fff,stroke:#0969da
style Val fill:#8b5cf6,color:#fff,stroke:#8b5cf6
style Dedup fill:#2da44e,color:#fff,stroke:#2da44e
style Seed fill:#1a1a2e,color:#e0e0e0,stroke:#444
style Detect fill:#1a1a2e,color:#e0e0e0,stroke:#444
style Template fill:#1a1a2e,color:#e0e0e0,stroke:#444
style Stats fill:#1a1a2e,color:#e0e0e0,stroke:#444
style Hook fill:#1a1a2e,color:#e0e0e0,stroke:#444______________________________________________________________________
关键创新
1.自动检测数据类型模板
根据 Schema 字段名自动检测数据类型,选用专用 Prompt 模板:
| 字段特征 | 检测为 | 专用模板 |
|---|---|---|
instruction + response | instruction_response | 指令-回复生成 |
prompt + chosen + rejected | preference | 偏好对比数据(DPO/RLHF) |
conversation | multi_turn | 多轮对话生成 |
也可手动指定:--data-type preference
2.与增量简历并行生成
多批次并行调用 LLM(线程安全去重),中断后从已有输出继续:
# 并发 3 批次
knowlyr-datasynth generate ./output/ -n 1000 --concurrency 3
# 中断后续跑(自动跳过已有数据)
knowlyr-datasynth generate ./output/ -n 1000 --resume重试策略:自动重试 + 温度递增,兼顾容错和多样性:
knowlyr-datasynth generate ... --max-retries 5 --retry-delay 3 --temperature 0.43.模式验证和重复数据删除
生成的数据自动校验,不合规样本被过滤:
- 类型检查:
text/int/float/bool/list - 约束检查:
range(数值范围)、enum(枚举值)、min_length/max_length - 精确去重: 种子集 + 跨批次,避免重复数据
4.精确的成本估算
按模型实际定价计算成本,--dry-run 先估再生:
knowlyr-datasynth generate ./output/ -n 1000 --dry-run模型定价表
| 模型 | 输入 ($/1K tokens) | 输出 ($/1K tokens) |
|---|---|---|
| 克劳德·奥普斯 | 0.015美元 | 0.075美元 |
| 克劳德·索内特 | 0.003美元 | 0.015美元 |
| 克劳德·海库 | 0.00025美元 | 0.00125美元 |
| GPT-40 | 0.0025美元 | 0.01美元 |
| GPT-4o迷你版 | 0.00015美元 | 0.0006美元 |
5.后一代挂钩
生成完成后自动触发下游命令(如质检):
knowlyr-datasynth generate ./output/ -n 1000 \
--post-hook "knowlyr-datacheck validate {analysis_dir}"支持变量: {analysis_dir} {output_path} {count}
6.分布统计
--stats 输出字段分布统计报告 (synthetic.stats.json):
knowlyr-datasynth generate ./output/ -n 1000 --stats______________________________________________________________________
快速开始
pip install knowlyr-datasynth可选依赖
pip install knowlyr-datasynth[anthropic] # Anthropic Claude
pip install knowlyr-datasynth[openai] # OpenAI GPT
pip install knowlyr-datasynth[llm] # 两者都装
pip install knowlyr-datasynth[mcp] # MCP 服务器
pip install knowlyr-datasynth[all] # 全部功能API模式
export ANTHROPIC_API_KEY=your_key
# 从 DataRecipe 分析结果生成
knowlyr-datasynth generate ./analysis_output/my_dataset/ -n 100
# 并发 + JSONL 输出
knowlyr-datasynth generate ./analysis_output/my_dataset/ -n 1000 --concurrency 3 --format jsonl
# 估算成本
knowlyr-datasynth generate ./analysis_output/my_dataset/ -n 1000 --dry-runInteractive Mode (无需 API key)
# 生成 Prompt,在 Claude Code 中手动调用
knowlyr-datasynth prepare ./analysis_output/my_dataset/ -n 10Python SDK
from datasynth import SynthEngine
engine = SynthEngine(model="claude-sonnet-4-20250514")
result = engine.generate(
analysis_dir="./analysis_output/my_dataset/",
target_count=100,
concurrency=3,
)
print(f"Generated: {result.generated_count}")
print(f"Deduped: {result.dedup_count}")
print(f"Cost: ${result.cost_usd:.4f}")配置文件
knowlyr-datasynth init # 生成配置模板
knowlyr-datasynth generate ./output/ --config datasynth.config.json{
"target_count": 1000,
"model": "claude-sonnet-4-20250514",
"temperature": 0.8,
"batch_size": 5,
"concurrency": 3,
"data_type": "auto"
}______________________________________________________________________
MCP服务器
{
"mcpServers": {
"knowlyr-datasynth": {
"command": "uv",
"args": ["--directory", "/path/to/data-synth", "run", "python", "-m", "datasynth.mcp_server"]
}
}
}9 个 MCP 工具覆盖完整的合成数据工作流。
______________________________________________________________________
CLI参考
完整命令列表
| 命令 | 功能 |
|---|---|
knowlyr-datasynth generate -n | 生成合成数据 |
knowlyr-datasynth generate ... --concurrency 3 | 并发批次 |
knowlyr-datasynth generate ... --resume | 增量续跑 |
knowlyr-datasynth generate ... --dry-run | 成本估算 |
knowlyr-datasynth generate ... --stats | 分布统计 |
knowlyr-datasynth generate ... --data-type preference | 手动指定数据类型 |
knowlyr-datasynth generate ... --post-hook "cmd" | 后置钩子 |
knowlyr-datasynth generate ... --config config.json | 配置文件 |
knowlyr-datasynth prepare -n | 交互模式 Prompt 生成 |
knowlyr-datasynth validate | 数据验证 |
knowlyr-datasynth init | 生成配置模板 |
______________________________________________________________________
生态系统
Architecture Diagram
graph LR
Radar["Radar
Discovery"] --> Recipe["Recipe
Analysis"]
Recipe --> Synth["Synth
Generation"]
Recipe --> Label["Label
Annotation"]
Synth --> Check["Check
Quality"]
Label --> Check
Check --> Audit["Audit
Model Audit"]
Crew["Crew
Deliberation Engine"]
Agent["Agent
RL Framework"]
ID["ID
Identity Runtime"]
Crew -.->|能力定义| ID
ID -.->|身份 + 记忆| Crew
Crew -.->|轨迹 + 奖励| Agent
Agent -.->|优化策略| Crew
style Synth fill:#0969da,color:#fff,stroke:#0969da
style Crew fill:#2da44e,color:#fff,stroke:#2da44e
style Agent fill:#8b5cf6,color:#fff,stroke:#8b5cf6
style ID fill:#e5534b,color:#fff,stroke:#e5534b
style Radar fill:#1a1a2e,color:#e0e0e0,stroke:#444
style Recipe fill:#1a1a2e,color:#e0e0e0,stroke:#444
style Label fill:#1a1a2e,color:#e0e0e0,stroke:#444
style Check fill:#1a1a2e,color:#e0e0e0,stroke:#444
style Audit fill:#1a1a2e,color:#e0e0e0,stroke:#444| 图层 | 项目 | 描述 | 回购 |
|---|---|---|---|
| 发现 | AI数据集雷达 | 数据集竞争情报、趋势分析 | |
| 分析 | DataRecipe | 逆向分析、Schema 提取、成本估算 | |
| 生产 | DataSynth | LLM 合成 · 智能模板 · Schema 验证 · 成本精算 | You are here |
| 生产 | 恢复 | 零服务器标注 · LLM 预标注 · IAA 分析 | |
| 质量 | 数据检查 | 规则验证、重复检测、分布分析 | |
| 审计 | 模型审计 | 蒸馏检测、模型指纹 | |
| 身份 | knowlyr id | 身份系统 + AI 员工运行时 | |
| 审议情况 | 船员 | 对抗式多智能体协商 · 持久记忆进化 · MCP 原生 | |
| 代理商培训 | knowlyr健身房 | Gymnasium 风格 RL 框架 · 过程奖励模型 · SFT/DPO/GRPO |
______________________________________________________________________
发展
git clone https://github.com/liuxiaotong/data-synth.git
cd data-synth
pip install -e ".[all,dev]"
pytest持续集成: GitHub Actions,Python 3.10+。Tag push 自动发布 PyPI + GitHub Release。
______________________________________________________________________
参考文献
- 自我指导 --王等,2023。 *自我指导:将LM与自我生成的指令对齐。* arXiv:2212.10560 — 自指令生成方法
- 羊驼 --陶里,R.等人,2023。 *斯坦福羊驼:遵循LLaMA模型的指导。* — 种子数据驱动的合成指令生成
- WizardLM --徐等,2023。 *WizardLM:赋予大型语言模型遵循复杂指令的能力。* arXiv:2304.12244 — 指令进化方法
- 超反馈 --崔等,2023。 *UltraFeedback:通过高质量的反馈增强LM。* — 偏好数据合成
- 宪法人工智能 --白等,2022。 *宪法AI:来自AI反馈的无害性。* arXiv:2212.08073 — AI 反馈驱动的数据质量
______________________________________________________________________
许可证
______________________________________________________________________
knowlyr — LLM-powered synthetic dataset generation with quality-diversity optimization
