How amazon-science/tabsyn works
TabSyn is a mixed-type tabular-data synthesis research repository. Its principal workflow prepares tabular datasets, trains a VAE to encode them into a continuous latent space, trains score-based diffusion over those embeddings, and samples synthetic tables. The repository also offers six baseline synthesizers, several synthetic-data evaluation metrics, and target-column imputation. The README documents these capabilities; some baseline sampling and evaluation internals were not excerpted, so their links are limited to documented workflows.
Main entry points: vae/main.py VAE training · tabsyn/main.py Latent diffusion training · impute.py Target imputation · data.py Shared data transforms
Components 27
Data preparation
- Dataset download
download_dataset.py - Dataset processing
process_dataset.py - Shared data transforms
src/data.py - Training preprocessing
utils_train.py
TabSyn synthesis
- VAE training
tabsyn/vae/main.py - VAE encoder
tabsyn/vae/model.py - Latent preparation
tabsyn/latent_utils.py - Latent diffusion training
tabsyn/main.py - Diffusion model
tabsyn/model.py - TabSyn sampling
tabsyn/sample.py
Baseline synthesis
- SMOTE baseline
baselines/smote/main.py - CoDi baseline
baselines/codi/diffusion_discrete.py - GOGGLE baseline
baselines/goggle/GoggleModel.py - GReaT baseline
baselines/great/models/great.py - STaSy baseline
baselines/stasy/main.py - TabDDPM baseline
baselines/tabddpm/models/gaussian_multinomial_distribution.py
Evaluation
- Synthetic data evaluation
eval - Density metrics
eval/eval_density.py - Quality metrics
eval/eval_quality.py - ML efficiency
eval/eval_mle.py - Privacy distance
eval/eval_dcr.py - Two-sample detection
eval/eval_detection.py
Imputation
- Target imputation
impute.py - Imputation evaluation
eval_impute.py
Other components
- Researcher
- Raw tables
- Synthetic tables
Connections 35
- Researcher → Dataset download: requests datasets
README.md - Dataset download → Raw tables: downloads
README.md - Raw tables → Dataset processing: processes
README.md - Dataset processing → Shared data transforms: prepares splits
- Researcher → VAE training: starts training
README.md - Shared data transforms → Training preprocessing: provides dataset data
utils_train.py - VAE training → Training preprocessing: loads preprocessing
tabsyn/vae/main.py - VAE training → VAE encoder: trains
tabsyn/vae/main.py - VAE encoder → Latent preparation: encodes tables
tabsyn/latent_utils.py - Researcher → Latent diffusion training: starts diffusion training
README.md - Latent diffusion training → Latent preparation: loads embeddings
tabsyn/main.py - Latent diffusion training → Diffusion model: trains
tabsyn/main.py - Researcher → TabSyn sampling: requests synthesis
README.md - TabSyn sampling → Synthetic tables: writes samples
README.md - Researcher → SMOTE baseline: selects baseline
README.md - Researcher → CoDi baseline: selects baseline
README.md - Researcher → GOGGLE baseline: selects baseline
README.md - Researcher → GReaT baseline: selects baseline
README.md - Researcher → STaSy baseline: selects baseline
README.md - Researcher → TabDDPM baseline: selects baseline
README.md - SMOTE baseline → Synthetic tables: writes samples
- CoDi baseline → Synthetic tables: writes samples
- GOGGLE baseline → Synthetic tables: writes samples
- GReaT baseline → Synthetic tables: writes samples
- STaSy baseline → Synthetic tables: writes samples
- TabDDPM baseline → Synthetic tables: writes samples
- Researcher → Synthetic data evaluation: evaluates samples
README.md - Synthetic tables → Density metrics: supplies samples
README.md - Synthetic tables → Quality metrics: supplies samples
README.md - Synthetic tables → ML efficiency: supplies samples
README.md - Synthetic tables → Privacy distance: supplies samples
README.md - Synthetic tables → Two-sample detection: supplies samples
README.md - Researcher → Target imputation: requests imputation
README.md - Target imputation → Shared data transforms: uses dataset data
- Target imputation → Imputation evaluation: evaluates imputations
README.md