1

86 lines
5.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Modèle Chronos-2 (foundation model HF)
Objectif : tester un modèle de prévision généraliste récent (**Chronos-2**, Amazon) en zéro-shot sur notre station. On resample la température à lheure, on coupe les dernières 96 h pour évaluer la prévision, et on compare le forecast à lobservé.
```shell
python "docs/11 - Modèle Chronos/scripts/run_chronos.py"
```
### Résultats comparés
Nous avons utilisé les variables denvironnement suivantes : `CHRONOS_CONTEXT` (336 h), `CHRONOS_HORIZON` (96 h), `CHRONOS_RESAMPLE` (`1h`), `CHRONOS_SAMPLES` (20).
![Comparaison des tailles Chronos](./figures/chronos_models_comparison.png)
Sur la même fenêtre de validation locale, nous avons testé trois tailles (`CHRONOS_MODEL`) : `chronos-t5-mini`, `chronos-t5-small` et `chronos-t5-base`. Le modèle **small** semble le plus précis (MAE ≈ 3,68 °C, RMSE ≈ 4,53 °C), les versions mini et base étant derrière (MAE ≈ 4,184,24 °C, RMSE ≈ 5,35,6 °C). Autrement dit, monter en taille na pas amélioré la prévision à 96 h sur ces données locales ; la version `small` offre le meilleur compromis précision/poids.
```shell
python "docs/11 - Modèle Chronos/scripts/compare_chronos.py"
```
#### chronos-t5-mini
![Trajectoire prédit vs observé mini](./figures/chronos_forecast_amazon__chronos-t5-mini.png)
#### chronos-t5-small
![Trajectoire prédit vs observé small](./figures/chronos_forecast_amazon__chronos-t5-small.png)
Le modèle suit un peu mieux la courbe de référence que les autres, mais une forte amplitude existe.
#### chronos-t5-base
![Trajectoire prédit vs observé base](./figures/chronos_forecast_amazon__chronos-t5-base.png)
### Lecture et portée
Pour coller à nos horizons cibles, `run_chronos_multi.py` évalue Chronos-small sur 1 h, 6 h et 24 h pour la température, le vent et la pluie (horaire uniquement ; lhorizon 10 minutes nest pas couvert par Chronos qui est pré-entraîné en pas horaire). Les figures `chronos_multi_temperature.png`, `chronos_multi_wind_speed.png` et `chronos_multi_rain_rate.png` illustrent où le modèle est le plus fiable : à 1 h, la température reste sous ~1,3 °C de MAE et le vent sous ~0,6 km/h ; à 6 h, lerreur grimpe modérément (≈2 °C temp., ≈3 km/h vent) ; à 24 h, elle dépasse 46 (°C/ km/h). Sur la pluie, le F1 reste nul à 1 h/6 h et ne monte quà ~0,15 à 24 h, signe que le modèle “foundation” horaire ne capture pas bien les occurrences locales rares.
```shell
python "docs/11 - Modèle Chronos/scripts/run_chronos_multi.py"
```
![Chronos small température (1/6/24 h)](./figures/chronos_multi_temperature.png)
![Chronos small vent (1/6/24 h)](./figures/chronos_multi_wind_speed.png)
![Chronos small pluie (1/6/24 h)](./figures/chronos_multi_rain_rate.png)
```shell
python "docs/11 - Modèle Chronos/scripts/plot_chronos_errors_combined.py"
```
![Chronos small erreurs temp/vent](./figures/chronos_multi_errors_temp_wind.png)
![Chronos small pluie (F1/Brier)](./figures/chronos_multi_errors_rain.png)
Les figures individuelles permettent de voir la trajectoire prédite vs observée (dans la section précédente) et lerreur par horizon (ci-dessous).
```shell
python "docs/11 - Modèle Chronos/scripts/run_chronos_multi_errors.py"
```
![Erreur absolue vs horizon mini/small/base](./figures/chronos_errors_combined.png)
Au final, Chronos-small fournit un signal exploitable sur la température et un peu sur le vent pour des horizons courts à intermédiaires, mais reste faible sur la pluie et se dégrade nettement au-delà de 24 h. Une calibration locale, davantage de contexte ou une cible adaptée (pluie binaire calibrée) seraient nécessaires pour en faire un outil de prévision robuste sur toutes les variables.
### Réglages prudents (contexte 288 h, horizon limité à 64 h, 100 échantillons)
![Chronos small réglé température](./figures/chronos_tuned_temperature.png)
![Chronos small réglé vent](./figures/chronos_tuned_wind_speed.png)
![Chronos small réglé pluie](./figures/chronos_tuned_rain_rate.png)
Avec `run_chronos_tuned.py`, on réduit le contexte (288 h) et lhorizon maximum (64 h) tout en augmentant les échantillons (100). Sur la même fenêtre locale, la température saméliore nettement : MAE ~0,75 °C à 1 h, ~1,27 °C à 6 h, ~3,40 °C à 24 h (vs 1,33/2,02/4,84 auparavant). Le vent progresse surtout à 24 h (≈2,39 contre ~6,38 auparavant), même si le 1 h est moins bon que la première passe. La pluie reste instable : le F1 peut atteindre 0,220,28 à 2448 h mais les scores courts sont peu fiables. Limiter lhorizon à 64 h, raccourcir le contexte et lisser par davantage déchantillons améliorent donc la température et le vent, mais ne suffisent pas à rendre la pluie prédictible.
### Dernier essai en conditions réelles : prévision sur les 6 dernières heures
```shell
python "docs/11 - Modèle Chronos/scripts/run_chronos_holdout6.py"
```
![Chronos small erreurs 6 h holdout](./figures/chronos_holdout6_errors.png)
On a masqué les 6 dernières heures de la série et demandé à Chronos-small (contexte 288 h, 50 échantillons) de prévoir température, vent (vitesse + direction), humidité et pression, puis comparé aux valeurs réelles. Moyennes des erreurs absolues sur ces 6 pas : 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/vent et la direction est raisonnable (quelques degrés) ; la pression dérive (5 hPa) et lhumidité est clairement décalée. Ce test confirme que Chronos peut fournir des tendances crédibles à très court terme (<6 h) sur température et vent, mais pas sur lhumidité (et on a vu plus haut que la pluie reste peu fiable).