autogluon.timeseries 1.4.1b20250831__tar.gz → 1.4.1b20250908__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of autogluon.timeseries might be problematic. Click here for more details.

Files changed (76) hide show
  1. {autogluon.timeseries-1.4.1b20250831 → autogluon.timeseries-1.4.1b20250908}/PKG-INFO +1 -1
  2. {autogluon.timeseries-1.4.1b20250831 → autogluon.timeseries-1.4.1b20250908}/src/autogluon/timeseries/models/chronos/model.py +4 -1
  3. {autogluon.timeseries-1.4.1b20250831 → autogluon.timeseries-1.4.1b20250908}/src/autogluon/timeseries/models/chronos/pipeline/chronos_bolt.py +50 -0
  4. {autogluon.timeseries-1.4.1b20250831 → autogluon.timeseries-1.4.1b20250908}/src/autogluon/timeseries/version.py +1 -1
  5. {autogluon.timeseries-1.4.1b20250831 → autogluon.timeseries-1.4.1b20250908}/src/autogluon.timeseries.egg-info/PKG-INFO +1 -1
  6. {autogluon.timeseries-1.4.1b20250831 → autogluon.timeseries-1.4.1b20250908}/src/autogluon.timeseries.egg-info/requires.txt +4 -4
  7. {autogluon.timeseries-1.4.1b20250831 → autogluon.timeseries-1.4.1b20250908}/setup.cfg +0 -0
  8. {autogluon.timeseries-1.4.1b20250831 → autogluon.timeseries-1.4.1b20250908}/setup.py +0 -0
  9. {autogluon.timeseries-1.4.1b20250831 → autogluon.timeseries-1.4.1b20250908}/src/autogluon/timeseries/__init__.py +0 -0
  10. {autogluon.timeseries-1.4.1b20250831 → autogluon.timeseries-1.4.1b20250908}/src/autogluon/timeseries/configs/__init__.py +0 -0
  11. {autogluon.timeseries-1.4.1b20250831 → autogluon.timeseries-1.4.1b20250908}/src/autogluon/timeseries/configs/hyperparameter_presets.py +0 -0
  12. {autogluon.timeseries-1.4.1b20250831 → autogluon.timeseries-1.4.1b20250908}/src/autogluon/timeseries/configs/predictor_presets.py +0 -0
  13. {autogluon.timeseries-1.4.1b20250831 → autogluon.timeseries-1.4.1b20250908}/src/autogluon/timeseries/dataset/__init__.py +0 -0
  14. {autogluon.timeseries-1.4.1b20250831 → autogluon.timeseries-1.4.1b20250908}/src/autogluon/timeseries/dataset/ts_dataframe.py +0 -0
  15. {autogluon.timeseries-1.4.1b20250831 → autogluon.timeseries-1.4.1b20250908}/src/autogluon/timeseries/evaluator.py +0 -0
  16. {autogluon.timeseries-1.4.1b20250831 → autogluon.timeseries-1.4.1b20250908}/src/autogluon/timeseries/learner.py +0 -0
  17. {autogluon.timeseries-1.4.1b20250831 → autogluon.timeseries-1.4.1b20250908}/src/autogluon/timeseries/metrics/__init__.py +0 -0
  18. {autogluon.timeseries-1.4.1b20250831 → autogluon.timeseries-1.4.1b20250908}/src/autogluon/timeseries/metrics/abstract.py +0 -0
  19. {autogluon.timeseries-1.4.1b20250831 → autogluon.timeseries-1.4.1b20250908}/src/autogluon/timeseries/metrics/point.py +0 -0
  20. {autogluon.timeseries-1.4.1b20250831 → autogluon.timeseries-1.4.1b20250908}/src/autogluon/timeseries/metrics/quantile.py +0 -0
  21. {autogluon.timeseries-1.4.1b20250831 → autogluon.timeseries-1.4.1b20250908}/src/autogluon/timeseries/metrics/utils.py +0 -0
  22. {autogluon.timeseries-1.4.1b20250831 → autogluon.timeseries-1.4.1b20250908}/src/autogluon/timeseries/models/__init__.py +0 -0
  23. {autogluon.timeseries-1.4.1b20250831 → autogluon.timeseries-1.4.1b20250908}/src/autogluon/timeseries/models/abstract/__init__.py +0 -0
  24. {autogluon.timeseries-1.4.1b20250831 → autogluon.timeseries-1.4.1b20250908}/src/autogluon/timeseries/models/abstract/abstract_timeseries_model.py +0 -0
  25. {autogluon.timeseries-1.4.1b20250831 → autogluon.timeseries-1.4.1b20250908}/src/autogluon/timeseries/models/abstract/model_trial.py +0 -0
  26. {autogluon.timeseries-1.4.1b20250831 → autogluon.timeseries-1.4.1b20250908}/src/autogluon/timeseries/models/abstract/tunable.py +0 -0
  27. {autogluon.timeseries-1.4.1b20250831 → autogluon.timeseries-1.4.1b20250908}/src/autogluon/timeseries/models/autogluon_tabular/__init__.py +0 -0
  28. {autogluon.timeseries-1.4.1b20250831 → autogluon.timeseries-1.4.1b20250908}/src/autogluon/timeseries/models/autogluon_tabular/mlforecast.py +0 -0
  29. {autogluon.timeseries-1.4.1b20250831 → autogluon.timeseries-1.4.1b20250908}/src/autogluon/timeseries/models/autogluon_tabular/per_step.py +0 -0
  30. {autogluon.timeseries-1.4.1b20250831 → autogluon.timeseries-1.4.1b20250908}/src/autogluon/timeseries/models/autogluon_tabular/transforms.py +0 -0
  31. {autogluon.timeseries-1.4.1b20250831 → autogluon.timeseries-1.4.1b20250908}/src/autogluon/timeseries/models/autogluon_tabular/utils.py +0 -0
  32. {autogluon.timeseries-1.4.1b20250831 → autogluon.timeseries-1.4.1b20250908}/src/autogluon/timeseries/models/chronos/__init__.py +0 -0
  33. {autogluon.timeseries-1.4.1b20250831 → autogluon.timeseries-1.4.1b20250908}/src/autogluon/timeseries/models/chronos/pipeline/__init__.py +0 -0
  34. {autogluon.timeseries-1.4.1b20250831 → autogluon.timeseries-1.4.1b20250908}/src/autogluon/timeseries/models/chronos/pipeline/base.py +0 -0
  35. {autogluon.timeseries-1.4.1b20250831 → autogluon.timeseries-1.4.1b20250908}/src/autogluon/timeseries/models/chronos/pipeline/chronos.py +0 -0
  36. {autogluon.timeseries-1.4.1b20250831 → autogluon.timeseries-1.4.1b20250908}/src/autogluon/timeseries/models/chronos/pipeline/utils.py +0 -0
  37. {autogluon.timeseries-1.4.1b20250831 → autogluon.timeseries-1.4.1b20250908}/src/autogluon/timeseries/models/ensemble/__init__.py +0 -0
  38. {autogluon.timeseries-1.4.1b20250831 → autogluon.timeseries-1.4.1b20250908}/src/autogluon/timeseries/models/ensemble/abstract.py +0 -0
  39. {autogluon.timeseries-1.4.1b20250831 → autogluon.timeseries-1.4.1b20250908}/src/autogluon/timeseries/models/ensemble/basic.py +0 -0
  40. {autogluon.timeseries-1.4.1b20250831 → autogluon.timeseries-1.4.1b20250908}/src/autogluon/timeseries/models/ensemble/greedy.py +0 -0
  41. {autogluon.timeseries-1.4.1b20250831 → autogluon.timeseries-1.4.1b20250908}/src/autogluon/timeseries/models/gluonts/__init__.py +0 -0
  42. {autogluon.timeseries-1.4.1b20250831 → autogluon.timeseries-1.4.1b20250908}/src/autogluon/timeseries/models/gluonts/abstract.py +0 -0
  43. {autogluon.timeseries-1.4.1b20250831 → autogluon.timeseries-1.4.1b20250908}/src/autogluon/timeseries/models/gluonts/dataset.py +0 -0
  44. {autogluon.timeseries-1.4.1b20250831 → autogluon.timeseries-1.4.1b20250908}/src/autogluon/timeseries/models/gluonts/models.py +0 -0
  45. {autogluon.timeseries-1.4.1b20250831 → autogluon.timeseries-1.4.1b20250908}/src/autogluon/timeseries/models/local/__init__.py +0 -0
  46. {autogluon.timeseries-1.4.1b20250831 → autogluon.timeseries-1.4.1b20250908}/src/autogluon/timeseries/models/local/abstract_local_model.py +0 -0
  47. {autogluon.timeseries-1.4.1b20250831 → autogluon.timeseries-1.4.1b20250908}/src/autogluon/timeseries/models/local/naive.py +0 -0
  48. {autogluon.timeseries-1.4.1b20250831 → autogluon.timeseries-1.4.1b20250908}/src/autogluon/timeseries/models/local/npts.py +0 -0
  49. {autogluon.timeseries-1.4.1b20250831 → autogluon.timeseries-1.4.1b20250908}/src/autogluon/timeseries/models/local/statsforecast.py +0 -0
  50. {autogluon.timeseries-1.4.1b20250831 → autogluon.timeseries-1.4.1b20250908}/src/autogluon/timeseries/models/multi_window/__init__.py +0 -0
  51. {autogluon.timeseries-1.4.1b20250831 → autogluon.timeseries-1.4.1b20250908}/src/autogluon/timeseries/models/multi_window/multi_window_model.py +0 -0
  52. {autogluon.timeseries-1.4.1b20250831 → autogluon.timeseries-1.4.1b20250908}/src/autogluon/timeseries/models/registry.py +0 -0
  53. {autogluon.timeseries-1.4.1b20250831 → autogluon.timeseries-1.4.1b20250908}/src/autogluon/timeseries/predictor.py +0 -0
  54. {autogluon.timeseries-1.4.1b20250831 → autogluon.timeseries-1.4.1b20250908}/src/autogluon/timeseries/regressor.py +0 -0
  55. {autogluon.timeseries-1.4.1b20250831 → autogluon.timeseries-1.4.1b20250908}/src/autogluon/timeseries/splitter.py +0 -0
  56. {autogluon.timeseries-1.4.1b20250831 → autogluon.timeseries-1.4.1b20250908}/src/autogluon/timeseries/trainer/__init__.py +0 -0
  57. {autogluon.timeseries-1.4.1b20250831 → autogluon.timeseries-1.4.1b20250908}/src/autogluon/timeseries/trainer/model_set_builder.py +0 -0
  58. {autogluon.timeseries-1.4.1b20250831 → autogluon.timeseries-1.4.1b20250908}/src/autogluon/timeseries/trainer/prediction_cache.py +0 -0
  59. {autogluon.timeseries-1.4.1b20250831 → autogluon.timeseries-1.4.1b20250908}/src/autogluon/timeseries/trainer/trainer.py +0 -0
  60. {autogluon.timeseries-1.4.1b20250831 → autogluon.timeseries-1.4.1b20250908}/src/autogluon/timeseries/transforms/__init__.py +0 -0
  61. {autogluon.timeseries-1.4.1b20250831 → autogluon.timeseries-1.4.1b20250908}/src/autogluon/timeseries/transforms/covariate_scaler.py +0 -0
  62. {autogluon.timeseries-1.4.1b20250831 → autogluon.timeseries-1.4.1b20250908}/src/autogluon/timeseries/transforms/target_scaler.py +0 -0
  63. {autogluon.timeseries-1.4.1b20250831 → autogluon.timeseries-1.4.1b20250908}/src/autogluon/timeseries/utils/__init__.py +0 -0
  64. {autogluon.timeseries-1.4.1b20250831 → autogluon.timeseries-1.4.1b20250908}/src/autogluon/timeseries/utils/datetime/__init__.py +0 -0
  65. {autogluon.timeseries-1.4.1b20250831 → autogluon.timeseries-1.4.1b20250908}/src/autogluon/timeseries/utils/datetime/base.py +0 -0
  66. {autogluon.timeseries-1.4.1b20250831 → autogluon.timeseries-1.4.1b20250908}/src/autogluon/timeseries/utils/datetime/lags.py +0 -0
  67. {autogluon.timeseries-1.4.1b20250831 → autogluon.timeseries-1.4.1b20250908}/src/autogluon/timeseries/utils/datetime/seasonality.py +0 -0
  68. {autogluon.timeseries-1.4.1b20250831 → autogluon.timeseries-1.4.1b20250908}/src/autogluon/timeseries/utils/datetime/time_features.py +0 -0
  69. {autogluon.timeseries-1.4.1b20250831 → autogluon.timeseries-1.4.1b20250908}/src/autogluon/timeseries/utils/features.py +0 -0
  70. {autogluon.timeseries-1.4.1b20250831 → autogluon.timeseries-1.4.1b20250908}/src/autogluon/timeseries/utils/forecast.py +0 -0
  71. {autogluon.timeseries-1.4.1b20250831 → autogluon.timeseries-1.4.1b20250908}/src/autogluon/timeseries/utils/warning_filters.py +0 -0
  72. {autogluon.timeseries-1.4.1b20250831 → autogluon.timeseries-1.4.1b20250908}/src/autogluon.timeseries.egg-info/SOURCES.txt +0 -0
  73. {autogluon.timeseries-1.4.1b20250831 → autogluon.timeseries-1.4.1b20250908}/src/autogluon.timeseries.egg-info/dependency_links.txt +0 -0
  74. {autogluon.timeseries-1.4.1b20250831 → autogluon.timeseries-1.4.1b20250908}/src/autogluon.timeseries.egg-info/namespace_packages.txt +0 -0
  75. {autogluon.timeseries-1.4.1b20250831 → autogluon.timeseries-1.4.1b20250908}/src/autogluon.timeseries.egg-info/top_level.txt +0 -0
  76. {autogluon.timeseries-1.4.1b20250831 → autogluon.timeseries-1.4.1b20250908}/src/autogluon.timeseries.egg-info/zip-safe +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: autogluon.timeseries
