Dans les chapitres précédents, on a testé des modèles “fabriqués maison” (linéaires, arbres, forêts, boosting) sur nos données locales. Ici, on bascule dans un autre monde : celui des modèles de prévision pré‑entraînés sur de vastes jeux de séries temporelles.

Chronos‑2, développé par Amazon et distribué notamment via Hugging Face et le dépôt chronos‑forecasting, est un modèle de type “foundation” capable de produire des prévisions probabilistes sur des séries très variées.

L’objectif est de le tester en zéro‑shot sur notre station : lui fournir uniquement l’historique local (sans ré‑entraînement), lui demander une prévision et voir comment il se comporte face aux observations et aux modèles précédents.

Première passe : choix de la taille du modèle (horizon 96 h)

On commence par un exercice simple : prédire les 96 dernières heures de température à partir des 336 heures précédentes, en faisant en resampling de la série à l’heure. On coupe donc les 96 h finales, on fournit à Chronos le contexte horaire, et on compare sa prévision aux observations.

python "docs/11 - Modèle Chronos/scripts/run_chronos.py"

Ce script s’appuie sur quelques variables d’environnement pour contrôler le comportement du modèle :

Sur cette même fenêtre de validation locale, on teste trois tailles de modèle (CHRONOS_MODEL) : chronos-t5-mini, chronos-t5-small et chronos-t5-base. Le script de comparaison :

python "docs/11 - Modèle Chronos/scripts/compare_chronos.py"

produit la figure suivante, qui résume la performance par taille.

Modèle Chronos-2 (foundation model HF)

Comparaison des tailles Chronos

Le modèle small ressort comme le meilleur compromis : MAE ≈ 3,68 °C, RMSE ≈ 4,53 °C, alors que les versions mini et base sont derrière (MAE ≈ 4,18–4,24 °C, RMSE ≈ 5,3–5,6 °C) sur cette fenêtre. Autrement dit, “monter en taille” n’améliore pas la prévision à 96 h sur nos données ; Chronos‑small fait ici légèrement mieux que ses voisins, pour un coût de calcul encore raisonnable.

On peut ensuite inspecter, pour chaque taille, la trajectoire temporelle prédit vs observé :

chronos-t5-mini

Modèle Chronos-2 (foundation model HF)

Trajectoire prédit vs observé – mini

chronos-t5-small

Modèle Chronos-2 (foundation model HF)

Trajectoire prédit vs observé – small

Le modèle small suit un peu mieux la courbe de référence que les autres, même si l’amplitude reste importante à 96 h.

chronos-t5-base

Modèle Chronos-2 (foundation model HF)

Trajectoire prédit vs observé – base

Au terme de cette première passe, on retient donc chronos-t5-small comme taille “par défaut” pour la suite des expériences.

Évaluation multi-horizons locale (1 h, 6 h, 24 h)

Pour comparer plus finement à notre cadre prédictif local, on évalue ensuite Chronos‑small sur des horizons plus courts, en restant au pas horaire (Chronos n’est pas pré‑entraîné au pas 10 minutes). Le script suivant demande au modèle de prévoir la température, le vent et la pluie à 1 h, 6 h et 24 h :

python "docs/11 - Modèle Chronos/scripts/run_chronos_multi.py"

Les trois figures suivantes montrent la performance par horizon :

Modèle Chronos-2 (foundation model HF)

Chronos small – température (1/6/24 h)

Modèle Chronos-2 (foundation model HF)

Chronos small – vent (1/6/24 h)

Modèle Chronos-2 (foundation model HF)

Chronos small – pluie (1/6/24 h)

On y voit que :

Pour avoir une vue plus synthétique, on combine les erreurs sur plusieurs figures :

python "docs/11 - Modèle Chronos/scripts/plot_chronos_errors_combined.py"

Modèle Chronos-2 (foundation model HF)

Chronos small – erreurs temp/vent

Modèle Chronos-2 (foundation model HF)

Chronos small – pluie (F1/Brier)

Enfin, un script dédié permet de comparer directement, pour plusieurs tailles de Chronos, l’erreur absolue en fonction de l’horizon :

python "docs/11 - Modèle Chronos/scripts/run_chronos_multi_errors.py"

Modèle Chronos-2 (foundation model HF)

Erreur absolue vs horizon – mini/small/base

Au final, dans cette configuration zéro‑shot, Chronos‑small fournit un signal exploitable sur la température (surtout à 1–6 h) et un peu sur le vent, mais reste faible sur la pluie et se dégrade nettement au‑delà de 24 h. Pour en faire un outil de prévision robuste sur toutes les variables, il faudrait envisager une calibration locale, davantage de contexte ou des cibles adaptées (par exemple une pluie binaire mieux calibrée).

Réglages plus prudents (contexte 288 h, horizon limité à 64 h, 100 échantillons)

Une troisième série d’essais cherche à voir si un Chronos‑small “raisonnablement bridé” se comporte mieux qu’une version trop ambitieuse. L’idée : moins de contexte, un horizon maximum plus court, mais davantage d’échantillons pour lisser la prévision :

python "docs/11 - Modèle Chronos/scripts/run_chronos_tuned.py"

Modèle Chronos-2 (foundation model HF)

Chronos small réglé – température

Modèle Chronos-2 (foundation model HF)

Chronos small réglé – vent

Modèle Chronos-2 (foundation model HF)

Chronos small réglé – pluie

Avec ces réglages (contexte 288 h, horizon limité à 64 h, 100 échantillons), la température s’améliore nettement sur la même fenêtre locale : MAE ~0,75 °C à 1 h, ~1,27 °C à 6 h, ~3,40 °C à 24 h (contre ~1,33/2,02/4,84 auparavant).

Le vent progresse surtout à 24 h (≈2,39 km/h contre ~6,38 km/h initialement), même si l’horizon 1 h est un peu moins bon. La pluie reste instable : le F1 peut atteindre 0,22–0,28 à 24–48 h, mais les scores à court terme demeurent peu fiables.

En pratique, raccourcir le contexte, limiter l’horizon et augmenter le nombre d’échantillons améliore donc nettement la température et le vent, mais ne suffit pas à rendre la pluie réellement prédictible à partir de cette seule station.

Dernier essai quasi “en conditions réelles” : prévision sur les 6 dernières heures

Pour terminer, on simule une situation d’usage : prévoir les 6 prochaines heures à partir de l’historique immédiatement disponible, sans les connaître à l’avance.

On masque donc les 6 dernières heures de la série, on fournit à Chronos‑small 288 h de contexte, et on lui demande la prévision correspondante :

python "docs/11 - Modèle Chronos/scripts/run_chronos_holdout6.py"

Modèle Chronos-2 (foundation model HF)

Chronos small – erreurs 6 h holdout

Sur ces 6 pas, les moyennes des erreurs absolues sont les suivantes : température ~0,84 °C, vent ~1,2 km/h, direction ~3,9°, pression ~5,3 hPa, humidité ~24 %.

Les erreurs restent très contenues sur température et vent, la direction est raisonnable (quelques degrés de décalage) ; la pression dérive (≈5 hPa) et l’humidité est clairement décalée.

Ce test, modeste, mais concret, confirme que Chronos peut fournir des tendances crédibles à très court terme (<6 h) sur la température et le vent dans ce cadre zéro‑shot, mais qu’il reste peu fiable sur l’humidité et la pluie, où l’on a vu plus haut que les occurrences locales rares sont difficiles à capter pour un modèle généraliste.