python .\scripts\poc\poc_timesfm_forecast.py

Transclude of poc_timesfm_forecast.py

Contesto

Prima di investire tempo nello sviluppo di complessi framework di backtesting, era fondamentale eseguire un test di integrazione di base per il modello TimesFM. L’obiettivo era rispondere a domande semplici ma cruciali sulla fattibilità tecnica: l’installazione, il caricamento, l’esecuzione di una singola previsione e l’analisi dell’output.

Decisione

È stato sviluppato uno script Python standalone (poc_timesfm_forecast.py) che esegue un flusso di lavoro minimale: setup, caricamento dati, singola previsione e visualizzazione dei risultati a console.

Durante lo sviluppo, sono state scoperte e risolte due importanti peculiarità dell’API di TimesFM 2.5:

  1. Gestione del Dispositivo: A differenza di altre librerie PyTorch, timesfm non usa il metodo .to(device). La selezione CPU/GPU è gestita automaticamente dalla libreria.
  2. Compilazione Obbligatoria: Dopo il caricamento (.from_pretrained()), è obbligatorio chiamare il metodo .compile() passando una ForecastConfig. L’assenza di questo passaggio genera un RuntimeError.

Lo script finale misura e riporta i tempi di caricamento del modello (incluso il tempo di compilazione) e il tempo di inferenza per una singola previsione, stampando i risultati numerici direttamente sul terminale.

Conseguenze

Positive

  • Validazione dell’Integrazione Riuscita: Il POC ha confermato che il modello TimesFM può essere caricato ed eseguito con successo, fornendo dati di previsione puntuali e per quantili.
  • Chiarimenti Cruciali sull’API: Il processo di debug ha rivelato due requisiti non ovvi dell’API di TimesFM 2.5 (assenza di .to(device) e necessità di .compile()). Questa conoscenza è fondamentale per qualsiasi integrazione futura.
  • Dati di Performance di Baseline: L’esecuzione ha fornito metriche quantitative di base (es. caricamento in ~0.95s, inferenza in ~0.19s su GPU), utili come punto di riferimento.
  • Comprensione della Struttura dell’Output: L’analisi dei risultati a console ha confermato la struttura degli array NumPy restituiti, necessaria per elaborare i dati in passaggi successivi.

Negative / Limitazioni

  • Nessuna Valutazione di Accuratezza: Questo POC non confronta le previsioni con i dati reali futuri, quindi non fornisce alcuna indicazione sull’accuratezza del modello.
  • Output Non Visivo: Lo script non genera grafici. La sua finalità è puramente funzionale e di performance, non di analisi qualitativa.
  • Singolo Punto Dati: Le performance misurate sono relative a una singola esecuzione e potrebbero variare con input di dimensioni diverse.