vai a Weirdoo.com

Case Study

Tools & Tips

101

White Paper e Guides

Curiosità

Manutenzione e Drift, Cosa succede quando la tua AI inizia a impazzire silenziosamente

Ugo De Benedetto

April 23, 2026

C'è una bugia che il settore dell'Intelligenza Artificiale racconta volentieri ai clienti: "Una volta addestrato/configurato, il modello impara e migliora nel tempo". La realtà ingegneristica è l'esatto opposto. L'AI non migliora da sola. L'AI degrada.

Nel software tradizionale, se scrivi una funzione che somma due numeri (a + b), quella funzione restituirà sempre lo stesso risultato per dieci anni, a meno che non cambi l'hardware o il compilatore. È deterministica. L'AI Generativa, per sua natura probabilistica, è soggetta a un fenomeno che chiamiamo AI Drift (o Model Drift). I dati cambiano, il mondo cambia, le API dei provider cambiano sotto il cofano. E il tuo chatbot, che ieri era un genio, oggi inizia a rispondere cose senza senso, pur restituendo uno status code 200 OK.

In Weirdoo abbiamo imparato questa lezione nel modo più duro possibile: in produzione. In questo articolo ti racconterò perché la manutenzione di un sistema AI costa spesso più del suo sviluppo iniziale e perché, senza una pipeline di Observability e Continuous Evaluation, il tuo progetto è destinato a fallire entro sei mesi.


Il "Provider Drift"

