SDGym
表格合成数据算法的标准化基准测试平台,支持多维度质量-速度 Pareto 前沿评估
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
表格合成数据算法的标准化基准测试平台,支持多维度质量-速度 Pareto 前沿评估
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
想象这样一个场景: 你刚研发出一款新的合成数据生成模型,在自己的小数据集上测试效果不错。但当面对真实业务中各种复杂表格——金融交易记录、医疗患者档案、电商用户行为——它还能保持同样的表现吗?你需要一个标准化的「考场」,用统一的指标和数据集,对比你的模型与业界最新方案孰优孰劣。SDGym(Synthetic Data Gym) 就是这样一个专为表格合成数据设计的基准测试平台。
SDGym 隶属于 Synthetic Data Vault(SDV) 项目生态,最初由 MIT 的 Data to AI Lab 于 2016 年发起。2016 年,合成数据还是一个小众研究方向,MIT 团队在论文中提出了用变分自编码器(VAE)和高斯 Copula 生成表格合成数据的开创性思路,这一框架后来演变为 SDV 项目。2020 年,团队成立商业公司 DataCebo(官网 datacebo.com),将学术研究产品化,同时保持核心代码开源。SDGym 正是 DataCebo 维护的官方基准测试平台,被全球研究团队用于评估合成数据生成算法的质量与效率。
关键数据一览:
合成数据(Synthetic Data)是指由算法「捏造」出来的数据,但它在统计分布上与真实数据高度相似,可以用来训练机器学习模型、保护隐私数据共享、或扩充稀缺数据集。近几年随着大模型火热,合成数据的重要性急剧上升——没有足够多的真实数据?生成一批。担心隐私合规?合成数据替代。
但问题来了:市面上有几十种合成数据生成算法,从传统统计方法(高斯 Copula)到深度学习(GAN、VAE、Transformer),它们的实际表现差异有多大? 各个算法作者往往在自己的论文中声称「我们的方法更好」,但评测基准不一致、数据集不公开、指标五花八门,横向比较几乎不可能。SDGym 的出现正是为了解决这一乱象——提供统一的评测环境、标准化的数据集库、可复现的评测流程,以及支持 Pareto 前沿分析 的多维度评分体系。
DataCebo 在其官网(datacebo.com/sdgym)明确指出:SDGym 的持续运行基准测试,每隔一段时间自动评测最新提交的合成器,并公开结果。这意味着用户看到的不是「论文放榜」式的单次评测,而是长期追踪演进的动态排行。
SDGym 的代码结构高度模块化,核心模块分为以下几个层次:
(1)主入口层——sdgym/benchmark.py(约 67KB)
这是整个项目的心脏,包含两个核心 API 函数:
benchmark_single_table():单表数据集基准测试benchmark_multi_table():多表(关系型)数据集基准测试主函数接受参数包括:合成器列表、数据集列表、评估指标、超时时间等。内部使用 multiprocessing 做并行化处理,每个合成器 × 数据集组合独立运行在子进程中,防止单点崩溃影响全局。
(2)内部执行引擎——sdgym/_benchmark/
封装了底层执行逻辑,包括 S3 存储集成(benchmark 结果上传云端)、凭证管理等。SDGym 支持将评测结果存储到 AWS S3,方便团队共享和长期归档。
(3)合成器模块——sdgym/synthesizers/
内置了多种基线合成器,覆盖从简单到复杂的不同技术路线:
| 合成器 | 技术路线 | 适用场景 |
|---|---|---|
UniformSynthesizer | 均匀分布基线(最简单) | 评估最差情况 |
GaussianCopulaSynthesizer | 统计方法(高斯 Copula) | 高斯假设的数据 |
CTGANSynthesizer | 深度学习(GAN) | 复杂非高斯分布 |
TVAESynthesizer | 深度学习(VAE) | 高维稀疏数据 |
CopulaGANSynthesizer | 混合(Copula + GAN) | 兼顾统计保真和分布多样性 |
RealTabFormerSynthesizer | Transformer | 序列建模视角 |
HMASynthesizer | 分层建模 | 多表联合建模 |
HSASynthesizer | 分段采样 | 大规模多表快速生成 |
特别值得注意的 synthesizer_descriptions.yaml 文件,详细记录了每个合成器的技术原理和组织归属,SDV 项目中的合成器主要来自 DataCebo 自研(library: sdv),也有来自世界银行(RealTabFormer)的贡献。
(4)数据集模块——sdgym/datasets.py
内置了丰富的公开数据集,按数据类型分为:
所有数据集由 SDV 项目组预先处理和清洗,用户可直接通过 sdgym.datasets.get_single_table_dataset('adult') 一行调用,无需手动下载。
(5)评估指标——sdgym/metrics.py + SDMetrics 集成
SDGym 的评测指标非常全面,底层调用 DataCebo 维护的 SDMetrics 库:
(6)可视化探索——sdgym/dataset_explorer/ 和 sdgym/result_explorer/
提供交互式数据探索工具,帮助用户理解数据集结构(B列类型、分布)与合成结果的质量对比。
SDGym 的评估哲学独树一帜:不只是比谁的「分数」最高,而是引入了 Pareto 前沿分析——一个合成器只有在「质量」和「速度」两个维度上同时不被其他合成器「碾压」,才算真正有价值。
DataCebo 在其官网解释道:「很多合成器追求极致质量,但代价是数小时的训练时间。在真实业务中,测试人员往往只有几分钟的等待窗口。因此,SDGym 认为 Lie on the Pareto frontier(落在质量-速度 Pareto 前沿上)才是『胜出』的标准,而不是单纯的某个分数。」
不同于传统论文的「一次性评测」,SDGym 由 DataCebo 持续运行,新提交的合成器 PR 合并后会自动进入评测队列。这意味着用户看到的不是 2023 年的「历史成绩」,而是实时更新的动态排行榜。
SDGym 不是孤立的工具,它深度集成 DataCebo 的整个合成数据工具链:
用户自定义合成器
↓
SDGym 评测框架(数据集 + 指标 + 执行引擎)
↓
SDMetrics 评估(质量 + 隐私)
↓
SDV 部署(GaussianCopula / CTGAN / TVAE 等生产级合成器)
用户可以用 SDGym 验证自己的新算法,随后无缝切换到 SDV 生产环境中部署——从研究到落地的路径非常顺畅。
项目提供了基于 NVIDIA CUDA 11.8.0 的 Dockerfile,以及详细的 DOCKER.md 使用指南。对于没有 Python 环境或不想处理依赖冲突的用户,一条 docker run 即可启动完整评测环境。
支持两种标准 Python 包安装方式:
# 方式一:pip(推荐)
pip install sdgym
# 方式二:conda
conda install -c pytorch -c conda-forge sdgym
| 资源 | 要求 |
|---|---|
| GPU | NVIDIA GPU(CUDA 11.8+) |
| 显存 | 4GB+ |
| 内存 | 8GB+ |
| 磁盘 | 2GB+ |
| Python | 3.9-3.14 |
import sdgym
# 单表基准测试(使用默认合成器和数据集)
results = sdgym.benchmark_single_table()
# 自定义合成器 + 自定义数据集
sdgym.benchmark_single_table(
synthesizers=['GaussianCopulaSynthesizer', 'CTGANSynthesizer'],
datasets=['adult', 'insurance']
)
SDGym 的部署难度为 「简单」,主要理由:
DOCKER.md 文档详细说明了 Windows/Linux/macOS 各平台注意事项DataCebo 在 datacebo.com/sdgym 上坦承:「我们面临的最大挑战是数据集的来源和整合。公开可用的数据集往往经过高度清洗,无法反映真实企业数据的复杂性——缺失值、异常值、格式不一致、多表关联断裂等问题在实际业务数据中非常普遍,但在 SDV 的公开数据集中并不突出。」
换句话说,SDGym 排行榜上的「胜出者」,可能在真实企业场景中表现不如预期。这不是 SDGym 的设计缺陷,而是整个合成数据领域的共同难题。
虽然提供了 CPU 基线合成器,但 SDGym 的核心价值(GAN、VAE、Transformer 等深度学习合成器)需要 GPU。没有高性能 NVIDIA 显卡的用户实际上无法体验到 SDGym 的完整能力——这对学术研究环境和个人开发者来说是一道不低的门槛。
SDGym 目前专注于 表格数据(Tabular Data),不支持图像、文本、时序序列、图网络等非结构化/半结构化数据的合成任务。SDV 生态中虽然有其他项目(如 SDV-MultiTable 处理多表关系),但 SDGym 的基准测试范围仍然限于结构化表格。
SDGym 代表着合成数据领域从「百花齐放、各说各话」到「统一标准、可比可复」的演进趋势。它填补了合成数据社区长期缺乏公认基准测试工具的空白,让研究者和工程师可以在同一套标准下「华山论剑」。
从增长趋势看,SDGym 的 Star 数(309)和持续的社区活跃度说明合成数据这个赛道正在获得越来越多的关注。随着大模型对高质量训练数据的需求激增,以及隐私法规(GDPR、CCPA)日益严格,合成数据生成技术的重要性只会继续上升。SDGym 作为这一领域的「裁判员」角色,其价值将随着行业扩张而持续放大。
适合谁用:
本报告基于 GitHub 最新代码库(main 分支,v0.14.5.dev0)生成,分析时间:2026-07-01。