synthetic_alpha_stable_mixture
Unconditional reference models trained with gendynamics. The weights correspond to the best validation epoch.
Dataset
Synthetic unbalanced high-dimensional alpha-stable mixture. Generated by gendynamics.datasets.fetch_synthetic_data('unbalanced_highdim_alpha_stable_mixture'). Sample the configured mixture, then make a seeded random train/validation/test split.
The train/validation/test splits contain 20,000/2,000/10,000 samples
of shape [100]. Normalization: None
The exact generator arguments or processed-file identity, split settings, and seed are in dataset.json.
The source data themselves are not redistributed here; source-data terms remain with their provider.
The preparation code is in gendynamics. API-backed sources can change; the processed-file checksum identifies this snapshot.
Architecture and training
All independently trained models use this network architecture:
{
"name": "mlp",
"params": {
"width": 240,
"depth": 4,
"time_dim": 128,
"dropout": 0.0,
"use_norm": true,
"dim": 100
}
}
| Directory | Model | Prediction target | Trainable parameters | Sampling steps | Learning rate | Epochs run / best | Val loss | Test loss |
|---|---|---|---|---|---|---|---|---|
| ddpm-v | DDPM-V | velocity | 669,844 | 128 | 0.0005 | 640 / 636 | 2.193 | 3.797 |
| dlpm-eps | DLPM-Eps | noise | 669,844 | 128 | 0.0005 | 227 / 127 | 0.8141 | 0.8667 |
| tedm-origin | t-EDM | denoised data | 669,844 | 64 | 0.0005 | 183 / 83 | 0.7668 | 2.032 |
The complete selected final model and training settings are below and in each directory's config.json.
The training settings include the maximum epoch budget; epochs run / best reports what actually happened.
provenance.json records software versions and the source revision. Each model was reloaded and checked before upload;
export_check.json records that check. Losses use each model's own objective, so they are not comparable sample-quality scores.
The number of held-out rows used for each test loss is in metrics.json. Sample previews do not establish tail accuracy.
DDPM-V (ddpm-v/)
{
"model_parameters": {
"n_steps": 128,
"sigma_max": 2.0,
"sampler": "ddpm"
},
"training": {
"device": "cuda",
"data_device": "cpu",
"batch_size": 1024,
"n_epochs": 640,
"early_stopping_patience": 100,
"lr": 0.0005,
"num_workers": 0,
"use_adamw": true,
"weight_decay": 1e-06,
"grad_clip_norm": 10.0,
"lr_schedule": "cosine",
"warmup_steps": 400,
"cosine_eta_min_ratio": 0.05,
"freq_logging": 50,
"stats_freq_epochs": 1,
"log_grad_norm": true,
"ckpt_freq_epochs": 64,
"ckpt_keep_last": 8
}
}
DLPM-Eps (dlpm-eps/)
{
"model_parameters": {
"n_steps": 128,
"alpha": 1.9,
"sampler": "native"
},
"training": {
"device": "cuda",
"data_device": "cpu",
"batch_size": 1024,
"n_epochs": 640,
"early_stopping_patience": 100,
"lr": 0.0005,
"num_workers": 0,
"use_adamw": true,
"weight_decay": 1e-06,
"grad_clip_norm": 10.0,
"lr_schedule": "cosine",
"warmup_steps": 400,
"cosine_eta_min_ratio": 0.05,
"freq_logging": 50,
"stats_freq_epochs": 1,
"log_grad_norm": true,
"ckpt_freq_epochs": 64,
"ckpt_keep_last": 8
}
}
t-EDM (tedm-origin/)
{
"model_parameters": {
"n_steps": 64,
"nu": 2.1,
"sigma_min": 0.005,
"sigma_max": 5.0,
"sigma_data": 1.0,
"solver": "edm_stochastic_heun"
},
"training": {
"device": "cuda",
"data_device": "cpu",
"batch_size": 1024,
"n_epochs": 640,
"early_stopping_patience": 100,
"lr": 0.0005,
"num_workers": 0,
"use_adamw": true,
"weight_decay": 1e-06,
"grad_clip_norm": 10.0,
"lr_schedule": "cosine",
"warmup_steps": 400,
"cosine_eta_min_ratio": 0.05,
"freq_logging": 50,
"stats_freq_epochs": 1,
"log_grad_norm": true,
"ckpt_freq_epochs": 64,
"ckpt_keep_last": 8
}
}
DDIM-V (ddim-v/) shares the trained DDPM-V weights. Only the reverse sampler changes to deterministic DDIM (eta=0); it has no separate training run. Its exact sampling settings are in ddim-v/config.json.
Loading
Install the training package and its dependencies:
python -m pip install git+https://github.com/Diffusion-Research-Lab/2_training_2026_tail_reference_models.git
Then load one of the listed model directories by its underscored name:
from toolkit.huggingface import load_huggingface_model
model, normalization, data_scale = load_huggingface_model("Diffusion-Research-Lab/alpha-stable-mixture-1p7-100d-diffusion", "ddpm_v", device="cpu")
samples = model.sample(16).float().cpu()
if normalization is not None:
samples = samples * normalization["std"] + normalization["mean"]
The model-specific files are model.safetensors, config.json, dataset.json, metrics.json,
provenance.json, export_check.json, and, when applicable, normalization.safetensors.
This repository is released under the MIT license. Cite the model repository revision when using these weights.