- TimesFM est un grand modèle préentraîné pour la prévision de séries temporelles développé par Google Research, utilisant une architecture de type décodeur seul
- La version la plus récente, 2.5, prend en charge 200 millions de paramètres, une longueur de contexte de 16k et des prédictions jusqu’à un horizon maximal de 1k
- Elle inclut diverses fonctionnalités comme la prévision continue par quantiles, les entrées de covariables (XReg) et des backends Flax et PyTorch
- Le modèle est publié via Hugging Face et peut aussi être utilisé grâce à son intégration dans BigQuery
- En tant que modèle de base généraliste pour la prévision de données de séries temporelles, il offre évolutivité et efficacité aussi bien pour la recherche que pour la pratique
Présentation de TimesFM
- TimesFM (Time Series Foundation Model) est un modèle préentraîné pour la prévision de séries temporelles développé par Google Research
- Il s’appuie sur l’article de l’ICML 2024 “A decoder-only foundation model for time-series forecasting”
- Les checkpoints du modèle sont fournis via la collection Hugging Face et sont aussi officiellement intégrés à BigQuery
- La version ouverte n’est pas un produit Google officiel
Versions du modèle et principales mises à jour
- La version la plus récente est TimesFM 2.5 ; les versions précédentes (1.0, 2.0) sont conservées dans le répertoire
v1 et peuvent être installées avec timesfm==1.3.0
-
Mise à jour du 15 septembre 2025
- Publication du modèle TimesFM 2.5
- Nombre de paramètres réduit à 200M (contre 500M auparavant, soit moins de la moitié)
- Longueur de contexte étendue à 16k (contre 2048 auparavant)
- Prise en charge de la prévision continue par quantiles (continuous quantile forecast) jusqu’à un horizon maximal de 1k, avec une tête quantile de 30M en option
- Suppression de l’indicateur
frequency
- Ajout de nouveaux drapeaux de prévision (forecasting flags)
- Mise à niveau de l’API d’inférence (inference API)
- Éléments prévus par la suite
- Prise en charge du modèle en version Flax (inférence plus rapide)
- Rétablissement de la prise en charge des covariables (covariates)
- Renforcement des docstrings, de la documentation et des notebooks
-
Mise à jour du 29 octobre 2025
- La prise en charge des entrées de covariables via XReg a été réajoutée à TimesFM 2.5
Méthode d’installation
- Cloner le dépôt GitHub, puis utiliser
uv pour créer un environnement virtuel et installer les paquets
- Installation possible de backends optionnels parmi
torch, flax, xreg
- Selon l’OS et l’accélérateur (CPU, GPU, TPU, Apple Silicon), choix possible entre PyTorch et JAX (Flax)
Exemple de code
- Exemple fourni pour charger le modèle TimesFM 2.5 basé sur PyTorch (200M de paramètres)
- Utilisation de
timesfm.TimesFM_2p5_200M_torch.from_pretrained("google/timesfm-2.5-200m-pytorch")
- Avec
ForecastConfig, il est possible de configurer la normalisation des entrées (normalize_inputs), l’utilisation de la tête de quantiles continue, la contrainte de positivité (infer_is_positive) et la correction du croisement des quantiles (fix_quantile_crossing)
- Lors de l’appel à
forecast(), deux types de résultats sont renvoyés : point forecast et quantile forecast
point_forecast.shape: (2, 12)
quantile_forecast.shape: (2, 12, 10) — inclut la moyenne ainsi que les quantiles de 10 à 90
1 commentaires
Avis Hacker News
Le concept d’un modèle de séries temporelles généraliste paraît un peu étrange
On peut se demander comment un même modèle pourrait prédire de façon fiable à la fois le prix des œufs en Italie et l’inflation mondiale
Et le fait qu’il n’explique pas sur quoi reposent ses prédictions semble aussi poser un problème de confiance dans les résultats
Un événement non saisonnier comme une guerre au Moyen-Orient qui affecte l’inflation ne peut pas être capté par le modèle
D’après l’annexe 8 de l’article, ils génèrent des données synthétiques à partir de modèles statistiques classiques comme les tendances linéaires, ARMA, ou des motifs saisonniers sinusoïdaux en sinus/cosinus
Au final, comme l’architecture repose sur un Transformer, il repère des motifs propres à chaque problème selon le contexte d’entrée, un peu comme un LLM
Beaucoup d’annonceurs se contentaient de tracer une ligne droite à partir des valeurs actuelles, mais c’était imprécis car cela ne tenait pas compte du jour de la semaine et de la saisonnalité
À l’inverse, les modèles de séries temporelles étaient bien plus précis, et l’entraînement sur l’ensemble des données de campagne permettait de fournir des intervalles de confiance à 95 %
Le signe et l’exposant changent lentement, donc on peut les prédire, puis estimer la mantisse avec la loi de Benford
Ce serait bien d’ajouter (2024) au titre
Le sujet a déjà été présenté sur le blog Google Research et ce n’est donc pas une nouveauté
On peut voir un billet de blog associé sur la page TimesFM de GitHub
Ça semble bien plus faible que pour un LLM, donc j’aimerais savoir si un chercheur indépendant ou un labo universitaire peut l’entraîner
À titre de référence, il existe des projets similaires comme Nixtla et Prophet
Il y avait aussi la question : « Pouvez-vous l’expliquer au niveau ELI5 ? Et combien de points de données peut-il lire ? »
Je me demande si la série temporelle est fournie uniquement comme un ensemble de nombres, sans contexte
Le modèle semble regarder les données, deviner de quelle catégorie il s’agit (cours boursiers, tendances de recherche, etc.), puis produire une prévision adaptée
Mais il sera probablement faible sur des catégories absentes des données d’entraînement
Personnellement, je préfère des modèles simples comme ARIMA ou des modèles fondés sur la théorie
La vraie question est de savoir jusqu’où l’architecture et le mode d’entraînement peuvent se généraliser
Ce modèle était déjà public il y a quelques mois, et je me demande s’il existe des cas concrets où quelqu’un a construit quelque chose dessus
Si l’on dispose de l’historique de l’irradiation solaire et des prévisions météo sous forme de séries temporelles, est-il possible d’utiliser les prévisions météo futures pour prédire le prix de l’électricité ?
Autrement dit, peut-on utiliser les données au temps X d’une série temporelle pour prédire le temps X d’une autre, ou bien le modèle ne traite-t-il que les motifs internes à une seule série ?
Mais si les données d’entraînement sont limitées, il risque simplement d’apprendre des motifs du type « ça monte vers la droite », ce qui semble être une limite
J’avais raté ce projet ; y a-t-il par hasard des compétitions autour de ce sujet ?
Les séries temporelles et le ML m’ont toujours semblé difficiles, mais j’aimerais essayer moi-même
Un collègue s’est amusé à utiliser ce modèle pour prédire à quel moment le CEO publierait un message sur Slack
Personnellement, j’ai l’impression qu’en faisant tourner LLM + pandas + une boucle d’expérimentation maison, on pourrait obtenir de meilleurs résultats qu’avec ce modèle
Il n’y a pas de limite prédéfinie, et je pense même qu’il est plus probable que cette affirmation soit fausse