Contesto e Problema

In linea con la visione del prodotto di offrire un “consiglio di esperti AI”, era stata proposta l’integrazione del modello statistico SARIMA (Seasonal Autoregressive Integrated Moving Average) nel “Forecast Lab”. L’obiettivo era fornire un modello classico e interpretabile da affiancare a TimesFM e Prophet. La libreria identificata per l’implementazione era pmdarima, nota per la sua funzione auto_arima per la ricerca automatica dei parametri.

Il problema è emerso durante la fase di Proof of Concept (POC), dove il tentativo di installare la dipendenza pmdarima ha rivelato un grave e insormontabile conflitto di dipendenze che minacciava la stabilità dell’intero ambiente di sviluppo del progetto.

Decisione Presa

Si è deciso di non procedere con l’integrazione di SARIMA e di sospendere indefinitamente questa iniziativa.

La stabilità dell’ambiente di sviluppo è stata valutata come una priorità superiore rispetto all’aggiunta di questa nuova funzionalità. La decisione è motivata da una catena di conflitti tecnici irrisolvibili senza intraprendere un refactoring ad alto rischio dell’intero stack di dipendenze del progetto.

Il tentativo di installare pmdarima ha fallito a causa delle seguenti incompatibilità a catena:

  1. Conflitto Binario Iniziale: La versione pre-compilata di pmdarima ha causato un errore ValueError: numpy.dtype size changed, indicando un’incompatibilità binaria con la versione di numpy (2.2.6) utilizzata nel progetto.
  2. Conflitti a Catena Inversi: Un tentativo di aggiornare numpy a una versione compatibile con pmdarima ha rotto altre dipendenze critiche esistenti, che hanno requisiti stringenti:
    • numba 0.61.2 richiede numpy<2.3
    • opencv-python 4.12.0.88 richiede numpy<2.3.0
  3. Fallimento della Compilazione: Un ultimo tentativo di compilare pmdarima dai sorgenti per allinearlo alla versione di numpy esistente è fallito, evidenziando problemi di retrocompatibilità nell’ecosistema di build.

Conseguenze

Positive

  • Stabilità Preservata: L’ambiente di sviluppo rimane stabile, prevedibile e funzionante.
  • Rischio Evitato: Si evitano i costi di manutenzione e i rischi di instabilità futuri derivanti da un complesso e fragile “puzzle” di dipendenze.
  • Consapevolezza Acquisita: Il team è ora pienamente consapevole dei vincoli stringenti che dipendenze core come numba e opencv-python impongono sulla versione di numpy.

Negative

  • Funzionalità Mancante: L’analisi di forecasting tramite SARIMA non sarà disponibile per gli utenti, limitando la diversità di modelli nel “Forecast Lab”.
  • Visione Parzialmente Incompleta: Il “consiglio di esperti AI” non si arricchisce di un modello statistico classico, che avrebbe offerto una prospettiva di analisi differente.

Alternative Considerate

Nessuna alternativa è stata considerata praticabile in questa fase. Il problema non risiede specificamente nella libreria pmdarima, ma nel delicato equilibrio delle versioni delle dipendenze scientifiche (numpy, numba, opencv-python) nel progetto. Qualsiasi altra libreria di forecasting statistico con dipendenze simili avrebbe quasi certamente incontrato lo stesso insormontabile ostacolo.