Releases: amazon-science/chronos-forecasting
2.1.0
🚀 What's New?
- Chronos-2 can now be deployed on AWS via SageMaker JumpStart. Please check this notebook for details.
- Scaled Dot Product Attention (SDPA) is now used as the default attention implementation in Chronos-2. If you need to use the previous eager implementation, please load the model with
Chronos2Pipeline.from_pretrained(..., attn_implementation="eager"). predict_dfsupport has been added for older Chronos and Chronos-Bolt models. Now, all models (Chronos-2, Chronos-Bolt, Chronos) provide a unified pandas dataframe API. Note: Only Chronos-2 supports multivariate and covariate-informed forecasting.Chronos2Pipeline.embedhas been added, enabling users to extract embeddings from the last layer of the Chronos-2 encoder.
🐛 Bug Fixes
- Fixed issues related to past-only covariates use during Chronos-2 fine-tuning. If you're fine-tuning Chronos-2 models, we strongly recommend upgrading to
chronos-forecasting==2.1.0. - Fixed issue related to multiple workers on windows.
All Changes
- Fix pandas install instruction by @abdulfatir in #326
- Scope down GitHub token permissions by @AdnaneKhan in #328
- Update Chronos-2 notebook install instructions by @abdulfatir in #333
- Add logging steps in fine-tuning example by @abdulfatir in #334
- [chronos-2] add support for SDPA by @kashif in #331
- Treat notebooks as documentation in linguist by @abdulfatir in #338
- Count notebooks as python in language stats by @abdulfatir in #347
- Move SageMaker notebook to a new path by @shchur in #348
- Revert "Move SageMaker notebook to a new path" by @shchur in #349
- fix validate_and_prepare_single_dict_task by separating "past only" and "future known" cov keys by @HarvestStars in #344
- Add Chronos-2 SageMaker notebook by @shchur in #350
- Update model link to Hugging Face by @shchur in #353
- Remove logo from README by @shchur in #355
- Update Notebooks and README by @abdulfatir in #356
- Add FutureWarning for CloudFront by @abdulfatir in #357
- Relax
transformerslower bound to >=4.41 by @abdulfatir in #364 - Set
num_workers=0in Chronos-2 test data loader by @IliasAarab in #365 - Update long horizon heuristic for Chronos-Bolt by @abdulfatir in #366
- Add predict_df support for Chronos and Chronos-Bolt by @abdulfatir in #371
- Add Chronos2Pipeline.embed by @abdulfatir in #361
- Mask past-only covariates during loss computation by @abdulfatir in #379
- Chronos-2: Change default fine-tuning learning rate and remove experimental label by @abdulfatir in #381
- Update version to 2.1.0rc1 for pre-release by @abdulfatir in #383
- Update torch dependency version to >=2.2,<3 by @abdulfatir in #388
- Bump version to 2.1.0 by @abdulfatir in #389
New Contributors
- @AdnaneKhan made their first contribution in #328
- @kashif made their first contribution in #331
- @HarvestStars made their first contribution in #344
- @IliasAarab made their first contribution in #365
Full Changelog: v2.0.1...v2.1.0
2.1.0rc1
What's Changed
- Fix pandas install instruction by @abdulfatir in #326
- Scope down GitHub token permissions by @AdnaneKhan in #328
- Update Chronos-2 notebook install instructions by @abdulfatir in #333
- Add logging steps in fine-tuning example by @abdulfatir in #334
- [chronos-2] add support for SDPA by @kashif in #331
- Treat notebooks as documentation in linguist by @abdulfatir in #338
- Count notebooks as python in language stats by @abdulfatir in #347
- Move SageMaker notebook to a new path by @shchur in #348
- Revert "Move SageMaker notebook to a new path" by @shchur in #349
- fix validate_and_prepare_single_dict_task by separating "past only" and "future known" cov keys by @HarvestStars in #344
- Add Chronos-2 SageMaker notebook by @shchur in #350
- Update model link to Hugging Face by @shchur in #353
- Remove logo from README by @shchur in #355
- Update Notebooks and README by @abdulfatir in #356
- Add FutureWarning for CloudFront by @abdulfatir in #357
- Relax
transformerslower bound to >=4.41 by @abdulfatir in #364 - Set
num_workers=0in Chronos-2 test data loader by @IliasAarab in #365 - Update long horizon heuristic for Chronos-Bolt by @abdulfatir in #366
- Add predict_df support for Chronos and Chronos-Bolt by @abdulfatir in #371
- Add Chronos2Pipeline.embed by @abdulfatir in #361
- Mask past-only covariates during loss computation by @abdulfatir in #379
- Chronos-2: Change default fine-tuning learning rate and remove experimental label by @abdulfatir in #381
- Update version to 2.1.0rc1 for pre-release by @abdulfatir in #383
New Contributors
- @AdnaneKhan made their first contribution in #328
- @kashif made their first contribution in #331
- @HarvestStars made their first contribution in #344
- @IliasAarab made their first contribution in #365
Full Changelog: v2.0.1...v2.1.0rc1
v2.0.1
What's Changed
- Relax
transformerslower bound to >=4.41 by @abdulfatir in #364 - Update long horizon heuristic for Chronos-Bolt by @abdulfatir in #366
Full Changelog: v2.0.0...v2.0.1
2.0.0
🚀 Introducing Chronos-2: From univariate to universal forecasting
This release adds support for Chronos-2. It is a 120M-parameter time series foundation model that offers zero-shot support for univariate, multivariate, and covariate-informed forecasting tasks. Chronos-2 delivers state-of-the-art zero-shot performance across multiple benchmarks (including fev-bench and GIFT-Eval), with the largest improvements observed on tasks that include exogenous features. In head-to-head comparisons, it outperforms its predecessor, Chronos-Bolt, over 90% of times.
📌 Get started with Chronos-2: Chronos-2 Quick Start
Chronos-2 offers significant improvements in capabilities and can handle diverse forecasting scenarios not supported by earlier models.
| Capability | Chronos | Chronos-Bolt | Chronos-2 |
|---|---|---|---|
| Univariate Forecasting | ✅ | ✅ | ✅ |
| Cross-learning across items | ❌ | ❌ | ✅ |
| Multivariate Forecasting | ❌ | ❌ | ✅ |
| Past-only (real/categorical) covariates | ❌ | ❌ | ✅ |
| Known future (real/categorical) covariates | 🧩 | 🧩 | ✅ |
| Fine-tuning support | ✅ | ✅ | ✅ |
| Max. Context Length | 512 | 2048 | 8192 |
🧩 Chronos/Chronos-Bolt do not natively support future covariates, but they can be combined with external covariate regressors (see AutoGluon tutorial). This only models per-timestep effects, not effects across time. In contrast, Chronos-2 supports all covariate types natively.

