alt.freeweights.granite / granite-timeseries-tspulse-r1
From: ibm-granite <huggingface.co/ibm-granite>Newsgroups: alt.freeweights.graniteSubject:

granite-timeseries-tspulse-r1

Date: 2026-11-14Commit: 2e64fcdSigned: 2DC28CC7B26A283B ✓

Model with 1M parameters. Safetensors weights, 4.68 MB in all. Published by ibm-granite under Apache-2.0.

1M params4.68MBgranite-timeseries-tspulse-r1safetensorspermissive
FactsParams1MSize4.68 MBFormatssafetensorsTasknot taggedLicenseApache-2.0From sourcepermissive
$ fw get ibm-granite/granite-timeseries-tspulse-r1
# manifest sha256 dd70e69a1bec… · 4.68 MB · 5 files
$ fw verify ./granite-timeseries-tspulse-r1 ibm-granite/granite-timeseries-tspulse-r1
From sourceHosted (signed)ibm-granite/granite-timeseries-tspulse-r1Last check: 2026-11-14 21:16 UTC

Get help: custom fine-tune or private deploy. We review your setup before we quote.

Works with

Runs with

Ranked by fit to this model (safetensors), then by GitHub stars.

Overview

Size
4.68 MB
Weights
4.37 MB (safetensors)
Parameters
1M
Formats
safetensors
Task
not tagged
License
Apache-2.0 (permissive)
Files
5, each with a sha256
Publisher
ibm-granite
Added
2026-11-14
Section
alt.freeweights.granite
Lineage

Original release from the publisher.

Where these bytes come from
Publisher at the pinned commit→You

Sources are tried in order. A file counts only when its size and sha256 match the manifest. Sources are checked when you ask for them, not on a timer.

Sources
BadgeHostLast checkResult
From sourcehuggingface.co2026-11-14 21:16 UTCpassed

Model card

From the publisher at commit 2e64fcd. Shown as plain text with links; images open at the publisher.

Granite-TimeSeries-TSPulse-R1 Model Card#

Image: image

🚀 Update (Mar 2026): TSPulse has been accepted at ICLR 2026.

TSPulse models are ultra-compact pre-trained models for time-series data, featuring just 1M parameters and supporting GPU-free inference. Designed for versatility, TSPulse excels across a wide range of tasks including classification, anomaly detection (AD), imputation, and similarity search.

At the architecture level, TSPulse introduces a novel dual-space masked reconstruction strategy that learns jointly from both time and frequency domains —- capturing complementary patterns in a unified embedding space. This is coupled with a dual-embedding disentanglement mechanism that produces both fine-grained embeddings for detailed analysis and semantic embeddings for broader understanding. These semantic embeddings are inherently robust to variations in time, magnitude, and noise, making them ideal for time-series retrieval.

At the task level, TSPulse integrates several innovations:

  • TSLens: A fine-tuning module for task-aware feature extraction.
  • Multi-head triangulation: Fuses outputs from multiple prediction streams to enhance anomaly detection robustness.
  • Hybrid masking: Reduces bias during pre-training, improving zero-shot imputation.

Highlights#

