python scripts/poc/poc_chronos_basic_forecast.py

Transclude of poc_chronos_forecast

Transclude of poc_chronos_basic_forecast.py

Contesto

Una delle direzioni strategiche per il progetto FIRE è l’integrazione di funzionalità basate sull’intelligenza artificiale per fornire analisi predittive avanzate. Prima di investire risorse significative, era necessario validare la fattibilità tecnica dell’utilizzo di modelli di fondazione pre-addestrati per le serie storiche. Le domande chiave erano:

  1. Quanto è complesso integrare un modello come Amazon Chronos nel nostro stack Python?
  2. Le prestazioni (specialmente con accelerazione GPU) sono accettabili?
  3. I risultati prodotti (previsioni probabilistiche) sono utili per un contesto finanziario?

Decisione

Abbiamo sviluppato uno script Python autonomo che implementa un intero flusso di lavoro di previsione utilizzando il modello chronos-t5-small.

Lo script ha validato con successo i seguenti passaggi:

  • Caricamento del Modello: Download e inizializzazione della pipeline Chronos, con rilevamento e utilizzo automatico di una GPU CUDA se disponibile.
  • Gestione dei Dati: Creazione di una logica robusta per scaricare dati finanziari (tramite yfinance) e salvarli localmente per un accesso rapido e offline.
  • Esecuzione della Previsione: Utilizzo del modello per generare previsioni probabilistiche, calcolando la mediana e un intervallo di confidenza (10°-90° percentile).
  • Visualizzazione: Creazione di un report HTML interattivo con Plotly che mostra i dati storici, la previsione mediana e la fascia di incertezza.

Conseguenze

Positive

  • Validazione della Fattibilità: L’integrazione di un modello AI pre-addestrato è risultata sorprendentemente accessibile e non ha richiesto la scrittura di logica di training complessa.
  • Previsioni Probabilistiche: Il modello non fornisce una singola previsione (spesso fuorviante), ma un intervallo di confidenza. Questo è estremamente prezioso in finanza, in quanto comunica l’incertezza del modello.
  • Prestazioni Elevate con GPU: L’inferenza su una GPU CUDA è risultata molto veloce, rendendo possibile l’integrazione in flussi di lavoro di analisi quasi in tempo reale.
  • Riduzione della Barriera all’IA: Dimostra che possiamo sfruttare modelli allo stato dell’arte senza doverli addestrare da zero.

Negative / Limitazioni

  • Dipendenze Pesanti: L’integrazione nell’applicazione principale richiederà l’aggiunta di librerie pesanti come torch e transformers, aumentando notevolmente le dimensioni dell’installer.
  • Dimensioni del Modello: I file del modello stesso occupano centinaia di MB, che dovranno essere gestiti durante l’installazione o scaricati al primo avvio.
  • “Scatola Nera”: Essendo un modello pre-addestrato, la sua logica interna non è facilmente interpretabile. La qualità delle previsioni dipende fortemente dalla somiglianza dei dati di input con i dati su cui è stato addestrato.
  • Integrazione UI: L’esecuzione dell’inferenza è un’operazione a lunga esecuzione e dovrà essere gestita in un thread separato per non bloccare l’interfaccia utente dell’applicazione FIRE.

Proof of Concept: Forecasting di Base con Chronos (poc_chronos_basic_forecast.py)

1. Scopo

Questo script è un Proof of Concept (POC) il cui scopo è effettuare una validazione tecnica di base della libreria chronos-forecasting.

Serve a confermare, in un ambiente isolato e controllato, che siamo in grado di:

  1. Installare e importare la libreria chronos.
  2. Caricare un modello pre-addestrato (es. amazon/chronos-t5-small) da Hugging Face.
  3. Eseguire una previsione su un set di dati di esempio.
  4. Generare un output visivo per ispezionare il risultato.

Questo script è stato un passaggio fondamentale per ridurre i rischi tecnici prima di considerare l’integrazione di Chronos nell’architettura di FIRE.

2. Come si Lancia

Prerequisiti:

  • Ambiente virtuale del progetto attivo.
  • Dipendenze necessarie installate:
    pip install chronos-forecasting torch pandas plotly

**Comando:**  
Assicurati di essere nella directory principale del progetto ed esegui:

codeBash

python scripts/poc/poc_chronos_basic_forecast.py


## 3. Risultato Atteso

L'esecuzione dello script comporterà le seguenti azioni:

- Verrà scaricato il modello chronos-t5-small da Hugging Face (solo la prima volta).
    
- Verrà eseguita la previsione sui dati di esempio.
    
- Verrà creato un file chiamato **poc_chronos_forecast.html** nella directory principale del progetto.
    

Apri questo file HTML con un browser. Se vedi un grafico interattivo con i dati storici e una previsione futura (linea mediana e banda di incertezza), il POC è considerato un successo.

codeCode