python .\scripts\poc\poc_chronos2_forecast.py

Transclude of poc_chronos2_forecast.py

Transclude of poc_chronos2_forecast_eurusd

Contesto

Dopo il successo del POC iniziale con Chronos, si è presentata l’opportunità di valutare Chronos-2, una versione più recente del modello. Le domande chiave per questo nuovo esperimento erano più approfondite:

  1. Miglioramenti API: La nuova API (predict_df) è effettivamente più semplice e robusta da usare con i DataFrame di Pandas?
  2. Impatto sulle Risorse: Qual è il costo in termini di memoria RAM e tempo di calcolo per caricare ed eseguire questo nuovo modello? È sostenibile per un’integrazione nell’applicazione FIRE?
  3. Gestione dei Dati Reali: Come si comporta il modello con le complessità dei dati finanziari reali (es. buchi nei weekend, formati dati inaspettati) scaricati da fonti come yfinance?

Decisione

Abbiamo sviluppato uno script di Proof of Concept (poc_chronos2_forecast.py) che implementa un flusso completo di benchmarking e previsione con Chronos-2 su dati finanziari reali (EUR/USD).

Lo script ha validato con successo le seguenti capacità:

  • Integrazione API Semplificata: Utilizzo della nuova e più intuitiva funzione predict_df, che lavora nativamente con i DataFrame.
  • Benchmarking delle Risorse: Integrazione delle librerie psutil e time per misurare e registrare l’impatto del modello sulla memoria RAM e i tempi di inferenza sulla GPU.
  • Data Cleaning Robusto: Implementazione di un processo di pulizia dati multi-passo che è diventato il punto cruciale e più istruttivo del POC. Durante il debug, è stato scoperto e risolto un problema critico legato al MultiIndex nelle colonne restituite da yfinance. La soluzione ha richiesto l’appiattimento delle colonne (.droplevel()) prima di poter processare i dati.
  • Gestione della Frequenza: Adozione di una tecnica di resampling giornaliero (resample('D').ffill()) per gestire i buchi nei dati di mercato, rendendo la serie storica compatibile con il modello.

Conseguenze

Positive

  • API Convalidata: L’API di Chronos-2 si è dimostrata significativamente superiore in termini di usabilità, riducendo la necessità di conversioni manuali e semplificando il codice.
  • Dati Quantitativi sulle Prestazioni: Ora abbiamo metriche concrete sull’impatto del modello (circa 107 MB di RAM aggiuntiva) e sui tempi di previsione, dati fondamentali per la pianificazione dell’integrazione.
  • Soluzione a un Problema Nascosto (MultiIndex): La scoperta e la risoluzione del problema del MultiIndex è una conoscenza tecnica preziosissima. La soluzione sviluppata è ora un pattern riutilizzabile per qualsiasi interazione futura con yfinance.
  • Conferma della Robustezza: Lo script finale (v2.1) è diventato un esempio di “best practice” per un flusso di data science: scaricare, diagnosticare, pulire, preparare, eseguire e visualizzare.

Negative / Limitazioni

  • Complessità del Data Cleaning: Il POC ha evidenziato in modo inequivocabile che l’integrazione di modelli AI non riguarda solo il modello stesso, ma richiede una pipeline di preparazione dei dati estremamente robusta. Qualsiasi dato grezzo da fonti esterne deve essere considerato “non attendibile” e pulito rigorosamente.
  • Le Dipendenze Rimangono Pesanti: Come per il suo predecessore, Chronos-2 richiede torch e transformers, confermando che l’integrazione nell’applicazione FIRE comporterà un aumento significativo delle dimensioni e della complessità delle dipendenze.