3
- Version: 1.4.1b20250831
3
+ Version: 1.4.1b20250908
4
4
  Summary: Fast and Accurate ML in 3 Lines of Code
5
5
  Home-page: https://github.com/autogluon/autogluon
6
6
  Author: AutoGluon Community
@@ -482,9 +482,12 @@ class ChronosModel(AbstractTimeSeriesModel):
482
482
 
483
483
  if self.prediction_length != fine_tune_prediction_length:
484
484
  logger.debug(
485
- f"\tChronosBolt models can only be fine-tuned with a maximum prediction_length of {model_prediction_length}. "
485
+ f"\tChronos-Bolt models can only be fine-tuned with a maximum prediction_length of {model_prediction_length}. "
486
486
  f"Fine-tuning prediction_length has been changed to {fine_tune_prediction_length}."
487
487
  )
488
+ if self.quantile_levels != self.model_pipeline.quantiles:
489
+ self.model_pipeline.model.update_output_quantiles(self.quantile_levels)
490
+ logger.info(f"\tChronos-Bolt will be fine-tuned with quantile_levels={self.quantile_levels}")
488
491
  else:
489
492
  raise ValueError(f"Unsupported model pipeline: {type(self.model_pipeline)}")
490
493
 
@@ -371,6 +371,56 @@ class ChronosBoltModelForForecasting(T5PreTrainedModel):
371
371
 
