diff --git a/README.md b/README.md index 8b3f17e..29f48aa 100644 --- a/README.md +++ b/README.md @@ -143,11 +143,11 @@ Some models require specific Python versions (e.g. FlowState 3.11-3.13, TabPFN & ## News -Recent additions and checkpoints (newest first). See the [changelog](https://github.com/TimeCopilot/foundationforecast/blob/main/docs/changelogs/v0.1.16.md) for full release notes. +Recent additions and checkpoints (newest first). See the [changelog](https://github.com/TimeCopilot/foundationforecast/blob/main/docs/changelogs/v0.1.17.md) for full release notes. | When | What | Checkpoint / detail | |------|------|---------------------| -| Oct 2026 | [**Tabby**](https://huggingface.co/paris-noah/Tabby) | `paris-noah/Tabby` — 99 native quantiles; `trust_remote_code`; CC-BY-NC-4.0 | +| Oct 2026 | [**Tabby**](https://huggingface.co/paris-noah/Tabby) | `paris-noah/Tabby` — 99 native quantiles; `trust_remote_code`; CC-BY-NC-4.0; GIFT-Eval CI ([v0.1.17](https://github.com/TimeCopilot/foundationforecast/blob/main/docs/changelogs/v0.1.17.md)) | | Oct 2026 | [**TimeH2O**](https://huggingface.co/h2oai/timeh2o-v1) | `h2oai/timeh2o-v1`, `h2oai/timeh2o-v1-tiny` — requires `h2ofm>=0.43.0` (Python 3.12+); native `X_df`; GIFT-Eval and fev-bench CI ([v0.1.16](https://github.com/TimeCopilot/foundationforecast/blob/main/docs/changelogs/v0.1.16.md)) | | Oct 2026 | [**Timestral**](https://huggingface.co/collections/mistralai/timestral) | `mistralai/Timestral-{5M,28M,123M,209M}` — requires `timecopilot-timestral>=0.1.0`; native `X_df`; GIFT-Eval and fev-bench CI ([v0.1.15](https://github.com/TimeCopilot/foundationforecast/blob/main/docs/changelogs/v0.1.15.md)) | | Oct 2026 | [**T0 gamma**](https://huggingface.co/theforecastingcompany/t0-gamma) | `theforecastingcompany/t0-gamma` — requires `tfc-t0[torch]>=0.6.0`; GIFT-Eval and fev-bench CI ([v0.1.14](https://github.com/TimeCopilot/foundationforecast/blob/main/docs/changelogs/v0.1.14.md)) | diff --git a/docs/changelogs/index.md b/docs/changelogs/index.md index bbc4ca6..490d2a1 100644 --- a/docs/changelogs/index.md +++ b/docs/changelogs/index.md @@ -2,6 +2,7 @@ Welcome to the FoundationForecast Changelog. Here you will find a list of changes, updates, and improvements for each release. Explore the details of each version below. +- [v0.1.17](v0.1.17.md) - [v0.1.16](v0.1.16.md) - [v0.1.15](v0.1.15.md) - [v0.1.14](v0.1.14.md) diff --git a/docs/changelogs/v0.1.17.md b/docs/changelogs/v0.1.17.md new file mode 100644 index 0000000..0ce6b8c --- /dev/null +++ b/docs/changelogs/v0.1.17.md @@ -0,0 +1,17 @@ +### Features + +* **Tabby**: The [`Tabby`](https://docs.timecopilot.dev/foundationforecast/api/models/foundation/models/#foundationforecast.models.tabby.Tabby) wrapper supports Huawei Paris Noah's Ark Lab's [`paris-noah/Tabby`](https://huggingface.co/paris-noah/Tabby) ([arXiv:2609.13956](https://arxiv.org/abs/2609.13956)), a ~147M prompted patch transformer that emits 99 native quantiles (0.01–0.99) from up to 8,192 observations. The wrapper follows the published inference path: 8,096-step context, `context_mask` and `past_is_pad` passed to the forward, and a `precision` option (`"bf16"` autocast on CUDA by default, `"fp32"` to disable it). The checkpoint loads with `trust_remote_code` and is released under CC BY-NC 4.0. See [#76](https://github.com/TimeCopilot/foundationforecast/pull/76). + +### Tests + +* **Tabby**: Mocked tests for quantile mapping, context truncation and precision handling, a live test on `paris-noah/Tabby`, and cross-model contract coverage through `tests/models/conftest.py`. See [#76](https://github.com/TimeCopilot/foundationforecast/pull/76). +* **GIFT-Eval replication**: `paris-noah--Tabby` is registered against the official `results/Tabby` entry (MASE 0.688, CRPS 0.4758), with the `m4_weekly/short` subset added to CI. The leaderboard flags that entry `testdata_leakage: Yes` because the prompt was tuned on GIFT-Eval training tasks; the harness verifies the wrapper reproduces the official numbers regardless of that flag. There is no fev-bench entry, since Tabby is univariate and has no official result there. See [#76](https://github.com/TimeCopilot/foundationforecast/pull/76). + +### Documentation + +* **Tabby family notebook**: [`tabby-family` example notebook](../examples/tabby-family.ipynb) cross-validates Tabby with its published settings on event pageviews, with prediction intervals and executed outputs. See [#76](https://github.com/TimeCopilot/foundationforecast/pull/76). +* **Model hub and README**: Document the Tabby checkpoint, `precision` option, CC BY-NC 4.0 license and `trust_remote_code` requirement; add Tabby to the supported-models table with the Huawei Noah's Ark Lab logo. + +--- + +**Full Changelog**: https://github.com/TimeCopilot/foundationforecast/compare/v0.1.16...v0.1.17 diff --git a/experiments/fev-bench/uv.lock b/experiments/fev-bench/uv.lock index 5f85919..f76ba72 100644 --- a/experiments/fev-bench/uv.lock +++ b/experiments/fev-bench/uv.lock @@ -1144,7 +1144,7 @@ wheels = [ [[package]] name = "foundationforecast" -version = "0.1.16" +version = "0.1.17" source = { editable = "../../" } dependencies = [ { name = "gluonts", extra = ["torch"] }, diff --git a/experiments/gift-eval/uv.lock b/experiments/gift-eval/uv.lock index 9983f66..688e70f 100644 --- a/experiments/gift-eval/uv.lock +++ b/experiments/gift-eval/uv.lock @@ -1236,7 +1236,7 @@ wheels = [ [[package]] name = "foundationforecast" -version = "0.1.16" +version = "0.1.17" source = { editable = "../../" } dependencies = [ { name = "gluonts", extra = ["torch"] }, diff --git a/mkdocs.yml b/mkdocs.yml index 5fbf037..0d48a12 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -51,6 +51,7 @@ nav: - Contributing: contributing.md - Changelogs: - changelogs/index.md + - changelogs/v0.1.17.md - changelogs/v0.1.16.md - changelogs/v0.1.15.md - changelogs/v0.1.14.md diff --git a/pyproject.toml b/pyproject.toml index 27e80eb..ec95882 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -75,7 +75,7 @@ license = "Apache-2.0" name = "foundationforecast" readme = "README.md" requires-python = ">=3.10" -version = "0.1.16" +version = "0.1.17" [project.optional-dependencies] plot = [ diff --git a/uv.lock b/uv.lock index 6462aff..04b0368 100644 --- a/uv.lock +++ b/uv.lock @@ -1425,7 +1425,7 @@ wheels = [ [[package]] name = "foundationforecast" -version = "0.1.16" +version = "0.1.17" source = { editable = "." } dependencies = [ { name = "gluonts", extra = ["torch"] },