Part V: Foundation Models and Agentic Sensing
Chapter 19: Time-Series Foundation Models

Model families: TimesFM, Chronos/Chronos-Bolt, Moirai/Moirai-MoE, MOMENT, Time-MoE, TTM/TinyTimeMixers, Lag-Llama, Toto, UniTS, Timer

"Ten models, three good ideas, and a great deal of marketing. My job is to tell which is which before I commit a GPU to it."

A Discriminating AI Agent

The Big Picture

By late 2024 the time-series foundation model (TSFM) landscape had gone from one or two research prototypes to a crowded zoo of released checkpoints, each with a paper, a benchmark table showing it winning, and a HuggingFace card. For a practitioner building on real sensors, memorizing ten names is useless. What matters is the small set of design axes that actually change behavior: how the model tokenizes a signal, whether it emits a point, a distribution, or a sampled trajectory, whether it treats channels jointly or one at a time, and how big and how sparse it is. This section is a field guide. We place each family on those axes, explain the tradeoff each design choice buys, and give you the discrimination skill to pick a checkpoint for a wearable, a factory line, or a telemetry pipeline without believing every leaderboard.

This section assumes you have read Section 19.1 on what qualifies a model as "foundational" and Section 19.2 on patching versus value tokenization; those two ideas are the axes we lean on hardest here. The transformer and state-space backbones underneath these models come from Chapter 15 and Chapter 16, and the probabilistic-output vocabulary (quantiles, calibration) comes from Chapter 18. If any of those are unfamiliar, skim them first.

The five axes that actually separate the families

Before the names, fix the coordinate system. Every model in the title differs along at most five choices, and once you know a model's coordinates you can predict its strengths.

Decoder-only forecasters: TimesFM, Time-MoE, Timer, Toto, Lag-Llama

TimesFM (Google, 200M and 500M) is the reference decoder-only patched forecaster: input patches of length 32, output patches that can be longer than input patches so a single forward pass covers a long horizon, trained on Google Trends, Wikipedia pageviews, and synthetic series. It began as a point forecaster and later added quantile heads. It is the model to reach for when you want strong univariate zero-shot forecasting with a well-maintained checkpoint.

Time-MoE pushes the same decoder-only recipe to billion-parameter scale but keeps inference cheap by activating only a few experts per token; it is pretrained on the Time-300B corpus. Timer (Tsinghua) is a GPT-style generative pretrainer that casts forecasting, imputation, and anomaly detection into one "single-series sequence" format so one autoregressive model serves several tasks. Toto (Datadog) is a decoder-only model tuned for the observability world, pretrained on an enormous internal telemetry corpus and released alongside the BOOM benchmark of real infrastructure metrics; it is the natural pick when your "sensors" are server and network counters. Lag-Llama is the important early probabilistic univariate model: it feeds lagged values plus date features into a LLaMA-style decoder and emits a Student-t distribution, giving calibrated predictive intervals rather than a bare point.

Key Insight

The output head, not the backbone, decides whether a forecast is trustworthy on a safety-relevant sensor. Chronos samples full trajectories, Lag-Llama and Moirai emit parametric distributions, TimesFM offers quantiles; a point-only model gives you a number with no honest spread. On a battery or a bearing you almost always want the distribution, then recalibrate it with the conformal wrapper from Chapter 18, because zero-shot intervals are frequently over-confident on out-of-corpus signals.

Value-tokenized and any-variate families: Chronos, Chronos-Bolt, Moirai, Moirai-MoE

Chronos (Amazon) took the boldest shortcut: scale a series, quantize each value into one of a few thousand bins, and train an off-the-shelf T5 language model to predict the next token. Forecasting becomes literal language modeling, and uncertainty comes from sampling many token trajectories. It is elegant and strong, but sampling is slow. Chronos-Bolt fixes that by switching to patch-based direct multi-step decoding, dropping autoregressive sampling; it runs on the order of hundreds of times faster and often more accurately, which is why Bolt, not the original, is what you should deploy.

Moirai (Salesforce) is the flagship any-variate masked-encoder model: a flattened multi-channel input, "any-variate attention" that generalizes across an arbitrary number of correlated channels, multiple patch-size projections for different sampling rates, and a mixture-distribution output. It is pretrained on LOTSA, the large open time-series archive discussed in Section 19.6. Moirai-MoE replaces the hand-designed multi-patch projections with token-level sparse experts, letting the model route different frequency regimes to different experts and matching or beating the dense version with fewer active parameters. When your rig streams many correlated channels (a six-axis IMU, a multi-thermocouple furnace), an any-variate model is structurally the right choice.

General-purpose and tiny families: MOMENT, UniTS, TTM/TinyTimeMixers

MOMENT (CMU) is the encoder-only, masked-reconstruction generalist: pretrained on the Time-Series Pile, it produces embeddings you attach lightweight heads to for forecasting, classification, imputation, or anomaly detection. It is less a forecaster and more a feature extractor, the subject of Section 19.5. UniTS shares that multi-task spirit but bakes task tokens into a single unified network so one set of weights serves forecasting and classification without swapping heads.

TTM / TinyTimeMixers (IBM, granite-tsfm) is the outlier that matters most for edge deployment. Instead of a transformer it uses a lightweight TSMixer (MLP-Mixer) backbone at roughly one to five million parameters, small enough to run zero-shot forecasting on a CPU in milliseconds. It concedes some accuracy on the hardest series but wins decisively on cost, and it is the honest counter-example to the assumption that a foundation model must be huge.