372
372
  return decoder_outputs.last_hidden_state # sequence_outputs, b x 1 x d_model
373
373
 
374
+ def update_output_quantiles(self, new_quantiles: list[float]) -> None:
375
+ """In-place updates model's output layer to support only the specified new quantiles by copying weights from closest existing quantiles."""
376
+ old_quantiles = self.chronos_config.quantiles
377
+ new_quantiles = sorted(new_quantiles)
378
+
379
+ if new_quantiles == old_quantiles:
380
+ return
381
+
382
+ self.chronos_config.quantiles = new_quantiles
383
+ self.num_quantiles = len(new_quantiles)
384
+ self.register_buffer("quantiles", torch.tensor(new_quantiles, dtype=self.dtype), persistent=False)
385
+
386
+ old_output_layer = self.output_patch_embedding
387
+ new_output_layer = ResidualBlock(
388
+ in_dim=self.config.d_model,
389
+ h_dim=self.config.d_ff,
390
+ out_dim=len(new_quantiles) * self.chronos_config.prediction_length,
391
+ act_fn_name=self.config.dense_act_fn,
392
+ dropout_p=self.config.dropout_rate,
393
+ )
394
+
395
+ # hidden_layer is shared across all quantiles
396
+ new_output_layer.hidden_layer.weight.data.copy_(old_output_layer.hidden_layer.weight.data)
397
+ if old_output_layer.hidden_layer.bias is not None:
398
+ new_output_layer.hidden_layer.bias.data.copy_(old_output_layer.hidden_layer.bias.data)
399
+
400
+ def copy_quantile_weights(src_idx: int, dst_idx: int):
401
+ """Copy weights for one quantile from src_idx to dst_idx"""
402
+ prediction_length = self.chronos_config.prediction_length
403
+ src_start, src_end = src_idx * prediction_length, (src_idx + 1) * prediction_length
404
+ dst_start, dst_end = dst_idx * prediction_length, (dst_idx + 1) * prediction_length
405
+
406
+ for layer_name in ["output_layer", "residual_layer"]:
407
+ old_layer_attr = getattr(old_output_layer, layer_name)
408
+ new_layer_attr = getattr(new_output_layer, layer_name)
409
+
410
+ new_layer_attr.weight[dst_start:dst_end] = old_layer_attr.weight[src_start:src_end]
411
+ if old_layer_attr.bias is not None:
412
+ new_layer_attr.bias[dst_start:dst_end] = old_layer_attr.bias[src_start:src_end]
413
+
414
+ with torch.no_grad():
415
+ for new_idx, new_q in enumerate(new_quantiles):
416
+ closest_q = min(old_quantiles, key=lambda x: abs(x - new_q))
417
+ closest_idx = old_quantiles.index(closest_q)
418
+ copy_quantile_weights(closest_idx, new_idx)
419
+
420
+ self.output_patch_embedding = new_output_layer
421
+ self.config.chronos_config["quantiles"] = new_quantiles
422
+ self.chronos_config.quantiles = new_quantiles
423
+
374
424
 