La prima volta che abbiamo messo in produzione un sistema basato sulle API di OpenAI, qualche anno fa ormai (all'epoca usavamo GPT-3.5), tutto sembrava perfetto. I test in locale erano verdi. La demo al cliente era stata un successo. Nessuno, all'epoca, parlava seriamente di Guardrails o di Observability. Ci fidavamo del modello.

Poi è arrivato il feedback dalla produzione. E non era il feedback che ci aspettavamo. Il sistema doveva consigliare prodotti basandosi sulle giacenze di magazzino. Passavamo l'inventario nel prompt e il modello rispondeva. Un giorno, l'API esterna (il gestionale del cliente) che ci forniva i dati di magazzino si è rotta silenziosamente. Al nostro prompt arrivava un array vuoto [] invece della lista prodotti.

Per un software classico, questo è un errore gestibile (if empty -> error). Per l'LLM, invece, era un invito a improvvisare. Non avendo dati sul magazzino, il modello ha iniziato ad allucinare. Ha inventato prodotti che non esistevano, prezzi plausibili ma falsi, e disponibilità immaginarie. Per l'utente finale, il sistema funzionava. Per il business, era un disastro.

Da quel giorno abbiamo capito una regola fondamentale: mai fidarsi dell'input, mai fidarsi dell'output. Senza un sistema di controllo (Guardrails) che verifichi l'integrità dei dati prima che tocchino il prompt, e un sistema di verifica dopo, avremmo potuto non accorgercene per settimane. Perché l'AI non crasha. L'AI mente con sicurezza.


RAG e Invalidation Strategy

Oggi l'architettura standard per l'AI aziendale è il RAG (Retrieval Augmented Generation). Prendi i documenti aziendali, li vettorizzi, e li dai in pasto al modello. Tutti si concentrano su come inserire i dati. Pochissimi si preoccupano di come toglierli.

Il problema dei "Dati Zombie" è reale. Se un cliente aggiorna un listino prezzi o modifica una policy di reso, cosa succede nel tuo Vector Database? Spesso, il vecchio "chunk" (frammento di testo) rimane lì, affiancato a quello nuovo. Risultato: il tuo chatbot GPT based trova due informazioni contraddittorie e, nella sua confusione statistica, le mischia o sceglie quella sbagliata.

In Weirdoo abbiamo dovuto implementare pipeline di Invalidation granulari. Non basta "aggiornare ogni tanto". Bisogna definire delle priorità di business:

  1. Priorità Critica (Panic Button): Il cliente ha caricato un file sbagliato o contenente dati sensibili che non dovevano esserci? La pipeline deve invalidare e cancellare quei vettori immediatamente, fermando il servizio se necessario.

  2. Priorità Standard (Routine): Un file è stato semplicemente aggiornato o arricchito? Possiamo gestire l'aggiornamento in batch, di notte, senza impattare le performance del sistema live.

Senza una strategia di invalidazione, il tuo RAG inizia ad essere un problema dopo poche settimane dalla messa in produzione.


Monitorare l'Imponderabile: LLM-as-a-Judge

Nel monitoraggio classico guardiamo CPU, RAM e Latenza. Ma come si misura la "Qualità" di una conversazione? Come fai a sapere se il tono di voce è diventato troppo aggressivo o se la risposta è tecnicamente corretta ma inutile?

Non puoi assumere 100 persone per leggere tutte le chat. In Weirdoo utilizziamo un approccio a tre livelli:

  1. Feedback Utente (Implicito ed Esplicito): I classici pollici su/giù (che pochi usano) e il feedback differito (NPS via email dopo X giorni). È utile, ma è "lagging" (arriva quando il danno è fatto).

  2. Golden Dataset: Creiamo per ogni cliente un set di domande "d'oro" (50-100 casi d'uso tipici) di cui conosciamo la risposta perfetta.

  3. LLM-as-a-Judge (CI/CD): Qui avviene la magia. Prima di ogni deploy in produzione (e regolarmente sui sistemi live), lanciamo il Golden Dataset contro il nostro sistema. Poi, usiamo un modello "superiore" (es. GPT-4o o un modello specifico addestrato per la valutazione) per fare da Giudice.
    Il Giudice confronta la risposta del sistema con la risposta ideale e assegna un punteggio.

Se il punteggio scende sotto una certa soglia, la pipeline di CI/CD si blocca. Non andiamo in produzione. Questo trasforma la qualità dell'output da un'opinione soggettiva a una metrica oggettiva che possiamo tracciare nel tempo.


Il Costo Nascosto: Deprecation vs Debito Tecnico

Parliamo di costi, ma con onestà. Il debito tecnico esiste in ogni progetto software. Ma nell'AI c'è una minaccia esistenziale diversa: la volatilità delle API.

Se usi una libreria JavaScript, puoi decidere di non aggiornarla per due anni e il sito continuerà a funzionare. Con i Large Language Models, non hai questo lusso. OpenAI, Anthropic o Google possono decidere di deprecare un modello (es. gpt-3.5-turbo-0613) con un preavviso di pochi mesi. Quando quel modello viene spento, il tuo sistema smette di funzionare. Punto.

E non basta cambiare una stringa nel codice da v1 a v2. Un prompt che funzionava perfettamente sul modello vecchio potrebbe rompersi completamente sul modello nuovo (che magari è più "sicuro", più verboso, o formatta il JSON diversamente). Questo costringe a cicli di re-testing e re-engineering forzati. La manutenzione nell'AI non è solo "tenere le luci accese", è una corsa continua per adattarsi al terreno che ti frana sotto i piedi.


L'illusione del "Continuous Fine-Tuning"

C'è un'idea affascinante che circola spesso nei board aziendali: "Automatizziamo il ri-addestramento. Ogni notte prendiamo le interazioni migliori, le usiamo per fare fine-tuning del modello, e lui diventerà sempre più intelligente in autonomia."

Sulla carta, è il Santo Graal. In pratica, è una delle sfide più ardue dell'MLOps moderno. Senza una pipeline di validazione rigorosa, il Continuous Fine-Tuning porta quasi inevitabilmente a due fenomeni distruttivi: il Catastrophic Forgetting e il Model Collapse.

Il Problema 1: Catastrophic Forgetting

Le reti neurali non funzionano come un database SQL dove aggiungi righe (conoscenza) senza intaccare quelle esistenti. Quando fai fine-tuning, stai modificando i pesi (weights) del modello per minimizzare l'errore sui nuovi dati. Se il nuovo dataset non è perfettamente bilanciato con il vecchio, il modello tende a sovrascrivere le connessioni neurali che codificavano la logica precedente per far spazio alla nuova.

Risultato? Il chatbot impara perfettamente le specifiche del nuovo prodotto lanciato ieri, ma improvvisamente "dimentica" come salutare l'utente, come gestire le negazioni o perde la capacità di ragionamento logico di base che aveva il modello foundation.

Il Problema 2: Model Collapse (Il Loop del Feedback)

Se automatizziamo il training basandoci sui log delle chat passate, introduciamo un rischio statistico sottile. Se il modello commette un piccolo errore (es. un'allucinazione plausibile) e l'utente non lo corregge esplicitamente, quell'errore finisce nel dataset di training della notte successiva come "verità". Il modello viene ri-addestrato sui suoi stessi output (o su dati sintetici generati da sé stesso).

Iterazione dopo iterazione, la varianza del modello crolla e gli errori si cristallizzano. Il modello smette di rappresentare la distribuzione reale dei dati e inizia a convergere verso una rappresentazione distorta e semplificata.

La Soluzione Ingegneristica: Versioning e Adattatori (LoRA)

In Weirdoo non sconsigliamo il fine-tuning, ma lo trattiamo come un deploy di codice critico, non come una routine automatica.

  1. Immutabilità del Modello Base: Invece di modificare i pesi del modello intero (Full Fine-Tuning), preferiamo tecniche come LoRA (Low-Rank Adaptation). Addestriamo piccoli "adattatori" (pochi MB di pesi) che si agganciano al modello base congelato. Questo riduce drasticamente il rischio di Catastrophic Forgetting e permette di "staccare" l'aggiornamento se qualcosa va storto, senza aver corrotto il cervello principale.

  2. Point-in-Time Recovery: Ogni versione del modello (o dell'adattatore LoRA) deve essere versionata con uno SHA, esattamente come un commit Git. Dobbiamo poter fare Rollback immediato alla versione v24.05.12 se la versione v24.05.13 mostra segni di regresso.

  3. Evaluation Pipeline Bloccante: Nessun modello fine-tunato va in produzione automaticamente. La pipeline CI/CD deve:
    • Addestrare il candidato.
    • Eseguire il Golden Dataset.
    • Confrontare le metriche con il modello precedente.
    • Promuovere in produzione solo se il punteggio di qualità è superiore e non ci sono regressioni su task fondamentali.

L'apprendimento continuo è possibile, ma richiede un'architettura di controllo che è spesso più costosa e complessa del modello stesso.


Conclusione

C'è una differenza fondamentale tra il software tradizionale e l'AI Generativa. Se oggi scrivi un codice PHP fatto male, tra dieci anni quel codice farà ancora schifo, ma funzionerà esattamente allo stesso modo. È statico. Un sistema AI, invece, è soggetto a un'entropia accelerata.

I dati su cui si basa invecchiano. Le API su cui poggia cambiano. Il linguaggio degli utenti evolve. E il modello stesso, se sottoposto a loop di feedback non controllati, inizia a collassare su se stesso.

Lanciare un progetto AI ("Day 1") è la parte facile. È eccitante, c'è l'hype, c'è il budget. Ma è nel "Day 2", quando l'hype scende e iniziano ad arrivare i casi limite, le allucinazioni sui prezzi e i drift dei provider che si vede la differenza tra una demo e un prodotto enterprise.

In Weirdoo abbiamo smesso di vendere l'AI come una "scatola magica" che risolve i problemi da sola. L'AI è un componente infrastrutturale potente ma instabile, che richiede un'impalcatura di controllo (CI/CD, Evaluation, Guardrails) spesso più costosa e complessa del modello stesso.

Se la tua roadmap non prevede budget per l'Observability e per la Manutenzione Evolutiva, il tuo progetto ha già una data di scadenza. Non costruite cattedrali nel deserto. Costruite sistemi che sapete di poter governare anche quando la tempesta (o il prossimo update di OpenAI) arriverà.

Condividi l'articolo

ARTICOLI CORRELATI

ARTICOLI CORRELATI

ESPLORA LE CATEGORIE

ESPLORA LE 
CATEGORIE