sdg_hub
Red Hat 出品的模块化合成数据生成框架,通过 Block+Flow 抽象让 LLM 数据标注告
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
Red Hat 出品的模块化合成数据生成框架,通过 Block+Flow 抽象让 LLM 数据标注告
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
想象一下:你是一个 AI 研究团队,负责训练一个能够精准回答医学问题的模型。但真实医疗数据极其稀缺,且涉及隐私、合规等重重限制。传统做法是雇佣标注员手动标注数据——成本高、耗时长、质量参差不齐。这正是合成数据(Synthetic Data)概念兴起的核心驱动力:用 AI 生成的数据来训练 AI。
Red Hat AI Innovation Team 推出的 SDG Hub(Synthetic Data Generation Hub),正是为解决这一痛点而生的开源框架。它由 Red Hat 公司内部 AI 团队维护,采用 Apache-2.0 许可证,已在 GitHub 积累 153 个 Stars,被标记为 AI Agents、Model Customization 和 Synthetic Dataset Generation 领域的代表性项目。

图1:SDG Hub 项目 Logo
SDG Hub 的设计哲学深受数据工程领域的影响:把合成数据生成拆解为独立的、可组合的步骤。以编程的视角来看,Block(块) 相当于函数,Flow(流) 相当于由多个 Block 串联组成的处理管道。
项目在 src/sdg_hub/core/blocks/ 下实现了六类 Block,覆盖合成数据生成的全链路:
| Block 类型 | 数量 | 典型用途 |
|---|---|---|
| LLM Block | 3 | Prompt 构建、Chat 调用、响应提取 |
| Agent Block | 2 | MCP Agent、MCP 响应提取 |
| Parsing Block | 4 | JSON、正则、Tag、基础文本解析 |
| Transform Block | 9 | 列重命名、数据采样、JSON 结构转换 |
| Filtering Block | 1 | 列值过滤 |
| Code Block | 1 | Python 代码执行(沙箱) |
这种设计让数据工程师无需编写 Python 代码,只需声明式地定义 YAML 配置文件,就能组合出复杂的生成管道。例如,一个 RAG 评估 Flow 可能包含:LLM 生成问题 → Parsing 提取问题 → Transform 增强数据 → Filtering 过滤低质量样本。
Flow 是 SDG Hub 的核心执行单元。在 src/sdg_hub/flows/ 目录下,预置了多条开箱即用的 Flow,涵盖:
Flow 的执行通过 src/sdg_hub/core/flow/ 下的 execution.py、validation.py 和 serialization.py 管理。开发者通过 Flow.from_yaml() 加载配置,通过 set_model_config() 指定 LLM 提供商(支持 OpenAI、Anthropic 等 via LiteLLM),通过 generate() 方法触发数据生成。
从 pyproject.toml 可以看出项目在依赖管理上的严谨态度:
# 核心依赖(精选版本范围,避免 CVE)
litellm>=1.83.10,<1.85.0 # CVE-2026-40217 补丁版本
mcp>=1.8.0,<2.0.0 # Model Context Protocol
datasets>=4.0.0 # HuggingFace datasets
pydantic>=2.0.0,<3.0.0 # 数据校验
技术选型的几个亮点:
LiteLLM 作为 LLM 抽象层:统一接入 OpenAI、Anthropic、Azure OpenAI 等 50+ LLM 提供商,切换成本极低。这使得同一个 Flow 可以无缝切换底层模型。
MCP(Model Context Protocol)原生支持:MCP 是 Anthropic 主导的 AI Agent 通信协议。SDG Hub 实现了 mcp_agent_block.py,支持将 MCP 工具链纳入合成数据生成流程,这对于构建 Agent 行为数据集尤为重要。
MLflow Tracing 集成:mlflow-tracing>=3.1.0 的引入说明项目内置了可观测性能力——每次 Flow 执行会生成 MLflow Trace,方便追踪数据血缘和性能瓶颈。
Python 沙箱安全执行:pydantic-monty 提供了安全的 Python 解释器(Code Block),用于在合成数据生成过程中动态执行代码,确保恶意代码不会影响宿主机。
SDG Hub 不仅是一个 CLI 工具,还提供了完整的 Web 界面,位于 ui/ 目录下:
ui/backend/api_server.py),负责 Flow 调度、状态管理、Worker 进程ui/frontend/package.json),提供 Flow 配置、可视化、日志查看等交互界面ui/start.sh 脚本自动检测端口、创建 Python venv、安装前后端依赖,并启动前后端服务(默认端口:后端 8000,前端 3000)SDG Hub 的 Web UI 是其区别于其他合成数据工具的显著优势。很多同类项目(如 DataGeneration-Template)只提供命令行界面,而 SDG Hub 让非技术用户也能上手配置和运行数据生成流程。
SDG Hub 定位为本地工具包,对硬件要求相对宽松:
安装方式极为简洁:pip install sdg-hub。项目通过 setuptools + setuptools_scm 实现自动化版本管理,无需手动维护 __version__。
⚠️ 注意:目前项目不支持 Docker 部署,需要宿主机直接安装 Python 和 Node.js 环境。这对于企业级部署场景是一个局限,但对于个人开发者和研究团队而言,单机安装流程已经足够顺畅。
尽管 SDG Hub 设计精良,仍有几个值得关注的局限:
1. 质量依赖上游 LLM:合成数据的质量本质上受限于所调用的 LLM 能力。如果使用的 LLM 本身存在幻觉或偏见,这些问题会传导到生成的数据集中,形成「垃圾进、垃圾出」的风险。
2. LLM API 成本:大规模数据生成需要大量 API 调用。以 OpenAI GPT-4o 为例,生成 10 万条高质量问答对可能消耗数百美元的 API 费用。LiteLLM 支持的模型路由和成本追踪功能可以部分缓解这一问题,但无法根除。
3. 企业级安全顾虑:虽然代码块执行有沙箱保护,但 LLM API 调用通常需要将数据发送到第三方服务。对于医疗、金融等敏感领域,数据隐私合规是必须评估的风险因素。
4. 缺乏内置评估框架:项目提供了 RAG 评估等 Flow,但没有内置的数据集质量评估工具(如 BLEU、ROUGE、BERTScore 等)。这意味着用户需要自行搭建评估流程来验证合成数据的有效性。
SDG Hub 所在的合成数据赛道正经历爆发式增长。2023-2024 年,AI21 Labs 的 Datasets、HuggingFace 的 synthetic-data-generator、斯坦福的 WizardLM 等项目相继涌现,各自在不同场景下构建技术壁垒。Red Hat 的 SDG Hub 凭借以下差异化定位占据一席之地:
对于 AI 研究者和数据工程师而言,SDG Hub 是一个值得关注的生产力工具。它将合成数据生成的工程复杂度封装在清晰的 Block/Flow 抽象之下,让你能够专注于数据设计本身,而非底层工程实现。