375
425
  class ChronosBoltPipeline(BaseChronosPipeline):
376
426
  forecast_type: ForecastType = ForecastType.QUANTILES
@@ -1,4 +1,4 @@
1
1
  """This is the autogluon version file."""
2
2
 
3
- __version__ = "1.4.1b20250831"
3
+ __version__ = "1.4.1b20250908"
4
4
  __lite__ = False
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: autogluon.timeseries
3
- Version: 1.4.1b20250831
3
+ Version: 1.4.1b20250908
4
4
  Summary: Fast and Accurate ML in 3 Lines of Code
5
5
  Home-page: https://github.com/autogluon/autogluon
6
6
  Author: AutoGluon Community
@@ -17,10 +17,10 @@ fugue>=0.9.0
17
17
  tqdm<5,>=4.38
18
18
  orjson~=3.9
19
19
  tensorboard<3,>=2.9
20
- autogluon.core[raytune]==1.4.1b20250831
21
- autogluon.common==1.4.1b20250831
22
- autogluon.features==1.4.1b20250831
23
- autogluon.tabular[catboost,lightgbm,xgboost]==1.4.1b20250831
20
+ autogluon.core[raytune]==1.4.1b20250908
21
+ autogluon.common==1.4.1b20250908
22
+ autogluon.features==1.4.1b20250908
23
+ autogluon.tabular[catboost,lightgbm,xgboost]==1.4.1b20250908
24
24
 
25
25
  [all]
26
26