autogluon.timeseries 1.4.1b20250903__tar.gz → 1.4.1b20250906__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.
- {autogluon.timeseries-1.4.1b20250903 → autogluon.timeseries-1.4.1b20250906}/PKG-INFO +1 -1
- {autogluon.timeseries-1.4.1b20250903 → autogluon.timeseries-1.4.1b20250906}/src/autogluon/timeseries/models/chronos/model.py +4 -1
- {autogluon.timeseries-1.4.1b20250903 → autogluon.timeseries-1.4.1b20250906}/src/autogluon/timeseries/models/chronos/pipeline/chronos_bolt.py +50 -0
- {autogluon.timeseries-1.4.1b20250903 → autogluon.timeseries-1.4.1b20250906}/src/autogluon/timeseries/version.py +1 -1
- {autogluon.timeseries-1.4.1b20250903 → autogluon.timeseries-1.4.1b20250906}/src/autogluon.timeseries.egg-info/PKG-INFO +1 -1
- {autogluon.timeseries-1.4.1b20250903 → autogluon.timeseries-1.4.1b20250906}/src/autogluon.timeseries.egg-info/requires.txt +4 -4
- {autogluon.timeseries-1.4.1b20250903 → autogluon.timeseries-1.4.1b20250906}/setup.cfg +0 -0
- {autogluon.timeseries-1.4.1b20250903 → autogluon.timeseries-1.4.1b20250906}/setup.py +0 -0
- {autogluon.timeseries-1.4.1b20250903 → autogluon.timeseries-1.4.1b20250906}/src/autogluon/timeseries/__init__.py +0 -0
- {autogluon.timeseries-1.4.1b20250903 → autogluon.timeseries-1.4.1b20250906}/src/autogluon/timeseries/configs/__init__.py +0 -0
- {autogluon.timeseries-1.4.1b20250903 → autogluon.timeseries-1.4.1b20250906}/src/autogluon/timeseries/configs/hyperparameter_presets.py +0 -0
- {autogluon.timeseries-1.4.1b20250903 → autogluon.timeseries-1.4.1b20250906}/src/autogluon/timeseries/configs/predictor_presets.py +0 -0
- {autogluon.timeseries-1.4.1b20250903 → autogluon.timeseries-1.4.1b20250906}/src/autogluon/timeseries/dataset/__init__.py +0 -0
- {autogluon.timeseries-1.4.1b20250903 → autogluon.timeseries-1.4.1b20250906}/src/autogluon/timeseries/dataset/ts_dataframe.py +0 -0
- {autogluon.timeseries-1.4.1b20250903 → autogluon.timeseries-1.4.1b20250906}/src/autogluon/timeseries/evaluator.py +0 -0
- {autogluon.timeseries-1.4.1b20250903 → autogluon.timeseries-1.4.1b20250906}/src/autogluon/timeseries/learner.py +0 -0
- {autogluon.timeseries-1.4.1b20250903 → autogluon.timeseries-1.4.1b20250906}/src/autogluon/timeseries/metrics/__init__.py +0 -0
- {autogluon.timeseries-1.4.1b20250903 → autogluon.timeseries-1.4.1b20250906}/src/autogluon/timeseries/metrics/abstract.py +0 -0
- {autogluon.timeseries-1.4.1b20250903 → autogluon.timeseries-1.4.1b20250906}/src/autogluon/timeseries/metrics/point.py +0 -0
- {autogluon.timeseries-1.4.1b20250903 → autogluon.timeseries-1.4.1b20250906}/src/autogluon/timeseries/metrics/quantile.py +0 -0
- {autogluon.timeseries-1.4.1b20250903 → autogluon.timeseries-1.4.1b20250906}/src/autogluon/timeseries/metrics/utils.py +0 -0
- {autogluon.timeseries-1.4.1b20250903 → autogluon.timeseries-1.4.1b20250906}/src/autogluon/timeseries/models/__init__.py +0 -0
- {autogluon.timeseries-1.4.1b20250903 → autogluon.timeseries-1.4.1b20250906}/src/autogluon/timeseries/models/abstract/__init__.py +0 -0
- {autogluon.timeseries-1.4.1b20250903 → autogluon.timeseries-1.4.1b20250906}/src/autogluon/timeseries/models/abstract/abstract_timeseries_model.py +0 -0
- {autogluon.timeseries-1.4.1b20250903 → autogluon.timeseries-1.4.1b20250906}/src/autogluon/timeseries/models/abstract/model_trial.py +0 -0
- {autogluon.timeseries-1.4.1b20250903 → autogluon.timeseries-1.4.1b20250906}/src/autogluon/timeseries/models/abstract/tunable.py +0 -0
- {autogluon.timeseries-1.4.1b20250903 → autogluon.timeseries-1.4.1b20250906}/src/autogluon/timeseries/models/autogluon_tabular/__init__.py +0 -0
- {autogluon.timeseries-1.4.1b20250903 → autogluon.timeseries-1.4.1b20250906}/src/autogluon/timeseries/models/autogluon_tabular/mlforecast.py +0 -0
- {autogluon.timeseries-1.4.1b20250903 → autogluon.timeseries-1.4.1b20250906}/src/autogluon/timeseries/models/autogluon_tabular/per_step.py +0 -0
- {autogluon.timeseries-1.4.1b20250903 → autogluon.timeseries-1.4.1b20250906}/src/autogluon/timeseries/models/autogluon_tabular/transforms.py +0 -0
- {autogluon.timeseries-1.4.1b20250903 → autogluon.timeseries-1.4.1b20250906}/src/autogluon/timeseries/models/autogluon_tabular/utils.py +0 -0
- {autogluon.timeseries-1.4.1b20250903 → autogluon.timeseries-1.4.1b20250906}/src/autogluon/timeseries/models/chronos/__init__.py +0 -0
- {autogluon.timeseries-1.4.1b20250903 → autogluon.timeseries-1.4.1b20250906}/src/autogluon/timeseries/models/chronos/pipeline/__init__.py +0 -0
- {autogluon.timeseries-1.4.1b20250903 → autogluon.timeseries-1.4.1b20250906}/src/autogluon/timeseries/models/chronos/pipeline/base.py +0 -0
- {autogluon.timeseries-1.4.1b20250903 → autogluon.timeseries-1.4.1b20250906}/src/autogluon/timeseries/models/chronos/pipeline/chronos.py +0 -0
- {autogluon.timeseries-1.4.1b20250903 → autogluon.timeseries-1.4.1b20250906}/src/autogluon/timeseries/models/chronos/pipeline/utils.py +0 -0
- {autogluon.timeseries-1.4.1b20250903 → autogluon.timeseries-1.4.1b20250906}/src/autogluon/timeseries/models/ensemble/__init__.py +0 -0
- {autogluon.timeseries-1.4.1b20250903 → autogluon.timeseries-1.4.1b20250906}/src/autogluon/timeseries/models/ensemble/abstract.py +0 -0
- {autogluon.timeseries-1.4.1b20250903 → autogluon.timeseries-1.4.1b20250906}/src/autogluon/timeseries/models/ensemble/basic.py +0 -0
- {autogluon.timeseries-1.4.1b20250903 → autogluon.timeseries-1.4.1b20250906}/src/autogluon/timeseries/models/ensemble/greedy.py +0 -0
- {autogluon.timeseries-1.4.1b20250903 → autogluon.timeseries-1.4.1b20250906}/src/autogluon/timeseries/models/gluonts/__init__.py +0 -0
- {autogluon.timeseries-1.4.1b20250903 → autogluon.timeseries-1.4.1b20250906}/src/autogluon/timeseries/models/gluonts/abstract.py +0 -0
- {autogluon.timeseries-1.4.1b20250903 → autogluon.timeseries-1.4.1b20250906}/src/autogluon/timeseries/models/gluonts/dataset.py +0 -0
- {autogluon.timeseries-1.4.1b20250903 → autogluon.timeseries-1.4.1b20250906}/src/autogluon/timeseries/models/gluonts/models.py +0 -0
- {autogluon.timeseries-1.4.1b20250903 → autogluon.timeseries-1.4.1b20250906}/src/autogluon/timeseries/models/local/__init__.py +0 -0
- {autogluon.timeseries-1.4.1b20250903 → autogluon.timeseries-1.4.1b20250906}/src/autogluon/timeseries/models/local/abstract_local_model.py +0 -0
- {autogluon.timeseries-1.4.1b20250903 → autogluon.timeseries-1.4.1b20250906}/src/autogluon/timeseries/models/local/naive.py +0 -0
- {autogluon.timeseries-1.4.1b20250903 → autogluon.timeseries-1.4.1b20250906}/src/autogluon/timeseries/models/local/npts.py +0 -0
- {autogluon.timeseries-1.4.1b20250903 → autogluon.timeseries-1.4.1b20250906}/src/autogluon/timeseries/models/local/statsforecast.py +0 -0
- {autogluon.timeseries-1.4.1b20250903 → autogluon.timeseries-1.4.1b20250906}/src/autogluon/timeseries/models/multi_window/__init__.py +0 -0
- {autogluon.timeseries-1.4.1b20250903 → autogluon.timeseries-1.4.1b20250906}/src/autogluon/timeseries/models/multi_window/multi_window_model.py +0 -0
- {autogluon.timeseries-1.4.1b20250903 → autogluon.timeseries-1.4.1b20250906}/src/autogluon/timeseries/models/registry.py +0 -0
- {autogluon.timeseries-1.4.1b20250903 → autogluon.timeseries-1.4.1b20250906}/src/autogluon/timeseries/predictor.py +0 -0
- {autogluon.timeseries-1.4.1b20250903 → autogluon.timeseries-1.4.1b20250906}/src/autogluon/timeseries/regressor.py +0 -0
- {autogluon.timeseries-1.4.1b20250903 → autogluon.timeseries-1.4.1b20250906}/src/autogluon/timeseries/splitter.py +0 -0
- {autogluon.timeseries-1.4.1b20250903 → autogluon.timeseries-1.4.1b20250906}/src/autogluon/timeseries/trainer/__init__.py +0 -0
- {autogluon.timeseries-1.4.1b20250903 → autogluon.timeseries-1.4.1b20250906}/src/autogluon/timeseries/trainer/model_set_builder.py +0 -0
- {autogluon.timeseries-1.4.1b20250903 → autogluon.timeseries-1.4.1b20250906}/src/autogluon/timeseries/trainer/prediction_cache.py +0 -0
- {autogluon.timeseries-1.4.1b20250903 → autogluon.timeseries-1.4.1b20250906}/src/autogluon/timeseries/trainer/trainer.py +0 -0
- {autogluon.timeseries-1.4.1b20250903 → autogluon.timeseries-1.4.1b20250906}/src/autogluon/timeseries/transforms/__init__.py +0 -0
- {autogluon.timeseries-1.4.1b20250903 → autogluon.timeseries-1.4.1b20250906}/src/autogluon/timeseries/transforms/covariate_scaler.py +0 -0
- {autogluon.timeseries-1.4.1b20250903 → autogluon.timeseries-1.4.1b20250906}/src/autogluon/timeseries/transforms/target_scaler.py +0 -0
- {autogluon.timeseries-1.4.1b20250903 → autogluon.timeseries-1.4.1b20250906}/src/autogluon/timeseries/utils/__init__.py +0 -0
- {autogluon.timeseries-1.4.1b20250903 → autogluon.timeseries-1.4.1b20250906}/src/autogluon/timeseries/utils/datetime/__init__.py +0 -0
- {autogluon.timeseries-1.4.1b20250903 → autogluon.timeseries-1.4.1b20250906}/src/autogluon/timeseries/utils/datetime/base.py +0 -0
- {autogluon.timeseries-1.4.1b20250903 → autogluon.timeseries-1.4.1b20250906}/src/autogluon/timeseries/utils/datetime/lags.py +0 -0
- {autogluon.timeseries-1.4.1b20250903 → autogluon.timeseries-1.4.1b20250906}/src/autogluon/timeseries/utils/datetime/seasonality.py +0 -0
- {autogluon.timeseries-1.4.1b20250903 → autogluon.timeseries-1.4.1b20250906}/src/autogluon/timeseries/utils/datetime/time_features.py +0 -0
- {autogluon.timeseries-1.4.1b20250903 → autogluon.timeseries-1.4.1b20250906}/src/autogluon/timeseries/utils/features.py +0 -0
- {autogluon.timeseries-1.4.1b20250903 → autogluon.timeseries-1.4.1b20250906}/src/autogluon/timeseries/utils/forecast.py +0 -0
- {autogluon.timeseries-1.4.1b20250903 → autogluon.timeseries-1.4.1b20250906}/src/autogluon/timeseries/utils/warning_filters.py +0 -0
- {autogluon.timeseries-1.4.1b20250903 → autogluon.timeseries-1.4.1b20250906}/src/autogluon.timeseries.egg-info/SOURCES.txt +0 -0
- {autogluon.timeseries-1.4.1b20250903 → autogluon.timeseries-1.4.1b20250906}/src/autogluon.timeseries.egg-info/dependency_links.txt +0 -0
- {autogluon.timeseries-1.4.1b20250903 → autogluon.timeseries-1.4.1b20250906}/src/autogluon.timeseries.egg-info/namespace_packages.txt +0 -0
- {autogluon.timeseries-1.4.1b20250903 → autogluon.timeseries-1.4.1b20250906}/src/autogluon.timeseries.egg-info/top_level.txt +0 -0
- {autogluon.timeseries-1.4.1b20250903 → autogluon.timeseries-1.4.1b20250906}/src/autogluon.timeseries.egg-info/zip-safe +0 -0
@@ -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"\
|
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
|
@@ -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.
|
21
|
-
autogluon.common==1.4.
|
22
|
-
autogluon.features==1.4.
|
23
|
-
autogluon.tabular[catboost,lightgbm,xgboost]==1.4.
|
20
|
+
autogluon.core[raytune]==1.4.1b20250906
|
21
|
+
autogluon.common==1.4.1b20250906
|
22
|
+
autogluon.features==1.4.1b20250906
|
23
|
+
autogluon.tabular[catboost,lightgbm,xgboost]==1.4.1b20250906
|
24
24
|
|
25
25
|
[all]
|
26
26
|
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|