Skip to content

Releases: TimeCopilot/timecopilot

v0.0.27

04 Jun 18:42
e6b0f08

Choose a tag to compare

Features

  • Toto 2.0 support: The Toto class now transparently supports both Toto 1.0 and Toto 2.0 foundation models. Pass a Toto 2.0 checkpoint (e.g. Datadog/Toto-2.0-4m) as repo_id and the model family is detected automatically from the checkpoint configuration. Toto 2.0 predicts a fixed set of quantile knots (0.1, ..., 0.9): the median is used as the point forecast and requested quantiles/level are obtained by linear interpolation across the knots. See #343.

    import pandas as pd
    from timecopilot.models.foundation.toto import Toto
    
    df = pd.read_csv(
        "https://timecopilot.s3.amazonaws.com/public/data/air_passengers.csv",
        parse_dates=["ds"],
    )
    
    model = Toto(repo_id="Datadog/Toto-2.0-4m", alias="Toto-2")
    fcst_df = model.forecast(df, h=12, quantiles=[0.1, 0.5, 0.9])

    Available Toto 2.0 checkpoints: Datadog/Toto-2.0-4m, Datadog/Toto-2.0-22m, Datadog/Toto-2.0-313m, Datadog/Toto-2.0-1B, and Datadog/Toto-2.0-2.5B.

Documentation

  • Toto family example: Added the Toto Family notebook, comparing Toto 1.0, Toto 2.0, Prophet, AutoARIMA, and SeasonalNaive. See #343.

Full Changelog: v0.0.26...v0.0.27

v0.0.26

02 Jun 00:22
436cf2b

Choose a tag to compare

Features

  • New neural models: Added 3 new auto neural models: AutoNBEATS, AutoDeepAR, and AutoPatchTST. All support quantiles for probabilistic forecasts trained with MQLoss and follow the same interface as the existing AutoNHITS and AutoTFT. See #338.

    import pandas as pd
    from timecopilot.models.neural import AutoDeepAR, AutoNBEATS, AutoPatchTST
    
    df = pd.read_csv(
        "https://timecopilot.s3.amazonaws.com/public/data/air_passengers.csv",
        parse_dates=["ds"],
    )
    
    model = AutoNBEATS()
    fcst_df = model.forecast(df, h=12, quantiles=[0.1, 0.5, 0.9])
  • New ML models: Added 7 new auto ML models: AutoLinearRegression, AutoXGBoost, AutoRidge, AutoLasso, AutoElasticNet, AutoRandomForest, and AutoCatboost. All models support quantiles for probabilistic forecasts via conformal prediction and follow the same interface as the existing AutoLGBM. See #337.

    import pandas as pd
    from timecopilot.models.ml import (
        AutoLinearRegression,
        AutoXGBoost,
        AutoRidge,
        AutoLasso,
        AutoElasticNet,
        AutoRandomForest,
        AutoCatboost,
    )
    
    df = pd.read_csv(
        "https://timecopilot.s3.amazonaws.com/public/data/air_passengers.csv",
        parse_dates=["ds"],
    )
    
    model = AutoRidge()
    fcst_df = model.forecast(df, h=12, quantiles=[0.1, 0.5, 0.9])
  • Quantile forecasts for AutoLGBM, AutoNHITS, and AutoTFT: These models now support quantile forecasts via the quantiles parameter. Pass a list of floats between 0 and 1 to receive additional output columns named model-q-{percentile}. Note that level is not supported for these models; use quantiles instead. See #336.

    • AutoLGBM computes prediction intervals via conformal prediction using cross-validation residuals.
    • AutoNHITS and AutoTFT are trained with MQLoss when quantiles are requested.
    import pandas as pd
    from timecopilot.models.ml import AutoLGBM
    from timecopilot.models.neural import AutoNHITS, AutoTFT
    
    df = pd.read_csv(
        "https://timecopilot.s3.amazonaws.com/public/data/air_passengers.csv",
        parse_dates=["ds"],
    )
    
    model = AutoLGBM()
    fcst_df = model.forecast(df, h=12, quantiles=[0.1, 0.5, 0.9])
    # columns: unique_id, ds, AutoLGBM, AutoLGBM-q-10, AutoLGBM-q-50, AutoLGBM-q-90

