
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:
- Gestione del Dispositivo: A differenza di altre librerie PyTorch,
timesfmnon usa il metodo.to(device). La selezione CPU/GPU è gestita automaticamente dalla libreria. - Compilazione Obbligatoria: Dopo il caricamento (
.from_pretrained()), è obbligatorio chiamare il metodo.compile()passando unaForecastConfig. L’assenza di questo passaggio genera unRuntimeError.
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.