TSPulse demonstrates significant improvements on several benchmarks:

  • +5–16% on UEA classification benchmarks
  • +20% on the TSB-AD benchmark for anomaly detection (rank #1 in both univariate and multivariate)
  • +50% in zero-shot imputation
  • +25% in semantic similarity search

Despite being 10–100× smaller than competing models, TSPulse sets a new standard in efficient time-series foundation modeling—combining strong out-of-the-box performance, minimal compute requirements, and rapid adaptability to downstream tasks.

Model Specialization#

Inspired by the success of small, task-specialized pre-trained models in the language/vision domain which achieve strong performance through minimal task-specific adaptations —- we extend this strategy to time-series. Since TSPulse offers multiple heads we specialize the pre-training for every task through reweighting loss objectives to prioritize heads most relevant to the target task. This enables TSPulse to refine task-specific representations while maintaining its lightweight design, facilitating efficient transfer learning across any datasets for the specified downstream task.

🎯 Specialized TSPulse Variants#

We release three pre-trained variants optimized for specific time-series tasks.

  • tspulse-hybrid-allhead-512-p8-r1 🔹 Recommended for: Anomaly Detection 🔹 Branch: main
  • tspulse-hybrid-dualhead-512-p8-r1 🔹 Recommended for: Imputation and Search 🔹 Branch: tspulse-hybrid-dualhead-512-p8-r1
  • tspulse-block-dualhead-512-p16-r1 🔹 Recommended for: Classification 🔹 Branch: tspulse-block-dualhead-512-p16-r1

To load a specific variant, use the revision argument in the from_pretrained call as illustrated below:

Example#

from tsfm_public.models.tspulse import TSPulseForReconstruction

# ✅ For Imputation and Semantic Search
model = TSPulseForReconstruction.from_pretrained(
    "ibm-granite/granite-timeseries-tspulse-r1",
    revision="tspulse-hybrid-dualhead-512-p8-r1"
)

# ✅ For Anomaly Detection
model = TSPulseForReconstruction.from_pretrained(
    "ibm-granite/granite-timeseries-tspulse-r1",
    revision="main"
)

# ✅ For Classification
from tsfm_public.models.tspulse import TSPulseForClassification

model = TSPulseForClassification.from_pretrained(
    "ibm-granite/granite-timeseries-tspulse-r1",
    revision="tspulse-block-dualhead-512-p16-r1"
)
🧩 Model Naming Convention#

Each model name follows this format: tspulse-<mask_type>-<head_type>-<context_length>-p<patch_length>-r<release_number>

  • mask_type: Type of masking used during pre-training → hybrid or block
  • head_type: Prediction heads enabled during pre-training → allhead = all heads enabled → dualhead = time and prob heads enabled
  • context_length: Base Context length of the model → e.g., 512
  • patch_length: Length of time-series patches used during training → e.g., p8 or p16
  • release_number: Model release version → e.g., r1
Example recipes and notebooks#
Usage guidelines#

The model is trained with a base context length of 512. Different tasks have varying minimum input length requirements:

  • Anomaly Detection (AD): Requires time-series of at least 3–4× the base context length (i.e., ~1536–2048 points) to ensure stable and robust anomaly detection.
  • Imputation & Semantic Search: Require a minimum of 512 points to align with the model's context window and enable meaningful processing.
  • Classification: Supports any input length. Internally, the model resamples or interpolates the input to a fixed length of 512 before inference.

Benchmarks#

Benchmarking scripts to reproduce paper results will be added soon. Stay tuned!

Training Data#

TSpulse r1 was trained on a collection of datasets as follows:

Citation#

Please cite the following paper if you intend to use our model or its associated architectures/approaches in your work.

BibTeX:

@misc{ekambaram2025tspulsedualspacetiny,
      title={TSPulse: Dual Space Tiny Pre-Trained Models for Rapid Time-Series Analysis}, 
      author={Vijay Ekambaram and Subodh Kumar and Arindam Jati and Sumanta Mukherjee and Tomoya Sakai and Pankaj Dayama and Wesley M. Gifford and Jayant Kalagnanam},
      year={2025},
      eprint={2505.13033},
      archivePrefix={arXiv},
      primaryClass={cs.LG},
      url={https://arxiv.org/abs/2505.13033}, 
}

Model Card Authors#

Vijay Ekambaram, Subodh Kumar, Arindam Jati, Sumanta Mukherjee, Tomoya Sakai, Pankaj Dayama, Wesley M. Gifford, and Jayant Kalagnanam

IBM Public Repository Disclosure#

All content in this repository including code has been provided by IBM under the associated open source software license and IBM is under no obligation to provide enhancements, updates, or support. IBM developers produced this code as an open source project (not as an IBM product), and IBM makes no assertions as to the level of quality nor security, and will not be maintaining this code going forward.

Files

5 files · 4.68 MBWeights 4.37 MB (safetensors). Sizes and sha256 from the signed manifest.
Hide all 5 files with their sha256
FileSizesha256
.gitattributes1.58 KBfa3834e9d52fbd099a3c910725830325ffbcf8641f3cc6f9294e3e9dd12ae6a7
README.md9.25 KB4b15eb7c6be130556a7023f5706a18146965a8a48163b358bf489e8c955fe83d
config.json3.52 KBe33230f47c91dfe4e848ee743924a62a26f710fe7f194566d92835f27c1c6d8b
model.safetensors4.37 MB57fa03b67d1473a7253ac37801b24c391d1fa931395db986743e2f59e556b9ac
tspulse_overview.webp295 KB2cfc0774815e88c19dd4f87328c1a5958b2106b861f57a8d89a3765b2b9715f0
VersionsEach time the pinned upstream commit or file list changed in this repo. Newest first.
Upstream commitDateContents
2e64fcdc2a pinned now manifest updated, same commit2026-11-14 21:16 UTC5 files · 4.68 MB
2e64fcdc2a2026-11-14 21:16 UTC5 files · 4.68 MB

Use it

$ fw get ibm-granite/granite-timeseries-tspulse-r1
# manifest sha256 dd70e69a1bec… · 4.68 MB · 5 files
$ fw verify ./granite-timeseries-tspulse-r1 ibm-granite/granite-timeseries-tspulse-r1
fw.pyChecks the signature and every sha256, tries each source in order, resumes.
$ python3 fw.py get https://freeweights.allternit.com/manifests/ibm-granite/granite-timeseries-tspulse-r1.json --dir ./granite-timeseries-tspulse-r1 $ python3 fw.py verify ./granite-timeseries-tspulse-r1 ./ibm-granite__granite-timeseries-tspulse-r1.json
hfThe Hugging Face CLI with one setting. Same repo id.
$ HF_ENDPOINT=https://freeweights.allternit.com hf download ibm-granite/granite-timeseries-tspulse-r1 --revision 2e64fcdc2a06d3565dfadaf0065c0ab5055f80f2 --local-dir ./granite-timeseries-tspulse-r1

License

Name
Apache License 2.0
Id
Apache-2.0
Class
Permissive
Redistribution
yes
Listing
Hosted (signed)
Decided
License as declared by the publisher. No person read it. 2026-11-14
Text in
README.md
Text sha256
4b15eb7c6be130556a7023f5706a18146965a8a48163b358bf489e8c955fe83d
Terms gate
No extra terms beyond the license.

Read the license text

Licenses are checked against the license table. A custom license passes only after a person reads it.

Provenance

From: ibm-granite <huggingface.co/ibm-granite>Newsgroups: alt.freeweights.graniteSubject: granite-timeseries-tspulse-r1Date: 2026-11-14Commit: 2e64fcdSigned: 2DC28CC7B26A283B ✓
Upstream
ibm-granite/granite-timeseries-tspulse-r1
Pinned commit
2e64fcdc2a06d3565dfadaf0065c0ab5055f80f2
Manifest
granite-timeseries-tspulse-r1.json · .minisig
Manifest sha256
dd70e69a1bec96a98c6f6edcda85584b5bad960d7c7e5bca6f2a0f5e57b29df5
Signature
minisign, Ed25519, key 2DC28CC7B26A283B
Created
2026-11-14 21:16 UTC
Generator
freeweights-manifest/0.1.0
Takedowns
None.

How to verify

$ curl -O https://freeweights.allternit.com/manifests/ibm-granite/granite-timeseries-tspulse-r1.json $ curl -O https://freeweights.allternit.com/manifests/ibm-granite/granite-timeseries-tspulse-r1.json.minisig $ minisign -Vm granite-timeseries-tspulse-r1.json -P RWQ7KGqyx4zCLXtUFOqvfv8L3g+8fpKJ1FsuxPyOYMF+4KufbUxKq1Oq $ shasum -a 256 <file> # compare with the Files tab

A manifest whose signature fails must be rejected. A file whose size or sha256 does not match must be discarded. Verify a download

Model tree

No related models in this catalog.Nothing here lists this model as its parent, and it names no parent.
Get it
Download
$ HF_ENDPOINT=https://freeweights.allternit.com hf download ibm-granite/granite-timeseries-tspulse-r1
Open in Freeweights Studio

Pull, verify and run it in the Allternit app on Desktop, web or phone.

Signed manifest
minisign, key 2DC28CC7B26A283B. granite-timeseries-tspulse-r1.json. Provenance. Takedown history: none.
From: ibm-granite <huggingface.co/ibm-granite>Subject: GneissWeb.7B_ablation_model_on_350B_FineWeb.Edu.seed1
From: ibm-granite <huggingface.co/ibm-granite>Subject: GneissWeb.7B_ablation_model_on_350B_FineWeb.Edu.seed2
From: ibm-granite <huggingface.co/ibm-granite>Subject: GneissWeb.7B_ablation_model_on_350B_FineWeb.Edu.seed3
From: ibm-granite <huggingface.co/ibm-granite>Subject: GneissWeb.7B_ablation_model_on_350B_FineWeb.seed1
From: ibm-granite <huggingface.co/ibm-granite>Subject: GneissWeb.7B_ablation_model_on_350B_FineWeb.seed2
From: ibm-granite <huggingface.co/ibm-granite>Subject: GneissWeb.7B_ablation_model_on_350B_FineWeb.seed3