Repository navigation
v1.0.0
The first stable release of Katabatic: a single interface for training, sampling, evaluating, and versioning synthetic tabular data models.
Highlights
- 15 supported generative models behind one interface. GAN-based (GANBLR, CTGAN, PATE-GAN), diffusion (TabSyn, FairTabDiffusion), language-model (GReaT, REaLTabFormer), differentially private (MST, PrivTree, PATE-GAN) and statistical baselines (ARF, KDE, Histogram, NaiveBayes, SMOTE, SynthPop). Every model trains with
train(data_dir), generates rows withsample(n_samples)and reloads a trained model from its artifacts withload_from_ref(), and each has an integration test run in CI. - Models by name.
get_model("ctgan")andlist_supported_models()find models throughModelRegistry. Each model installs as its own extra, e.g.pip install "katabatic[ganblr,ctgan]", and a missing dependency raises an error naming what to install. MST also needs Private-PGM, which installs separately because it isn't on PyPI. - Six-dimension evaluation.
model.evaluate(real_df)scores fidelity, utility (train on synthetic, test on real), diversity, privacy, consistency and stability, and combines them into a weighted composite. Run a subset withdimensions=, or pass your own evaluation aspipeline=, as scikit-learn takesscoring=. A dimension that fails is reported inreport.errorsrather than scored. - End-to-end pipeline with versioned artifacts.
TrainTestSplitPipelinesplits a CSV, trains a model, generates synthetic data and evaluates it, recording the dataset split, trained model and evaluations in an artifact store so any run can be reloaded or re-evaluated.LocalArtifactStorekeeps them on disk. - Cloud artifact storage (experimental).
FsspecArtifactStorekeeps artifacts in S3, GCS or Azure through a local cache, so a model trained on one machine can be evaluated on another. A write that would overwrite a newer change from another machine raisesArtifactConflictErrorinstead. Install with theartifacts-s3,artifacts-gcsorartifacts-azureextra. - Datasets. Five benchmark datasets ship with the package (adult, car, magic, nursery and shuttle).
DatasetRegistryprofiles any CSV and can check it against a model's requirements, andpreprocess_tabular()cleans raw CSVs before training. - Examples and benchmarks. Notebooks for the quickstart, evaluation and cloud storage run in CI, and per-model benchmark scripts cover the five datasets.
- Experimental models (TabEBM, TabDDPM, GANBLR++, CoDi, MedGAN, TVAE-GAN, GMM and TabKDE) live in
katabatic.experimental.models, outside the stability guarantee. A model is promoted to supported once it passes the promotion contract, which the test suite enforces. - Tooling. Python 3.11 with Poetry, a Dockerfile, Makefile targets that mirror CI, and pre-commit hooks for Ruff and conventional commits.
Upgrading from 0.3.1
- Experimental models moved to
katabatic.experimental.models.<name>. - The
allextra is gone: install the extras for the models you use. evaluate()now runs the six-dimension evaluation on every model. Model-specific scores moved toevaluate_tstr()(GANBLR, PATE-GAN),evaluate_ks()(ARF) andevaluate_loss()(TabSyn, TabDDPM).