Documentation


Full Changelog: v0.0.25...v0.0.26

release: v0.0.25 (#333)

07 Apr 21:08
abd1239

Choose a tag to compare

Features

  • TimeGPT finetuning: Finetuning is now supported for TimeGPT. You can adapt the pre-trained model to your data before forecasting via TimeGPTFinetuningConfig, with options for loss function and finetuning depth. See #332 and the Finetuning Foundation Models example for a full walkthrough.

    import pandas as pd
    from timecopilot.models.foundation.timegpt import TimeGPT, TimeGPTFinetuningConfig
    
    df = pd.read_csv(
        "https://timecopilot.s3.amazonaws.com/public/data/events_pageviews.csv",
        parse_dates=["ds"],
    )
    
    model = TimeGPT(
        finetuning_config=TimeGPTFinetuningConfig(
            finetune_steps=10,
            finetune_loss="mse",
        ),
        alias="TimeGPT-finetuned",
    )

Documentation

  • Finetuning evaluation example: Added a finetuning evaluation section to the Finetuning Foundation Models notebook, comparing MAPE across different finetune_steps values via cross-validation. See #326.

Full Changelog: v0.0.24...v0.0.25

relase: v0.0.24 (#324)

17 Mar 06:35
4ef04eb

Choose a tag to compare

Features

  • Chronos 2 finetuning: Finetuning is now supported for Chronos 2. You can adapt the pre-trained model to your data before forecasting via ChronosFinetuningConfig, with options for full parameter update or LoRA, and optional saving of the finetuned checkpoint for reuse. See #323 and the Finetuning Foundation Models example for a full walkthrough.

    import pandas as pd
    from timecopilot.models.foundation.chronos import Chronos, ChronosFinetuningConfig
    
    df = pd.read_csv(
        "https://timecopilot.s3.amazonaws.com/public/data/events_pageviews.csv",
        parse_dates=["ds"],
    )
    
    # Chronos 2 with finetuning (full or LoRA)
    model = Chronos(
        repo_id="autogluon/chronos-2-small",
        alias="chronos-2-finetuned",
        finetuning_config=ChronosFinetuningConfig(
            finetune_steps=10,
            finetune_mode="lora",  # or "full"
            save_path="./chronos-2-finetuned/",  # optional: reuse later with repo_id=save_path, finetuning_config=None
        ),
    )
    
    fcst_df = model.forecast(df, h=12)
    print(fcst_df)
  • PatchTST-FM foundation model: Added PatchTST-FM, a Time Series Foundation Model from IBM Research. Use it via the PatchTSTFM class. See #312 and the PatchTST-FM example.

    import pandas as pd
    from timecopilot.models.foundation.patchtst_fm import PatchTSTFM
    
    df = pd.read_csv(
        "https://timecopilot.s3.amazonaws.com/public/data/events_pageviews.csv",
        parse_dates=["ds"],
    )
    
    model = PatchTSTFM()  # defaults to ibm-research/patchtst-fm-r1
    fcst_df = model.forecast(df, h=12)
    print(fcst_df)

Fixes

  • Chronos default dtype: Changed Chronos default dtype from bfloat16 to float32 for better compatibility on systems without bfloat16 support. See #309.

  • FlowState h=1 crash: Fixed a crash in FlowState when using horizon h=1. See #305.

  • AWS Bedrock connection: Fixed Bedrock connection error caused by a missing description. See #311.

  • Slow pip install: Improved pip install performance. See #306.

Documentation

  • sktime integration blog post: Added a blog post on using timecopilot with the sktime forecasting ecosystem. See #301 and #304.

  • Newsletter and contact: Added newsletter signup and "Talk to Us" button to the docs. See #303.

  • Contributing and issue template: Fixed timecopilot fork links in contributing.md and updated the issue template to use the correct repository link. See #314 and #315.

Continuous Integration

  • TOML check in CI: CI now validates TOML configuration. See #319.

Other

  • Hugging Face Hub: Bumped huggingface_hub to v0.36.2. See #300.

New Contributors


Full Changelog: v0.0.23...v0.0.24

release: v0.0.23 (#296)

27 Jan 01:52
1386d52

Choose a tag to compare

V0.0.23 Changelog

Changes

Features

  • sktime support: Added support for sktime models, enabling integration with the sktime forecasting ecosystem. See #278 and #291.

  • Blog section: Added a new blog section to the documentation site. See #272.

  • GIFT-Eval experiment updates: Updated the GIFT-Eval experiment with improvements and enhancements. See #259.

  • Organization links: Updated links throughout the project to point to the timecopilot organization. See #271.

Fixes

  • FlowState single ID and h=1 error: Fixed an error in FlowState that occurred when using a single ID and horizon of 1. See #284.

  • Fix utilsforecast evaluation compatibility: Fixed an issue caused by missing columns. See #282

  • Prophet insufficient data error in detect_anomalies: Fixed an issue where Prophet would throw an insufficient data error when used in anomaly detection. See #269.

  • timecopilot-toto version bump: Updated the timecopilot-toto dependency version. See #295.

Documentation

  • LLM providers documentation: Added comprehensive documentation for using timecopilot with other LLMs, including examples and explanations. See #256, #263, and #267.

  • LLM provider examples: Added example notebooks for different LLM providers:

    • LLM providers example notebook. See #263.
    • AWS Bedrock example with updated query call. See #274 and #276.
    • Google LLM endpoint example. See #287.
  • Documentation link corrections: Fixed and updated links throughout the documentation. See #261.

Continuous Integration

  • CI documentation tests: Fixed CI tests for documentation to ensure proper validation. See #266.

  • MkDocs spelling fix: Fixed a misspelling in the MkDocs configuration that caused CI to fail. See #280.

  • CI runner optimization: Improved CI runner efficiency by clearing space and caching Hugging Face models. See #285.

Other

  • Miscellaneous additions: Various improvements and additions. See #273.

  • Gitignore updates: Added lightning_logs to gitignore to prevent accidental commits. See #275.

New Contributors


Full Changelog: v0.0.22...v0.0.23

v0.0.22

06 Nov 18:17
f49c5e0

Choose a tag to compare

Documentation

  • Windows main guard note: Added documentation note on using __main__ guard for Windows users to ensure proper script execution. Thanks to @Rafipilot for the contribution! See #250.

Fixes

  • GPU support: Fixed GPU device mapping to use cuda:0 instead of gpu for better compatibility with PyTorch's device handling. See #252.

  • Chronos-2 batch unpacking: Fixed an issue where Chronos-2 model predictions weren't properly unpacked from batches, ensuring correct forecast output. See #253.

New Contributors


Full Changelog: AzulGarza/timecopilot@v0.0.21...v0.0.22

v0.0.21

28 Oct 00:31
1cf7bfd

Choose a tag to compare

Features

  • AWS's Chronos-2 foundational model: Chronos-2 has been added to the foundational models hub. Chronos-2 is a 120M parameter time series foundation model from AWS that provides state-of-the-art forecasting capabilities. You can now use Chronos-2 through the existing Chronos interface. Refer to #245 for more details.

    import pandas as pd
    from timecopilot.models.foundation.chronos import Chronos
    
    df = pd.read_csv(
        "https://timecopilot.s3.amazonaws.com/public/data/events_pageviews.csv",
        parse_dates=["ds"],
    )
    # Use Chronos-2
    model = Chronos(repo_id="s3://autogluon/chronos-2")
    fcst = model.forecast(df, h=12)
    print(fcst)

Full Changelog: AzulGarza/timecopilot@v0.0.20...v0.0.21

v0.0.20

09 Oct 03:47
2e41ab3

Choose a tag to compare

Features

  • IBM's FlowState foundational model: FlowState has been added to the foundational models hub. FlowState is the first time-scale adjustable Time Series Foundation Model (TSFM), combining a State Space Model (SSM) Encoder with a Functional Basis Decoder for time-scale invariant forecasting. Refer to #234 for more details.

    import pandas as pd
    from timecopilot.models.foundation.flowstate import FlowState
    
    df = pd.read_csv(
        "https://timecopilot.s3.amazonaws.com/public/data/events_pageviews.csv",
        parse_dates=["ds"],
    )
    # Use the commercial model
    model = FlowState(repo_id="ibm-granite/granite-timeseries-flowstate-r1")
    # Or use the research model
    # model = FlowState(repo_id="ibm-research/flowstate")
    fcst = model.forecast(df, h=12)
    print(fcst)

Fixes

  • TimesFM 2.5 integration: Fixed compatibility issues with TimesFM 2.5 that were introduced in recent updates. The implementation now properly handles the new API changes in TimesFM 2.5. See #235.

  • TimesFM loading from local path: Fixed an issue where TimesFM models couldn't be loaded from local file paths. The model loading mechanism has been updated to properly handle both local and remote model sources. Thanks to @KilianZimmerer for the contribution! See #230.

New Contributors


Full Changelog: AzulGarza/timecopilot@v0.0.19...v0.0.20

v0.0.19

22 Sep 23:52
31609ef

Choose a tag to compare

Features

  • Google's TimesFM 2.5 foundational model: TimesFM 2.5 has been added to the foundational models hub. Refer to #224 for more details.

    import pandas as pd
    from timecopilot.models.foundation.timesfm import TimesFM
    
    df = pd.read_csv(
        "https://timecopilot.s3.amazonaws.com/public/data/events_pageviews.csv",
        parse_dates=["ds"],
    )
    model = TimesFM(repo_id="google/timesfm-2.5-200m-pytorch")
    fcst = model.forecast(df, h=12)
    print(fcst)
  • Improved agent prompt: Enhanced the agent prompt for better performance and accuracy. See #218.

Fixes

  • Correct pydantic-ai library: Fixed the pydantic-ai library dependency to ensure proper functionality. See #221.

  • TimesFM quantiles: Fixed quantile handling for TimesFM models to ensure correct probabilistic forecasts. See #225.

Documentation

  • Time series foundation models comparison example: Added comprehensive example on how to compare time series foundational models. See #227.

  • Revamped static site: Major improvements to the static documentation site with better design and navigation. See #226.

Infrastructure

  • Documentation tests across Python versions: Added testing for documentation examples across multiple Python versions to ensure compatibility. See #220.

  • S3 URL standardization: Updated to use S3 URLs instead of URIs for better consistency. See #222.


Full Changelog: AzulGarza/timecopilot@v0.0.18...v0.0.19

v0.0.18

09 Sep 03:38
13fd195

Choose a tag to compare

Features

  • Anomaly Detection Capabilities: Added comprehensive anomaly detection functionality to the forecaster, enabling identification of outliers and unusual patterns in time series data. See #213.

    import pandas as pd
    from timecopilot import TimeCopilotForecaster
    from timecopilot.models.stats import SeasonalNaive, Theta
    from timecopilot.models.foundation.chronos import Chronos
    
    # Load your time series data
    df = pd.read_csv(
        "s3://timecopilot/public/data/taylor_swift_pageviews.csv",
        parse_dates=["ds"],
    )
    
    # Create forecaster with multiple models
    tcf = TimeCopilotForecaster(
        models=[
            Chronos(repo_id="amazon/chronos-bolt-mini"),
            SeasonalNaive(),
            Theta(),
        ]
    )
    
    # Detect anomalies with 95% confidence level
    anomalies_df = tcf.detect_anomalies(df=df, h=7, level=95)
    
    # Visualize the results
    tcf.plot(df, anomalies_df)
  • fev Experiments: Added new fev experiments to expand the evaluation results. See #211.

  • Chat-like CLI Capabilities: Introduced an interactive, conversational CLI interface that enables natural language interaction with TimeCopilot. The CLI now supports seamless model switching, anomaly detection integration, and real-time plotting capabilities. See #215.

    # Start the interactive CLI
    uv run timecopilot
    
    # Natural conversation examples:
    > "forecast the next 12 months"
    > "now try this with Chronos"
    > "highlight anomalies in this series"
    > "show me the plot"
    > "explain the results"

Fixes

  • GIFT-Eval Import Corrections: Fixed import statements after refactoring in the GIFT-Eval experiment to ensure proper functionality. See #209.

  • Documentation Link Updates: Corrected links throughout the documentation after the recent refactoring to maintain proper navigation. See #210.

Documentation

  • README Improvements: Enhanced README.md with updated information and improved clarity. See #207.

Full Changelog: AzulGarza/timecopilot@v0.0.17...v0.0.18