Figure 1: The complete Chronos-2 pipeline. Input time series (targets and covariates) are first normalized using a robust scaling scheme, after which a time index and mask meta features are added. The resulting sequences are split into non-overlapping patches and mapped to high-dimensional embeddings via a residual network. The core transformer stack operates on these patch embeddings and produces multi-patch quantile outputs corresponding to the future patches masked out in the input. Each transformer block alternates between time and group attention layers: the time attention layer aggregates information across patches within a single time series, while the group attention layer aggregates information across all series within a group at each patch index. The figure illustrates two multivariate time series with one known covariate each, with corresponding groups highlighted in blue and red. This example is for illustration purposes only; Chronos-2 supports arbitrary numbers of targets and optional covariates.

Figure 2: Results of experiments on the fev-bench time series benchmark. The average win rate and skill score are computed with respect to the scaled quantile loss (SQL) metric, which evaluates probabilistic forecasting performance. Higher values are better for both. Chronos-2 outperforms all existing pretrained models by a substantial margin on this comprehensive benchmark, which includes univariate, multivariate, and covariate-informed forecasting tasks.

Figure 3: Chronos-2 results in univariate mode and the corresponding gains from in-context learning (ICL), shown as stacked bars on the covariates subset of fev-bench. ICL delivers large gains on tasks with covariates, demonstrating Chronos-2’s ability to effectively use covariates through ICL. Besides Chronos-2, only TabPFN-TS and COSMIC support covariates, and Chronos-2 outperforms all baselines (including TabPFN-TS and COSMIC) by a wide margin.

Figure 4: Results on the GIFT-Eval time series benchmark. The average win rate and skill score with respect to the (a) probabilistic and (b) point forecasting metrics. Higher values are better for both win rate and skill score. Chronos-2 outperforms the previously best-performing models, TimesFM-2.5 and TiRex.
What's Changed
- Add Chronos-2 by @abdulfatir in #319
- Remove ALWAYS_DOWNLOAD from CF and S3 by @abdulfatir in #322
- Use dynamic versioning and bump version by @abdulfatir in #320
- Add example notebook for Chronos-2 by @shchur in #325
- Update README for Chronos-2 by @abdulfatir in #324
- Bump version to 2.0.0 by @abdulfatir in #323
Full Changelog: v1.5.3...v2.0.0
2.0.0rc1
Chronos-2 Pre-release
What's Changed
- Add Chronos-2 by @abdulfatir in #319
- Remove ALWAYS_DOWNLOAD from CF and S3 by @abdulfatir in #322
- Use dynamic versioning and bump version by @abdulfatir in #320
Full Changelog: v1.5.3...v2.0.0rc1
1.5.3
What's Changed
- Fix issue with new caching mechanism in transformers and bump versions by @abdulfatir in #313
Full Changelog: v1.5.2...v1.5.3
1.5.2
v1.5.2 relaxes the upper bound on accelerate to <2.
What's Changed
- Bump
accelerate>=0.32,<2by @Tyler-Hardin in #298 - Bump version to 1.5.2 by @abdulfatir in #299
New Contributors
- @Tyler-Hardin made their first contribution in #298
Full Changelog: v1.5.1...v1.5.2
1.5.1
🐛 Fixed an issue with forecasting constant series for Chronos-Bolt. See #294.
What's Changed
- Bump transformers to >=4.48 by @lostella in #280
- Add example notebook for SageMaker JumpStart by @shchur in #281
- Fix date in readme by @lostella in #284
- Fix scaling that affects constant series by @abdulfatir in #294
- Fix type-checking issues by @lostella in #295
Full Changelog: v1.5.0...v1.5.1
1.5.0
What's Changed
- Fix training install instructions by @abdulfatir in #236
- remove eval-pr-comment workflow by @canerturkmen in #239
- Add pipeline.embed support for Chronos-Bolt by @abdulfatir in #247
- Update issue templates by @lostella in #269
- Relax torch compatibility to <3 by @lostella in #277
- Bump package version to 1.5.0 by @lostella in #278
Full Changelog: v1.4.1...v1.5.0