| --- |
| library_name: diffusers |
| pipeline_tag: time-series-forecasting |
| datasets: |
| - Duyu/Time-Series-Forecasting-Benchmark-Datasets |
| metrics: |
| - mse |
| tags: |
| - time-series |
| - diffusion |
| - scenario-generation |
| - weather |
| - multivariate-time-series |
| model-index: |
| - name: WeatherScenarioDiffusion-1D |
| results: |
| - task: |
| type: time-series-forecasting |
| name: Time Series Forecasting |
| dataset: |
| type: Duyu/Time-Series-Forecasting-Benchmark-Datasets |
| name: Weather.csv |
| metrics: |
| - type: mse |
| name: Future-mask MSE (z-space) |
| value: 0.16154611110687256 |
| - type: mse |
| name: Channel-inpainting MSE (z-space) |
| value: 0.10761465132236481 |
| --- |
| |
| # WeatherScenarioDiffusion-1D |
|
|
| WeatherScenarioDiffusion-1D is a conditional 1D diffusion model for multivariate weather time-series scenario generation. |
|
|
| The model is trained on [`Duyu/Time-Series-Forecasting-Benchmark-Datasets`](https://huggingface.co/datasets/Duyu/Time-Series-Forecasting-Benchmark-Datasets), file `Weather.csv`. |
|
|
| ## What The Model Does |
|
|
| This is a single conditional diffusion model with three usage modes: |
|
|
| 1. **Unconditional scenario generation**: sample realistic multivariate weather trajectories from noise. |
| 2. **Future-mask generation**: condition on the first part of a window and generate the missing future segment. |
| 3. **Channel inpainting**: condition on known weather variables and generate missing variables. |
|
|
| The model uses: |
|
|
| - `diffusers.UNet1DModel` |
| - `diffusers.DDPMScheduler` |
| - mask conditioning through concatenated input channels: `noisy_x`, `observed_x`, and `observed_mask` |
|
|
| ## Model Size |
|
|
| - Parameters: `41,556,501` |
| - Weight dtype: `float32` |
| - Weight file: `diffusion_pytorch_model.safetensors` |
| - Weight file size: approximately `166 MB` |
|
|
| ## Data |
|
|
| - Source dataset: `Duyu/Time-Series-Forecasting-Benchmark-Datasets` |
| - Source file: `Weather.csv` |
| - Numeric channels detected: `21` |
| - Window length: `256` |
| - Stride: `4` |
| - Split: time-ordered 80% train / 10% validation / 10% test |
| - Normalization: z-score fitted only on the train split |
|
|
| Detected channels: |
|
|
| ```json |
| [ |
| "feature_00", |
| "feature_01", |
| "feature_02", |
| "feature_03", |
| "feature_04", |
| "feature_05", |
| "feature_06", |
| "feature_07", |
| "feature_08", |
| "feature_09", |
| "feature_10", |
| "feature_11", |
| "feature_12", |
| "feature_13", |
| "feature_14", |
| "feature_15", |
| "feature_16", |
| "feature_17", |
| "feature_18", |
| "feature_19", |
| "feature_20" |
| ] |
| ``` |
|
|
| ## Training |
|
|
| ```json |
| { |
| "dataset_repo": "Duyu/Time-Series-Forecasting-Benchmark-Datasets", |
| "dataset_file": "Weather.csv", |
| "model_repo_id": "kyLELEng/weather-scenario-diffusion-1d", |
| "output_dir": "/tmp/weather-scenario-diffusion-1d", |
| "window_length": 256, |
| "stride": 4, |
| "max_train_steps": 8000, |
| "train_batch_size": 128, |
| "eval_batch_size": 128, |
| "num_workers": 8, |
| "learning_rate": 0.0002, |
| "weight_decay": 0.01, |
| "grad_clip_norm": 1.0, |
| "num_train_timesteps": 1000, |
| "eval_every": 1000, |
| "save_every": 2000, |
| "num_eval_batches": 12, |
| "sample_inference_steps": 80, |
| "sample_count": 24, |
| "mixed_precision": "bf16", |
| "seed": 42, |
| "model_size": "large", |
| "smoke_test": false |
| } |
| ``` |
|
|
| The training objective is noise prediction: |
|
|
| ```text |
| MSE(predicted_noise, true_noise) |
| ``` |
|
|
| Known observed regions are provided as conditioning input. The loss is weighted toward unknown/masked regions so the model learns conditional reconstruction as well as unconditional generation. |
|
|
| ## Evaluation |
|
|
| ```json |
| { |
| "future_mask_mse_zspace": 0.16154611110687256, |
| "channel_inpainting_mse_zspace": 0.10761465132236481, |
| "generated_real_correlation_mae": 0.3473077408348441, |
| "abs_autocorrelation_mae": 0.6126329355779511, |
| "real_distribution": { |
| "mean": [ |
| 0.5322151780128479, |
| -1.3601813316345215, |
| -1.3809949159622192, |
| -0.8077001571655273, |
| 1.2566546201705933, |
| -1.078983187675476, |
| -0.829918384552002, |
| -0.8582332134246826, |
| -0.8346444964408875, |
| -0.8351123929023743, |
| 1.3949605226516724, |
| -0.010310296900570393, |
| -0.5439239740371704, |
| 0.03890685364603996, |
| -0.1013171598315239, |
| -0.2349442094564438, |
| -0.5373658537864685, |
| -0.5422216653823853, |
| -0.48122739791870117, |
| -1.287260890007019, |
| 0.09792334586381912 |
| ], |
| "std": [ |
| 0.07429111748933792, |
| 0.35871678590774536, |
| 0.35377517342567444, |
| 0.24259121716022491, |
| 0.41319674253463745, |
| 0.18131689727306366, |
| 0.17187191545963287, |
| 0.13253048062324524, |
| 0.1699266880750656, |
| 0.17053960263729095, |
| 0.35085079073905945, |
| 0.015412000007927418, |
| 0.3774285912513733, |
| 0.5294230580329895, |
| 3.1814274734642822e-06, |
| 1.0341267625335604e-05, |
| 0.2504253685474396, |
| 0.24686115980148315, |
| 0.20216289162635803, |
| 0.3868575692176819, |
| 0.03018086589872837 |
| ], |
| "q05": [ |
| 0.36811354756355286, |
| -1.7627040147781372, |
| -1.7786728143692017, |
| -1.1219414472579956, |
| 0.425606906414032, |
| -1.2679648399353027, |
| -1.0427569150924683, |
| -0.9597867131233215, |
| -1.0451189279556274, |
| -1.0457327365875244, |
| 0.82159823179245, |
| -0.029127197340130806, |
| -1.0400943756103516, |
| -0.9979122877120972, |
| -0.10131397843360901, |
| -0.23493386805057526, |
| -0.6634758114814758, |
| -0.670289933681488, |
| -0.58597731590271, |
| -1.7917370796203613, |
| 0.057487256824970245 |
| ], |
| "q50": [ |
| 0.5404008626937866, |
| -1.4684869050979614, |
| -1.4889553785324097, |
| -0.8586000204086304, |
| 1.4287834167480469, |
| -1.144168734550476, |
| -0.872648298740387, |
| -0.9205341339111328, |
| -0.8782141208648682, |
| -0.8781652450561523, |
| 1.5059175491333008, |
| -0.0145594272762537, |
| -0.6258403658866882, |
| 0.1368420273065567, |
| -0.10131397843360901, |
| -0.23493386805057526, |
| -0.6634758114814758, |
| -0.670289933681488, |
| -0.58597731590271, |
| -1.4187328815460205, |
| 0.093950055539608 |
| ], |
| "q95": [ |
| 0.638533353805542, |
| -0.761028528213501, |
| -0.794667661190033, |
| -0.35279181599617004, |
| 1.6108952760696411, |
| -0.766464352607727, |
| -0.49462929368019104, |
| -0.5979806184768677, |
| -0.5036054253578186, |
| -0.5011382699012756, |
| 1.7932209968566895, |
| 0.014986473135650158, |
| 0.06979382783174515, |
| 0.5976912975311279, |
| -0.10131397843360901, |
| -0.23493386805057526, |
| 0.027409523725509644, |
| -0.0009677457856014371, |
| -0.06447356939315796, |
| -0.6893876194953918, |
| 0.1492983102798462 |
| ] |
| }, |
| "generated_distribution": { |
| "mean": [ |
| 0.10389683395624161, |
| 0.2204890251159668, |
| 0.19250470399856567, |
| 0.23873503506183624, |
| 0.01685507781803608, |
| 0.12124405056238174, |
| 0.29270878434181213, |
| 0.05499983951449394, |
| 0.22790412604808807, |
| 0.2170621007680893, |
| -0.18708543479442596, |
| 0.021801194176077843, |
| -0.030199257656931877, |
| 0.1692427545785904, |
| -0.08117542415857315, |
| -0.09455308318138123, |
| 0.06154454126954079, |
| 0.028043851256370544, |
| 0.12692318856716156, |
| 0.24798017740249634, |
| 0.017302973195910454 |
| ], |
| "std": [ |
| 0.2767521142959595, |
| 0.3012436330318451, |
| 0.2993737757205963, |
| 0.30074891448020935, |
| 0.3890363872051239, |
| 0.3219568431377411, |
| 0.3009476661682129, |
| 0.37483009696006775, |
| 0.30024605989456177, |
| 0.304373562335968, |
| 0.2866939902305603, |
| 0.19090980291366577, |
| 0.41177040338516235, |
| 0.398755818605423, |
| 0.19313617050647736, |
| 0.23614700138568878, |
| 0.4057450592517853, |
| 0.40770408511161804, |
| 0.407763808965683, |
| 0.31721681356430054, |
| 0.20663630962371826 |
| ], |
| "q05": [ |
| -0.3517603576183319, |
| -0.2666028141975403, |
| -0.2890886068344116, |
| -0.25566428899765015, |
| -0.6129659414291382, |
| -0.38257062435150146, |
| -0.19731372594833374, |
| -0.5293506979942322, |
| -0.24754241108894348, |
| -0.2712758183479309, |
| -0.6728720664978027, |
| -0.2995768189430237, |
| -0.6813194751739502, |
| -0.5154849290847778, |
| -0.36515557765960693, |
| -0.429704487323761, |
| -0.5263148546218872, |
| -0.5553821921348572, |
| -0.49782344698905945, |
| -0.2676949203014374, |
| -0.3324751853942871 |
| ], |
| "q50": [ |
| 0.10788173228502274, |
| 0.21172723174095154, |
| 0.18094468116760254, |
| 0.2328486293554306, |
| 0.0098641999065876, |
| 0.10586627572774887, |
| 0.28131914138793945, |
| 0.0327904112637043, |
| 0.21327275037765503, |
| 0.20810022950172424, |
| -0.18645159900188446, |
| 0.026983173564076424, |
| -0.0433419793844223, |
| 0.16982388496398926, |
| -0.09749776124954224, |
| -0.12292205542325974, |
| 0.010389605537056923, |
| -0.036815427243709564, |
| 0.09912104904651642, |
| 0.23998694121837616, |
| 0.019317764788866043 |
| ], |
| "q95": [ |
| 0.5557213425636292, |
| 0.7389823198318481, |
| 0.7046443223953247, |
| 0.7413685321807861, |
| 0.6779510974884033, |
| 0.6939223408699036, |
| 0.8154580593109131, |
| 0.7213369011878967, |
| 0.7498506903648376, |
| 0.7366548776626587, |
| 0.28038161993026733, |
| 0.3271234333515167, |
| 0.6884999871253967, |
| 0.8387558460235596, |
| 0.25787827372550964, |
| 0.31810709834098816, |
| 0.8252443671226501, |
| 0.8010784387588501, |
| 0.8797050714492798, |
| 0.7847591042518616, |
| 0.34978875517845154 |
| ] |
| }, |
| "real_abs_autocorr_lag1": [ |
| 0.9877822900516616, |
| 0.9904621143737528, |
| 0.9903800119819881, |
| 0.9930759612361029, |
| 0.9845821075186362, |
| 0.9896354175342961, |
| 0.9931532651062824, |
| 0.9829303354664611, |
| 0.9930693669171041, |
| 0.9931078152703652, |
| 0.9904251617511753, |
| 0.6185269686957802, |
| 0.8362734986319137, |
| 0.5482885824237015, |
| NaN, |
| NaN, |
| 0.9654974645960943, |
| 0.97213405366258, |
| 0.9692365984881656, |
| 0.9926912520502599, |
| 0.9674985063407219 |
| ], |
| "generated_abs_autocorr_lag1": [ |
| 0.1746959775402206, |
| 0.43644415022477073, |
| 0.41653727634920873, |
| 0.39331193400821807, |
| 0.3961014770471717, |
| 0.415143957195966, |
| 0.4382806229222112, |
| 0.4055025998367542, |
| 0.447771283348962, |
| 0.4445783266695078, |
| 0.35184174376495303, |
| 0.018016469082830094, |
| 0.02088415221893785, |
| 0.07700486234712257, |
| 0.016226235857376443, |
| 0.06005403603427778, |
| 0.40116921177080017, |
| 0.41265325284010024, |
| 0.37372374982861106, |
| 0.48624188538979995, |
| 0.008822063729828335 |
| ], |
| "training_history": [ |
| { |
| "step": 1000, |
| "train_loss": 0.07410214841365814, |
| "validation_denoising_loss": 0.05256535982092222 |
| }, |
| { |
| "step": 2000, |
| "train_loss": 0.047588951885700226, |
| "validation_denoising_loss": 0.062365236381689705 |
| }, |
| { |
| "step": 3000, |
| "train_loss": 0.04786738008260727, |
| "validation_denoising_loss": 0.08261810739835103 |
| }, |
| { |
| "step": 4000, |
| "train_loss": 0.030978742986917496, |
| "validation_denoising_loss": 0.09854291876157124 |
| }, |
| { |
| "step": 5000, |
| "train_loss": 0.017614271491765976, |
| "validation_denoising_loss": 0.11429651578267415 |
| }, |
| { |
| "step": 6000, |
| "train_loss": 0.022595474496483803, |
| "validation_denoising_loss": 0.11743361999591191 |
| }, |
| { |
| "step": 7000, |
| "train_loss": 0.0207576435059309, |
| "validation_denoising_loss": 0.12093404183785121 |
| }, |
| { |
| "step": 8000, |
| "train_loss": 0.018115710467100143, |
| "validation_denoising_loss": 0.11552448819080989 |
| } |
| ], |
| "best_validation_denoising_loss": 0.05256535982092222, |
| "final_step": 8000 |
| } |
| ``` |
|
|
| Evaluation is based on held-out windows and includes: |
|
|
| - validation denoising loss |
| - future-mask inpainting MSE |
| - channel-inpainting MSE |
| - generated-vs-real distribution statistics |
| - cross-channel correlation matrix error |
| - absolute-value autocorrelation error |
|
|
| ## Intended Use |
|
|
| This model is for research and demonstration of multivariate time-series diffusion. It is not a production forecasting system. |
|
|
| ## Files |
|
|
| - `config.json`: 1D U-Net model configuration |
| - `diffusion_pytorch_model.safetensors`: model weights |
| - `scheduler/scheduler_config.json`: DDPM scheduler configuration |
| - `preprocess_config.json`: dataset, split, normalization, window, and channel metadata |
| - `normalization_stats.json`: train-split mean and standard deviation |
| - `evaluation_report.json`: held-out evaluation metrics |
| - `sample_plots/`: generated examples and conditional samples |
|
|