Senior Data Scientist at Kuehne+Nagel in Hamburg.
7+ years building ML & LLM solutions for pricing and forecasting.
M.Sc. Data Science, Pisa|Cargonexx → FREE NOW → Kuehne+Nagel
www.aromano.dev
Agenda
1Time Series Is Everywhere
2How We Do Time Series Today
3The Transformer Revolution
4Foundation Models for Time Series
5Live Demo — ARIMA vs Chronos vs TimesFM
6Challenges & When to Use
7Takeaways & Q&A
Time Series Is Everywhere
You already work with time series
Any measurement recorded over time is a time series. They show up in virtually every industry:
If your data has a timestamp column, you're doing time series analysis — whether you call it that or not.
What do we do with them?
Four core tasks show up again and again across domains:
Forecasting — predict future values (e.g. next week's energy demand, next quarter's revenue)
Anomaly detection — spot outliers in real time (e.g. fraud, equipment failure, network intrusion)
Classification — label a pattern (e.g. is this ECG normal or arrhythmic? is this sensor vibration a bearing fault?)
Imputation — fill in missing data (e.g. sensor went offline for 2 hours, reconstruct what happened)
Today, each of these tasks — for each dataset — requires building and training a separate model from scratch. That's about to change.
Key properties of time series
Before modelling, you need to understand the structure of your data.
Anatomy of a time series
Original = Trend × Seasonality × Residuals (multiplicative decomposition)
How We Do It Today
50 years of progress — and the same pain points
The evolution of time series modeling
Classical: ARIMA & friends
The workhorse of statistical forecasting since the 1970s. Models time series as three combined components:
AR AutoRegressive Future depends on its own past values
I Integrated (Differencing) Remove trends to make data stationary
MA Moving Average Correct using past forecast errors
Strengths: interpretable coefficients, fast to fit, well-understood theory, works great for simple stationary data with clear seasonality
Limitations: assumes stationarity, needs domain knowledge (season_length, log transforms), struggles with non-linearity, can't transfer across datasets
Machine Learning & Deep Learning eras
The real pain across all these approaches
Every new dataset = train a new model from scratch
Whether you use ARIMA, XGBoost, or LSTMs, the workflow is the same: collect data, engineer features, select a model, tune hyperparameters, train, evaluate, deploy. Then a new site, a new region, or a new metric comes along — and you repeat the entire process.
The Transformer Revolution
The architecture behind ChatGPT — and now, time series
2017: "Attention Is All You Need"
Core idea: self-attention — every position looks at all other positions at once.
RNN: sequential
Transformer: all at once
Under the hood: from text to predictions
An LLM processes text through a pipeline. Let's trace "The cat sat on the ___":
The surprising power of next-token prediction
To predict the next word well, the model must learn about the world:
"The capital of France is ___"
→
Requires geography
"If x = 3 and y = 7, then x + y = ___"
→
Requires arithmetic
"def fibonacci(n):___"
→
Requires coding
"She smiled but her eyes looked ___"
→
Requires emotional reasoning
The insight: "Predict the next token" sounds trivial. But at scale, it forces the model to build an internal representation of grammar, facts, logic, and common sense — as a side effect of getting better at prediction.
This is the "foundation model" paradigm: train once on a massive general objective, then apply to specific tasks. Can we do the same for time series?
Foundation Models for Time Series
The concept, the architecture, and the players
The two-stage paradigm
The same idea behind LLMs, applied to time series: learn general patterns first, then choose your path.
"Foundation-al" = one model, many tasks
But how do you feed a time series to a transformer?
Transformers were built for text — sequences of discrete words. Time series are continuous signals with no natural token boundaries.
The key insight
Chronos: Tokenization & Embedding
Bin continuous values into discrete tokens — then each token is looked up in a learned embedding table, exactly like word embeddings in GPT.
The embedding captures meaning
A learned embedding is a map of meaning: tokens that mean similar things sit close together — words in GPT, numbers in Chronos.
TimesFM: Patching
Group 32 consecutive values into "patches" — like reading word-by-word instead of letter-by-letter. Each patch captures local patterns; attention connects them globally. Same idea as Vision Transformers (ViT).
The paradigm shift
Same backbone, different heads
The main players
All released in 2023–2024. The field went from zero to a dozen competitive models in under two years:
Model
By
Architecture
Key Feature
Open?
Chronos
Amazon
Adapted T5/GPT-2
Tokenizes values into bins; probabilistic
Yes
TimesFM
Google
Decoder-only
Patch-based; strong zero-shot
Yes
MOMENT
CMU
Encoder-only
"Time Series Pile" pre-training
Yes
Moirai
Salesforce
Encoder
Multivariate; handles covariates
Yes
Timer
Tsinghua
Decoder-only
Unified S3 format; up to 1B time points
Yes
TimeGPT
Nixtla
Enc-Decoder
First commercial TSFM; simple API
No (API)
Tiny Time Mixers
IBM
Non-Transformer
Ultra-lightweight (1M params)
Yes
Lag-Llama
ServiceNow
Decoder (LLaMA)
Probabilistic; lagged features
Yes
Most available via HuggingFace. Chronos has ~10M downloads/month and is the most popular. TimeGPT (Nixtla) is the main API/SaaS option — simplest to use, but closed-source. For multivariate needs: Moirai, Timer-XL, Tiny Time Mixers.
Live Demo
AutoARIMA vs. Chronos vs. TimesFM
What we'll compare
Three fundamentally different approaches to the same forecasting problem, running on the same data, on a laptop CPU:
Approach
Lines of Code
Training?
Domain Knowledge?
AutoARIMA
~4
Yes (fit on data)
season_length=12
Chronos
~3
No (zero-shot)
None
TimesFM
~5
No (zero-shot)
None
The foundation models download pre-trained weights from HuggingFace (~185MB for Chronos, ~800MB for TimesFM) and run inference immediately. No training loop, no hyperparameter search.
Datasets
We test on two very different datasets to see how well the models generalize:
"The easy test" — clean, well-behaved, universally known
ETTh1
14,400 hourly observations (2016-2018) Oil temperature from an electricity transformer in China. Noisy, irregular, real-world sensor data Forecast: 168 hours (1 week) ahead
"The hard test" — messy, non-stationary, real-world
Key: same model instances, same code, no changes between datasets.
The code: side by side
AutoARIMASpecify freq, season, params
from statsforecast import StatsForecast
from statsforecast.models import AutoARIMA
sf = StatsForecast(models=[AutoARIMA(season_length=12)], freq='MS')
arima_fc = sf.forecast(df=df_train, h=24)