Practical Example: three checkpoints, one furnace

An industrial team monitoring a glass-annealing furnace (see Chapter 37) needs 30-minute-ahead temperature forecasts across twelve correlated thermocouples, with intervals, and inference on a factory edge box with no GPU. They test three families. Moirai gives the best any-variate accuracy because it models cross-thermocouple coupling, but needs a GPU. Chronos-Bolt is close and fast but treats each channel independently, so it misses a coordinated drift when one zone's heater fails. TTM runs on the box's CPU in under 20 ms per channel and, wrapped in a conformal calibrator, delivers intervals good enough to alarm on. They ship TTM for the real-time alarm and run Moirai nightly as a batch cross-check. Coordinates, not leaderboards, made the call.

Loading two families zero-shot

The point of a foundation model is that "training" collapses to a download. The snippet below loads a fast value-tokenized forecaster (Chronos-Bolt) and a tiny mixer (TTM) and forecasts the same context, so you can compare a heavyweight and a featherweight on your own sensor in a dozen lines.

import numpy as np, torch
from chronos import BaseChronosPipeline           # pip install chronos-forecasting
from tsfm_public import get_model                 # pip install granite-tsfm (IBM TTM)

context = torch.tensor(np.load("furnace_zone3.npy"), dtype=torch.float32)  # past values
H = 48                                            # 48-step (30 min) horizon

# Chronos-Bolt: patch-based direct decoding, quantile output, no sampling
bolt = BaseChronosPipeline.from_pretrained("amazon/chronos-bolt-small",
                                           device_map="cpu", torch_dtype=torch.float32)
q, mean = bolt.predict_quantiles(context=context, prediction_length=H,
                                 quantile_levels=[0.1, 0.5, 0.9])
lo, med, hi = q[0, :, 0], q[0, :, 1], q[0, :, 2]  # 10/50/90 percentile bands

# TinyTimeMixer: ~1M params, CPU-friendly zero-shot
ttm = get_model("ibm-granite/granite-timeseries-ttm-r2",
                context_length=512, prediction_length=H)
ttm.eval()
with torch.no_grad():
    ttm_pred = ttm(context.reshape(1, -1, 1)).prediction_outputs.squeeze()

print("Chronos-Bolt median[:3]:", med[:3].tolist())
print("TTM point forecast[:3] :", ttm_pred[:3].tolist())
Loading a value-tokenized forecaster (Chronos-Bolt) and a tiny MLP-Mixer (TTM) with pretrained weights and forecasting the same 48-step horizon on one channel. Chronos-Bolt returns quantile bands directly; TTM returns a fast point forecast you would wrap in a conformal calibrator for intervals. No gradient step is taken.

Library Shortcut

Writing a patched decoder-only forecaster, its scaler, its quantile head, and a pretraining loop from scratch is roughly 500 to 800 lines before you have a single usable checkpoint, and then you still need the pretraining corpus. The chronos-forecasting, granite-tsfm, uni2ts (Moirai), and momentfm packages collapse "instantiate architecture, load pretrained weights, scale, tokenize, decode, un-scale" into the two from_pretrained/get_model calls above. The library owns the tokenizer vocabulary, the instance normalization, the horizon rollout, and the checkpoint hosting; you own only the input tensor and the horizon. That is a 500-plus-line reduction to about a dozen lines per model.

Research Frontier

As of 2026 the active frontier is threefold. First, sparsity: Time-MoE and Moirai-MoE show that token-level experts beat dense models at equal active-parameter cost, and the open question is how far routing can specialize by frequency and domain. Second, any-variate at scale: modeling hundreds of heterogeneous channels with correct cross-channel attention, still Moirai's differentiator, remains unsolved for very wide sensor arrays. Third, domain-native corpora: Toto's telemetry-specific pretraining and its BOOM benchmark hint that general web-scraped corpora underperform on machine-generated signals, motivating the sensor-native foundation models of Chapter 20. Treat every leaderboard skeptically until you have read Section 19.6 on the evaluation crisis.

Exercise

Take a three-channel accelerometer recording from a wearable and forecast 2 seconds ahead with (a) Chronos-Bolt applied per channel, (b) Moirai applied any-variate across the three channels, and (c) TTM per channel on CPU. Report per-channel MASE, the 80% interval coverage after a conformal wrapper, and wall-clock latency. Which axis (tokenization, channel handling, or size) explains most of the accuracy gap, and which explains the latency gap? State the coordinate that would drive your deployment choice for a battery-powered device.

Self-Check

1. Why is Chronos-Bolt usually the version you deploy rather than the original Chronos, and what specific design change buys the speedup?

2. Two models are both "decoder-only forecasters," yet one gives calibrated intervals and the other a bare number. Which component differs, and which of the five axes is it?

3. Your rig streams twelve correlated channels and you suspect coordinated failures. Which axis should dominate your model choice, and which family exemplifies the right value on that axis?

What's Next

In Section 19.4, we put these checkpoints to work: how the same pretrained weights perform zero-shot and few-shot across forecasting, classification, imputation, and anomaly detection, why some tasks transfer far better than others, and how to run a fair, leakage-safe comparison against a task-specific baseline before you trust any of the numbers a model card advertises.