La guida definitiva su intelligenza artificiale, previsioni e ottimizzazione sui dati
L'AI che prevede,
e quella che indovina
Chiunque oggi può chiedere a un modello «quanto venderò il mese prossimo» e ricevere un numero. Il numero arriva sempre, è scritto bene, ha l'aria di sapere quello che dice. Il punto è che una previsione e una frase che somiglia a una previsione, sullo schermo, sono indistinguibili: hanno le stesse cifre, la stessa sicurezza, lo stesso font. La differenza si vede solo dopo, quando su quel numero hai comprato merce, assunto persone, promesso date.
Questa risorsa serve a insegnarti a distinguerle prima. Qui dentro non troverai un elenco di algoritmi da memorizzare. Troverai il modo di ragionare di chi costruisce sistemi che devono azzeccare qualcosa nel mondo reale, e poi risponderne. Si parte da lontano, da cos'era l'intelligenza artificiale nei settant'anni in cui nessuno la chiamava così. Si attraversa la matematica di come una macchina impara davvero dai dati. Si arriva al confine oltre il quale nessun modello, per quanto grande, potrà mai vedere. E no, la potenza di calcolo con quel confine c'entra pochissimo: si tratta di un teorema.
Qui dentro non trovi screenshot: trovi simulazioni che giri tu. Poche righe più in basso c'è già la prima. Due modelli guardano gli stessi ventiquattro mesi di storia. Il primo li ripassa tutti, uno per uno, con un'aderenza commovente. Il secondo ne sbaglia parecchi. Poi il futuro arriva, e uno dei due si schianta. Ti anticipo il finale, perché è la tesi di tutto il resto: quello che si schianta è quello che aveva ragione su tutto.
Otto sezioni affrontano poi la domanda che oggi mi fanno in ogni sala riunioni: gli LLM sanno prevedere? La risposta onesta non è né il sì entusiasta del venditore né il no sprezzante del tecnico. È una terza cosa, che ha a che fare con il posto giusto in cui metterli, e che alla fine ti farò vedere in un confronto diretto, machine learning contro LLM contro LLM che usa lo strumento, sugli stessi dati, con il conto in euro alla fine.
E poiché una risorsa che ti spiega come pensare e poi ti lascia senza mappa è mezza risorsa, l'ultima parte è un atlante. Ci trovi le otto famiglie di tecnologie che esistono davvero, non solo gli LLM. Le ventidue analisi che si fanno sui dati, ognuna con il suo limite dichiarato. Le due trappole che uccidono più progetti di tutte le altre: «la campagna ha funzionato?» e «il rilevatore prende il 99% delle frodi». E il capitolo che nessuno scrive, quanto costa, con il calcolatore che confronta la stessa analisi fatta con un modello ML e con un LLM, ai listini di oggi.
Sono ventisei anni che costruisco sistemi in cui il software deve decidere qualcosa. Quello che segue è quello che ho imparato, spesso pagandolo.
Matteo Migliore
Come si decide davvero Non da soli davanti a uno schermo, ma in tre intorno a un tavolo, con i numeri stampati e la libertà di dire «questo non torna». Tutta questa risorsa serve a rendere possibile quella conversazione.
Il modello che aveva ragione su tutto
Ventiquattro mesi di storico, stessi identici dati per entrambi. Scegli il modello, poi lascia arrivare il futuro (la parte grigia) e guarda chi regge.
Nota Non è un video: i dati sono generati adesso nel tuo browser, i coefficienti risolti dal vivo ai minimi quadrati. «Altri dati» rigenera tutto da capo. Se il polinomio ti sembra un uomo di paglia, aspetta il capitolo 05: nei progetti veri quella curva si chiama «abbiamo aggiunto qualche feature».
La mappa
Sei parti: cos'è davvero l'AI, come impara, dove sta il confine del prevedibile, come si decide, cosa c'entrano gli LLM, e l'atlante completo di ciò che esiste, con i costi. Entra dove ti serve.
Per settant'anni l'AI ha funzionato benissimo. Senza LLM, e quasi senza che ce ne accorgessimo.
Quando qualcuno dice «da quando c'è l'AI», sta parlando di novembre 2022. La tua banca ti nega il fido con un'AI dal 1995.
C'è un fenomeno che rende difficile ragionare su questo argomento e si chiama effetto AI: appena una tecnica funziona in modo affidabile, smettiamo di chiamarla intelligenza artificiale e le diamo il nome del suo mestiere. Il riconoscimento della scrittura sugli assegni era AI; oggi è «lettura degli assegni». L'antifrode della tua carta era AI; oggi è «l'antifrode». Il navigatore che calcola il percorso più breve è, tecnicamente, un algoritmo di ricerca su grafo nato in un laboratorio di intelligenza artificiale nel 1968; oggi è «il navigatore». Chiamiamo AI solo ciò che non funziona ancora bene: è una definizione mobile che si ritira ogni volta che facciamo un passo avanti. Il risultato è che l'AI sembra sempre imminente e mai arrivata, mentre in realtà è arrivata da decenni ed è dappertutto, sotto altri nomi.
Vale la pena ripercorrere la strada, perché ogni epoca ha lasciato in eredità qualcosa che usiamo ancora oggi, e perché quasi tutti gli errori che vedo fare nel 2026 con gli LLM sono errori già commessi, e già capiti, negli anni Ottanta.
La scommessa simbolica
L'idea fondativa: pensare è manipolare simboli secondo regole. Se la conoscenza si scrive come logica, una macchina che applica logica ragiona. Nascono il test di Turing, il termine «artificial intelligence» (Dartmouth, 1956), i primi solutori di teoremi. Nasce anche il percettrone di Rosenblatt, l'antenato diretto delle reti di oggi.
eredità: la ricerca nello spazio degli stati, i grafiIl primo inverno
Minsky e Papert dimostrano che un percettrone a singolo strato non può imparare nemmeno lo XOR. Tecnicamente era vero e limitato al caso a uno strato, ma politicamente fu una condanna: fondi tagliati, campo congelato per quindici anni. Lezione permanente: nell'AI le dimostrazioni matematiche producono effetti economici, e le promesse non mantenute costano più degli errori tecnici.
eredità: la diffidenza, e il ciclo hype-invernoI sistemi esperti
La prima AI che ha fatto davvero soldi. Si intervistava un esperto umano, si estraevano centinaia di regole SE… ALLORA…, un motore inferenziale le concatenava. MYCIN diagnosticava infezioni meglio di molti medici; XCON configurava i minicomputer di Digital facendo risparmiare decine di milioni l'anno. Poi il crollo: le regole non scalano. A duemila regole nessuno sa più quale regola contraddice quale, aggiornarle costa più che riscriverle, e il sistema non impara nulla da solo.
La rivoluzione statistica
Il cambio di paradigma più importante di tutta la storia del campo, e quasi nessuno lo racconta: si smette di scrivere la conoscenza e si comincia a stimarla dai dati. Reti bayesiane, modelli di Markov nascosti, SVM, alberi di decisione. La traduzione automatica passa dalle grammatiche alle statistiche di corpus bilingui e migliora di colpo. È qui che nasce, di fatto, tutto il machine learning previsionale che uso ancora oggi per la stragrande maggioranza dei problemi aziendali.
eredità: il 90% di ciò che serve a teDeep learning: i dati e le GPU
Le reti profonde esistevano da vent'anni ma non si addestravano. Arrivano insieme tre cose: dataset enormi (ImageNet), schede grafiche riadattate a moltiplicare matrici, e trucchi di addestramento (ReLU, dropout, batch norm). Nel 2012 AlexNet dimezza l'errore sul riconoscimento immagini e il campo cambia in una notte. Nel 2016 AlphaGo vince a Go, gioco che si diceva «fuori portata per decenni».
eredità: la percezione (immagini, voce), le rappresentazioni apprese«Attention is all you need»
Il transformer sostituisce la ricorrenza con l'attenzione: ogni parola può guardare tutte le altre, e soprattutto il calcolo si parallelizza. L'idea era più intelligente, certo, ma soprattutto girava bene sull'hardware che avevamo già. Da lì la scoperta empirica che conta più di tutte: se ingrandisci modello, dati e calcolo insieme, le prestazioni migliorano in modo regolare e compaiono capacità che nessuno aveva programmato. Da lì gli LLM, e la sensazione collettiva che l'AI sia nata l'altro ieri.
eredità: il linguaggio come interfaccia universale
Archeologia utile Un sistema esperto è una macchina che segue un percorso di regole scritte da un umano. Non impara, non sbaglia in modo creativo, e ti sa sempre dire perché ha deciso così. Tre proprietà che oggi, ogni tanto, ci mancano parecchio.
La storia dell'AI non è una scala verso gli LLM. È un armadio di attrezzi in cui gli LLM sono l'ultimo cassetto, non l'unico.
Perché ti riguarda concretamente. Se il tuo problema è «dato questo cliente, comprerà?», il tuo strumento è la rivoluzione statistica del 1995: un gradient boosting su tabella, che gira in venti millisecondi su una macchina da quattro euro al mese, ti dice quali variabili contano e non inventa nulla. Se il tuo problema è «leggi queste ottocento mail di reclamo e dimmi di cosa si lamentano», allora sì, è l'ultimo cassetto. Il mestiere è sapere quale cassetto aprire, e per saperlo bisogna sapere che gli altri cassetti esistono.
Aggiungo la cosa che dico sempre ai clienti, che è la vera lezione dei sistemi esperti. Quelle regole non morirono perché erano stupide: morirono perché nessuno si era occupato del loro ciclo di vita. Chi le aggiorna, chi verifica che non si contraddicano, chi si accorge che il mondo è cambiato. Oggi si costruiscono modelli con lo stesso identico difetto: nascono benissimo, e nessuno ha deciso chi li guarderà tra otto mesi. Il modo di morire è lo stesso, è solo cambiata la matematica.
La parola «AI» copre otto mestieri diversi. Confonderli costa progetti interi.
Non esiste «fare AI», come non esiste «fare matematica». Esiste risolvere un problema di un tipo preciso.
La tassonomia che segue è quella che uso sul campo. Ogni casella ha un modo diverso di fallire, un fabbisogno diverso di dati, un costo diverso e un modo diverso di essere verificata. Quando in una riunione qualcuno dice «mettiamoci l'AI», la prima domanda utile è sempre la stessa: in quale di queste caselle stiamo? Nove volte su dieci la discussione finisce lì, perché ci si accorge che due persone stavano parlando di due caselle diverse.
Conoscenza scritta a mano: regole, ontologie, motori inferenziali, solver di vincoli. Non impara: applica.
Quando: le regole esistono, sono poche, sono legge (fiscale, normativo, sicurezza). Fallisce: quando le regole diventano centinaia e cambiano.
Hai coppie ingresso → risposta giusta. Il modello impara la mappa. Classificazione (quale categoria) e regressione (quale numero).
Quando: hai lo storico con l'esito. È il cavallo di battaglia: churn, credito, prezzo, guasto, conversione. Fallisce: senza etichette pulite, o se il passato non somiglia al futuro.
Nessuna etichetta: il modello cerca gruppi (clustering), riduce dimensioni (PCA), individua anomalie.
Quando: segmentare clienti, scoprire pattern, trovare l'evento strano. Fallisce nella valutazione, perché non c'è un «giusto» contro cui misurarsi, e i gruppi belli possono non voler dire nulla.
Caso speciale del supervisionato in cui l'ordine è sacro: autocorrelazione, stagionalità, trend, deriva. ARIMA, ETS, spazio di stato, boosting con feature temporali.
Quando: domanda, consumi, carichi, traffico. Fallisce: appena tratti il tempo come una colonna qualsiasi (vedi cap. 07).
Nessun maestro: un agente agisce, riceve una ricompensa, aggiusta la strategia. Massimizza il premio cumulato, non l'accuratezza.
Quando: controllo, prezzi dinamici, logistica, gioco. Fallisce: se non hai un simulatore o non puoi sbagliare in produzione, e in azienda quasi mai puoi.
Non impara niente: calcola la scelta migliore dati obiettivo e vincoli. Programmazione lineare, MILP, euristiche, ricerca operativa.
Quando: turni, giri di consegna, taglio, mix produttivo, allocazione. È la metà del valore dei progetti «AI» e quasi nessuno la nomina.
Deep learning su segnali: immagini, audio, video. Impara rappresentazioni, non regole.
Quando: controllo qualità visivo, OCR, biometria, difetti. Fallisce: fuori dalle condizioni in cui è stato addestrato (luce, angolo, lente nuova).
Modella la distribuzione dei dati e ne campiona: testo, immagini, codice, audio. Gli LLM sono qui.
Quando: linguaggio, sintesi, estrazione, trasformazione, interfaccia. Fallisce: quando gli chiedi esattezza numerica, perché il suo obiettivo è la plausibilità, non la verità.
Un LLM che pianifica, chiama funzioni, legge il risultato, ricorre. È un'architettura che si appoggia al generativo, e sta un piano sopra all'apprendimento.
Quando: orchestrare e, punto centrale di questa risorsa, far calcolare il numero allo strumento giusto invece che al modello.
Le proporzioni vere Nel dibattito pubblico l'AI è tutta nell'ultimo ramo, quello nuovo. Nei bilanci aziendali il valore sta quasi tutto nei rami più vecchi e più noiosi: previsione tabellare, ottimizzazione, regole.
Due distinzioni ulteriori, perché è lì che nascono i malintesi più costosi.
Discriminativo contro generativo. Un modello discriminativo impara il confine tra le classi: dato il cliente, la probabilità che compri. Un modello generativo impara com'è fatta la distribuzione e sa produrre nuovi esemplari verosimili. Sembra un dettaglio filosofico, ed è invece la ragione tecnica per cui un LLM può scrivere una previsione bellissima e sbagliata senza il minimo disagio: sta facendo esattamente il suo mestiere, che è generare qualcosa di verosimile.
Ristretta contro generale. Tutto quello di cui parliamo qui è AI ristretta: un compito, un dominio, una metrica. L'AGI è un'altra conversazione, e non serve averne un'opinione per costruire un sistema che decide quanti pezzi ordinare a marzo. Anzi: nella mia esperienza, più una riunione parla di AGI, meno è probabile che finisca con qualcosa in produzione.
Gli LLM sono deterministici? Sì. Ed è proprio per questo che le risposte cambiano.
La frase suona come un paradosso ed è invece la descrizione precisa di cosa succede. Vale la pena capirla fino in fondo.
Dentro un LLM, quando gli fai una domanda, non c'è nessuna scintilla di casualità. C'è una sequenza di moltiplicazioni tra matrici, deterministica come una calcolatrice: stessi pesi, stesso input, stesso risultato. Alla fine di tutto questo calcolo il modello produce, per ogni singola parola che potrebbe venire dopo, un punteggio. Un vettore di decine di migliaia di numeri, uno per token. Questo vettore è sempre lo stesso, bit per bit, a parità di input e di condizioni di calcolo.
Poi succede la cosa importante: qualcuno deve scegliere una parola. E a scegliere ci pensa il codice che sta intorno al modello. È lì che entra il caso, per scelta di progetto, non per magia.
Da punteggi a probabilità: la softmax con temperatura
P(token i) = e zi / T / ∑j e zj / T
zi è il punteggio grezzo (logit) che il modello assegna al token i: deterministico. T è la temperatura, una manopola che decidi tu. Con T → 0 la probabilità si concentra tutta sul token con il punteggio più alto: la scelta diventa «prendi il massimo», e il sistema è riproducibile. Con T = 1 si campiona dalla distribuzione così com'è. Con T > 1 le differenze si appiattiscono e il modello diventa spericolato. La temperatura non aggiunge conoscenza: redistribuisce solo quanto sei disposto a scommettere sul secondo classificato.
La stessa domanda, dieci volte
Il modello ha già deciso i punteggi (fissi, a destra). Muovi la temperatura e guarda cosa esce dal campionamento. È la stessa matematica dell'equazione qui sopra, eseguita nel tuo browser.
Come leggerla A sinistra i punteggi del modello: non si muovono mai, sono la parte deterministica. A destra cosa hai ottenuto davvero facendo la stessa domanda dieci volte. A T=0 la colonna è una sola. Il modello non ha cambiato idea: hai cambiato tu il modo di estrarre la sua idea.
E allora perché con T=0 a volte cambia lo stesso? Perché la riproducibilità che ti immagini richiede che sia identico non solo il modello, ma tutto il resto. In pratica, sui servizi veri, non lo è quasi mai, per quattro motivi molto concreti:
1 · L'aritmetica non è associativa
In virgola mobile (a+b)+c non fa esattamente a+(b+c). La GPU somma in un ordine che dipende da come ha suddiviso il lavoro, e quell'ordine può cambiare. Sono differenze all'ultimo bit, che diventano una parola diversa se due token erano quasi a pari punteggio.
2 · Sei in coda con altri
Il servizio raggruppa le richieste in batch per efficienza: la tua finisce insieme a quelle di altri, e la dimensione del batch cambia il partizionamento dei calcoli, quindi gli arrotondamenti. Chi c'era in coda con te influenza il tuo ultimo bit. È la causa di non-determinismo più sottovalutata in assoluto.
3 · Il modello sotto non è fermo
Dietro un nome commerciale ci sono versioni, aggiornamenti, quantizzazioni diverse, hardware misto, e su architetture a esperti (MoE) l'instradamento può dipendere dal batch. Il «modello» a cui parli è un servizio, non un file.
4 · Il contesto non è mai lo stesso
Data odierna, cronologia, risultati di ricerca, ordine dei documenti recuperati: se cambia una virgola nel prompt effettivo, cambia il calcolo. Molte «allucinazioni intermittenti» sono semplicemente input diversi che nessuno ha loggato.
Il capriccio non c'entra: stai guardando un sistema numerico sensibile alle condizioni iniziali. È lo stesso identico fenomeno del capitolo sul caos, otto sezioni più avanti.
Cosa farne, in pratica. Se stai generando testo per una persona, la variabilità è un pregio. Se stai estraendo un numero che finisce in un database, la variabilità è un difetto e va progettata via: temperature=0, seed fisso quando il fornitore lo espone, versione del modello bloccata esplicitamente (mai il nome generico), output vincolato a uno schema. E poi la regola che non tratto: logga il prompt esatto e la versione esatta insieme al risultato. Senza quei due campi, tra sei mesi non potrai nemmeno dimostrare cosa aveva risposto il modello quando avete deciso.
E qui c'è la trappola che voglio lasciarti come idea forte del capitolo. Molti, per «stabilizzare» le risposte numeriche, mettono T=0 e si tranquillizzano. Ma una risposta stabile non è una risposta giusta: T=0 ti dà lo stesso errore, tutte le volte, con la stessa faccia sicura. Hai eliminato il rumore, non il bias. Anzi, hai perso l'unico segnale gratuito che avevi: la variabilità tra risposte è un indicatore, grezzo ma reale, di quanto il modello è incerto. Nel capitolo 19 lo trasformiamo in uno strumento di misura al posto di buttarlo via.
Predire, prevedere, ottimizzare: tre parole che il cliente usa come sinonimi e che sono tre progetti diversi.
Il novanta per cento dei disastri che ho visto nasce nella prima riunione, quando si scambia l'una per l'altra.
«Vorremmo prevedere le vendite.» Sembra una frase chiara. Non lo è. Dentro ci sono almeno tre richieste incompatibili, con tre matematiche diverse e tre modi diversi di essere sbagliate. Distinguerle è il primo atto architetturale del progetto, e si fa prima di scegliere qualunque tecnologia.
Predire · dato questo, cosa vale quello
Domanda: «Questo cliente, con queste caratteristiche, rinnoverà?» «Questo pezzo, con queste misure, è difettoso?» Non c'è nessun futuro dentro: c'è una mappa da caratteristiche a esito. Il tempo, se c'è, è una comodità.
Matematica: apprendimento supervisionato, f(x) → y. Ti serve uno storico con l'esito già noto.
Come sbaglia: l'esito che vuoi predire dipende da informazioni che al momento della decisione non avrai. È il leakage, ed è il killer numero uno (cap. 07).
Difficoltà reale: media. Se hai i dati, funziona quasi sempre.
Prevedere · cosa succederà nel tempo
Domanda: «Quanto venderò a marzo?» Qui il futuro c'è, ed è il problema: stai estrapolando oltre il bordo dei dati, in un mondo che nel frattempo cambia.
Matematica: serie storiche. L'ordine conta, l'autocorrelazione conta, la stagionalità conta, la deriva conta. Non puoi mescolare le righe: mescolarle è barare (cap. 09).
Come sbaglia: due modi. Barando nella validazione (ti fai passare informazione dal futuro) o pretendendo un orizzonte oltre il limite fisico del sistema (cap. 10).
Difficoltà reale: alta, e con un tetto invalicabile che non dipende da te.
Ottimizzare · cosa conviene fare
Domanda: «Quanto ne ordino?» «Chi mando dove?» «Che prezzo faccio?» Qui siamo davanti a una decisione sotto vincoli, dove la previsione al massimo fa da ingrediente.
Matematica: ricerca operativa, programmazione lineare/intera, euristiche. Spesso zero apprendimento.
Come sbaglia: ottimizzando la funzione sbagliata benissimo. Oppure lasciando che il modello ottimizzi cose che qualcuno dovrà poi difendere davanti a un cliente o a un giudice.
Difficoltà reale: la matematica è matura da sessant'anni. Il difficile è scrivere i vincoli veri, quelli che nessuno ti dice.
Il cliente chiede sempre di prevedere. Quasi sempre vuole ottimizzare. Quasi mai gli serve la previsione che ha chiesto, e quasi sempre gli serve quella che non sa di volere: la distribuzione, non il numero.
Ti faccio l'esempio che uso in aula, perché rende l'idea in trenta secondi. Un'azienda mi chiede un modello per «prevedere la domanda» di un ricambio. Facciamo il lavoro, portiamo l'errore medio dal 30% al 18%: risultato tecnicamente ottimo. Non cambia niente in magazzino. Perché? Perché quel ricambio, se manca, ferma un impianto del cliente: costa migliaia di euro l'ora. Se avanza, costa due euro di scaffale l'anno. Il rapporto tra i due errori è mille a uno, e quindi la decisione giusta non ha mai avuto bisogno di una previsione precisa: aveva bisogno di sapere quanto in alto stare nella coda della distribuzione. Con una previsione mediocre e la domanda giusta si decideva meglio che con una previsione eccellente e la domanda sbagliata.
Ecco il criterio che porto in ogni prima riunione, ed è la cosa più utile di questa sezione: non chiedere mai «cosa vuoi prevedere», chiedi «quale decisione cambia in base al numero, e cosa succede se sbagliamo per eccesso invece che per difetto». Se la risposta è «nessuna decisione, è per un cruscotto», il progetto giusto non è AI: è un grafico. Se la risposta è «per eccesso perdiamo 2 euro, per difetto ne perdiamo 2.000», hai appena scoperto che non ti serve una previsione, ti serve un quantile, e nel capitolo 13 ti mostro l'equazione, di una riga, che ti dice esattamente quale.
parte seconda
Come una macchina impara dai dati
Cinque capitoli di sostanza: la matematica minima che serve davvero, il compromesso che decide ogni progetto, gli algoritmi con il criterio per sceglierli, e il punto in cui si vince o si perde per davvero.
«Imparare», per una macchina, vuol dire scendere una collina al buio.
Non c'è comprensione, non c'è intuizione. C'è una superficie di errore e un modo di scendere. Tutto il resto è dettaglio implementativo.
Tolta la mitologia, l'apprendimento automatico è una procedura in tre atti che si ripete uguale dal 1805 a oggi. Sì, 1805: i minimi quadrati di Legendre e Gauss, usati per prevedere l'orbita di un asteroide, sono già machine learning con un altro nome. Gli atti sono questi: scegli una famiglia di funzioni, definisci quanto ti fa male sbagliare, cerca dentro la famiglia la funzione che ti fa male di meno. Fine. Un GPT da mille miliardi di parametri fa esattamente questo, con una famiglia più grande e una collina più accidentata.
Atto secondo: la funzione di costo
L(θ) = (1/n) ∑i=1n ℓ ( f(xi ; θ) , yi )
θ sono i parametri, cioè le manopole che il modello può girare: due in una retta, 175 miliardi in un LLM. f(x;θ) è la previsione del modello sull'esempio i. yi è la risposta giusta. ℓ è quanto costa quello specifico sbaglio, ed è una tua scelta, non un dato di natura: ℓ=(f−y)² punisce brutalmente gli errori grandi e ti dà la media; ℓ=|f−y| li tratta in modo equo e ti dà la mediana; la pinball loss del capitolo 12 li punisce in modo asimmetrico e ti dà il quantile che ti serve. La funzione di costo è il punto in cui i tuoi soldi entrano nella matematica: quasi nessuno la tocca, ed è la leva più potente di tutte.
Atto terzo: la discesa del gradiente
θt+1 = θt − η ⋅ ∇L(θt)
∇L è il gradiente: il vettore che dice, per ogni manopola, in che direzione l'errore cresce di più. Metterci il meno davanti vuol dire andare in discesa. η è il passo (learning rate): troppo piccolo e non arrivi mai, troppo grande e scavalchi la valle rimbalzando all'infinito. Questa riga, ripetuta miliardi di volte su schede grafiche che costano quanto un appartamento, è l'addestramento di ogni rete neurale esistente. Non c'è altro. Il fatto che da qui esca qualcosa che scrive poesie resta, onestamente, sorprendente anche per chi ci lavora.
La collina al buio L'algoritmo non vede il paesaggio: sente solo la pendenza sotto i piedi e fa un passo in giù. Per questo si ferma nella prima conca decente, non nella più profonda. In dimensione altissima, però, le conche pessime sono rarissime: quasi tutti i punti «piatti» sono selle da cui si esce. È il motivo, controintuitivo, per cui il deep learning funziona.
Cosa cambia davvero tra un modello e l'altro, allora? Cambia l'atto primo: la famiglia di funzioni dentro cui cerchi. Una retta è una famiglia povera: qualsiasi cosa tu faccia, resta una retta. Un albero di decisione è una famiglia di scalini. Una rete profonda è una famiglia sterminata, capace di approssimare qualsiasi funzione continua (è un teorema, e come tutti i teoremi di esistenza non ti dice affatto che riuscirai a trovarla). Più la famiglia è ricca, più cose puoi rappresentare, e più facilmente rappresenterai anche le fesserie: è esattamente il tema del prossimo capitolo, ed è il compromesso centrale di tutto il mestiere.
Un'ultima cosa, sull'«imparare» come parola. Il modello non impara il fenomeno: impara la distribuzione congiunta dei dati che gli hai dato. Se nei tuoi dati storici i preventivi grandi li firmava sempre il commerciale più bravo, il modello imparerà che «commerciale bravo → preventivo firmato» e ti dirà di mandare lui dappertutto. Non ha capito niente della vendita: ha visto una correlazione e l'ha presa sul serio, perché è l'unica cosa che sa fare. Tutta la disciplina che segue (validazione, backtest, guardrail) esiste per compensare questo singolo fatto.
Il compromesso che decide tutto: il modello perfetto sullo storico è quello che ti tradirà.
È una legge, non un consiglio. E si dimostra in tre righe.
Torniamo alla demo che hai visto in cima alla pagina. Due modelli, stessi dati. Il primo passa esattamente per ogni punto: errore sullo storico quasi zero. Il secondo ne manca parecchi. Poi arriva il futuro, e il primo esce dal grafico. Questo non capita per caso. È una scomposizione algebrica esatta dell'errore che ti aspetti su un dato mai visto, e vale per qualunque modello, dalla retta a GPT.
La scomposizione dell'errore atteso
E[(y − f̂(x))²] = Bias[f̂]² + Var[f̂] + σ²
Bias²: quanto il tuo modello è strutturalmente incapace di rappresentare il fenomeno. Una retta su una stagionalità ha bias alto e nessuna quantità di dati lo abbassa. Var: quanto la tua funzione stimata ballerebbe se ti dessero un altro campione dello stesso fenomeno. Un polinomio di grado 12 su 24 punti ha varianza enorme: cambia tre punti e ti esce una curva completamente diversa. σ²: il rumore irriducibile. È il pezzo di realtà che non è spiegabile da nessun dato che possiedi: l'influenza del cliente, il camion in panne, la promozione del concorrente decisa ieri sera. σ² è il pavimento: nessun modello, nessun budget, nessuna GPU lo attraversa. Mai.
Rileggi l'ultima frase, perché è la cosa più commercialmente utile di questa risorsa. Quando un fornitore ti promette il 95% di accuratezza su un fenomeno che ha un σ² alto, non sta essendo ottimista: sta descrivendo una violazione dell'algebra. O ha barato nella validazione (cap. 07), o sta misurando un'altra cosa, o non sa quello che dice. Non ci sono altre possibilità. Ed è una domanda che puoi fare in riunione senza essere un tecnico: «qual è secondo voi il rumore irriducibile di questo fenomeno, e come l'avete stimato?». La qualità della risposta ti dice tutto quello che ti serve sapere sull'interlocutore.
Il grafico qui sotto è la demo che rende visibile il compromesso. Muovi la complessità del modello e guarda le due curve muoversi in direzioni opposte: l'errore sullo storico scende sempre, quello sul futuro scende, tocca il fondo, e poi risale. Il punto giusto non è dove il modello è più bravo. È dove la somma è minima, e per trovarlo devi guardare dati che il modello non ha mai visto. Non c'è nessun altro modo. Nessuno.
La U che nessuno guarda
Stesso dataset, complessità crescente. La curva verde è quello che vedi in fase di sviluppo. La curva rossa è quello che vedrà il cliente.
Da provare Porta il rumore a zero: l'overfitting sparisce, il grado ottimo schizza al massimo e conviene il modello più complesso che hai, perché non c'è rumore da memorizzare, e ogni curva in più cattura solo segnale. Poi alza σ: l'ottimo precipita a cinque o meno. Più il mondo è rumoroso, più il modello giusto è stupido. È l'esatto contrario di quello che suggerisce l'istinto, ed è il motivo per cui sui dati aziendali veri una regressione ben fatta batte una rete neurale otto volte su dieci.
Come si combatte, davvero. Quattro armi, in ordine di efficacia reale sul campo.
- Più dati. Abbassano la varianza senza toccare il bias, ed è per questo che i modelli enormi funzionano: più esempi vedono, meno prendono una coincidenza per segnale.
- Regolarizzazione. Aggiungi alla loss un termine che penalizza i parametri grandi (L + λ‖θ‖²). Stai dicendo al modello: puoi curvare, ma ti costa.
- Validazione onesta. Tenere dati chiusi in un cassetto e non guardarli mai finché non hai finito.
- Meno feature. Ogni colonna che aggiungi è un'occasione in più di trovare una coincidenza.
Il doppio discendente, per onestà: sui modelli giganteschi la U ha una seconda discesa dopo il picco. È vero, è studiato, ed è irrilevante per te: vale in regimi di sovraparametrizzazione estrema che non hai sui tuoi ventimila record.
Chiudo con il consiglio più pratico che ho. Quando un modello ti dà un risultato bellissimo al primo colpo, non festeggiare: cerca l'errore. In ventisei anni, un risultato splendido ottenuto subito è stato un errore nel novanta per cento dei casi, quasi sempre il leakage del capitolo 07. Il modello che funziona davvero, di solito, all'inizio funziona così così.
Gli algoritmi, e il criterio vero per sceglierli.
Non «qual è il migliore». Non esiste, ed è un teorema (No Free Lunch). Esiste quale è adatto al tuo vincolo.
Sotto trovi la tabella che ho in testa quando entro in un progetto. Le colonne le ho scelte guardando cosa fa vivere un progetto, non cosa vince un benchmark. Dati necessari, perché il modello più bravo è inutile se ti servono cento volte i record che hai. Interpretabilità, perché in un mondo di crediti, sanità, assicurazioni e adesso AI Act, «non so perché ha detto no» è una risposta che può costarti l'attività. Costo, in addestramento e in inferenza, che è la voce di bolletta che nessuno mette nel preventivo. E soprattutto dove tradisce: perché ogni algoritmo ha un modo tipico di rovinarti la giornata, e conoscerlo in anticipo vale più di due punti di accuratezza.
| Algoritmo | Dati che vuole | Interpretabile | Costo | Dove brilla · dove tradisce |
|---|---|---|---|---|
| Regressione lineare / logistica | poche centinaia | totale | Brilla: relazioni lineari, baseline obbligatoria, quando devi difendere il coefficiente in tribunale. Tradisce: con interazioni e non linearità, che tocca scriverti a mano. | |
| Albero di decisione | poche migliaia | totale | Brilla: regole leggibili, lo mostri al direttore e capisce. Tradisce: instabile: sposti tre record e ti cambia tutto l'albero. Da solo, quasi mai. | |
| Random forest | migliaia | parziale | Brilla: robustissimo, quasi zero tuning, ottimo secondo posto sempre. Tradisce: non estrapola oltre il range visto. Su un trend crescente ti dà una linea piatta. | |
| Gradient boosting (XGBoost, LightGBM, CatBoost) | migliaia | parziale (+SHAP) | Brilla: è il vincitore sui dati tabellari, batte ancora il deep learning nella maggior parte dei casi reali. Il default onesto. Tradisce: non estrapola, e adora il leakage. | |
| SVM | centinaia–migliaia | scarsa | Brilla: pochi dati e tante colonne (testo, biologia). Tradisce: scala male oltre le decine di migliaia di righe. Oggi è di nicchia. | |
| kNN | migliaia | per esempi | Brilla: «i tre casi più simili al tuo», spiegazione naturale. È il nonno della ricerca vettoriale. Tradisce: in alta dimensione «vicino» perde significato, e il costo è tutto a runtime. | |
| k-means / clustering | migliaia | parziale | Brilla: segmentazione, esplorazione, «quanti tipi di cliente ho». Tradisce: ti dà sempre k gruppi, anche se non esistono. La bellezza del grafico non è una validazione. | |
| PCA / riduzione | qualsiasi | scarsa | Brilla: comprimere colonne correlate, visualizzare, denoise. Tradisce: le componenti non vogliono dire niente per un umano, e ci perdi la spiegabilità. | |
| ARIMA / ETS | 50+ periodi | buona | Brilla: serie singole con trend e stagionalità stabili, intervalli statistici gratis. Tradisce: con rotture strutturali e regressori esterni. Ma resta un baseline che umilia il 40% dei progetti «AI». | |
| Reti neurali profonde | decine di migliaia+ | nessuna | Brilla: segnali non strutturati: immagini, audio, testo, sequenze lunghe. Lì non ha rivali. Tradisce: sulle tabelle aziendali, dove costa dieci volte tanto per fare peggio del boosting. |
Se dovessi tenere una riga sola: sui dati tabellari, gradient boosting. Sui segnali, deep learning. Sulle serie corte, ETS. E sempre, prima di tutto, il baseline stupido.
Il baseline stupido è il vero protagonista di questo capitolo, e nessuno gliene dà atto. È la previsione «domani come oggi» (naïve), o «come lo stesso mese dell'anno scorso» (naïve stagionale), o «la media degli ultimi tre». Non ha parametri, si scrive in una riga, gira in un microsecondo. Se il tuo modello da centomila euro non lo batte in modo netto e ripetuto, il tuo modello non esiste. Ho visto progetti da sei mesi chiudersi con questa singola frase, e in almeno due casi l'ho detta io, gratis, alla prima riunione. Chiedilo sempre, prima di firmare qualunque cosa: «qual è il baseline, e di quanto lo battiamo?». Se la risposta è imbarazzata, hai risparmiato un anno.
Sul No Free Lunch, visto che l'ho citato: Wolpert ha dimostrato che, mediando su tutti i problemi possibili, tutti gli algoritmi vanno uguale. In pratica serve a poco, perché i tuoi problemi hanno una struttura e non escono a caso dall'universo. Il corollario però è utilissimo: ogni algoritmo che funziona bene funziona perché ha un pregiudizio azzeccato sul tuo tipo di dati. Gli alberi presumono che il mondo sia a scalini. La regressione che sia liscio. Le reti convoluzionali che le cose vicine nello spazio siano correlate. Scegliere un algoritmo è scegliere un pregiudizio. Fallo consapevolmente e avrai già fatto metà del lavoro di un data scientist serio.
Le feature sono il modello. E il leakage è il modo numero uno in cui muoiono i progetti.
Un modello mediocre su feature ottime batte sempre un modello ottimo su feature mediocri. Sempre.
Un modello non vede il tuo business: vede una matrice di numeri. Tutto quello che sa del mondo è passato dalle colonne che gli hai preparato. Per questo il feature engineering, costruire quelle colonne, è il lavoro dove si vince, ed è un lavoro da gente che conosce il dominio molto più che da statistici. La colonna «giorni dall'ultimo ordine» vale, su un problema di churn, più di sei mesi di tuning. La colonna «è il mese di chiusura del bilancio del cliente» vale più di una rete neurale. Nessun algoritmo scoprirà mai queste cose da solo, perché nei dati non ci sono. Stanno nella testa di chi lavora lì da vent'anni. Il novanta per cento del valore di un data scientist bravo è saper fare le domande giuste a quella persona.
E poi c'è il leakage. Il data leakage è quando nelle feature entra, anche indirettamente, un'informazione che al momento della decisione non avrai. Il modello la usa, il punteggio in validazione diventa splendido, tutti sono felici, il progetto viene approvato. Poi va in produzione e crolla, e nessuno capisce perché. È l'errore più frequente, più costoso e più subdolo di tutto il campo, e l'unico sintomo è che va troppo bene.
Leakage dal futuro
La feature «numero di solleciti inviati» per predire l'insoluto. Certo che funziona: i solleciti li mandi dopo che il cliente non ha pagato. Il modello ha imparato a leggere il passato scambiandolo per profezia.
Leakage nella preparazione
Normalizzi, riempi i buchi o selezioni le feature prima di dividere in train e test, usando media e deviazione di tutto il dataset. Hai appena fatto filtrare nel training una statistica calcolata anche sui dati di test. Sottile, e capace di rovinare tutto senza farsi notare.
Leakage per duplicati
Lo stesso cliente compare in venti righe; alcune finiscono in train, altre in test. Il modello non generalizza: ricorda. Va diviso per entità (per cliente, per macchina, per impianto), non per riga.
Leakage temporale
Il più comune di tutti: mescoli le righe a caso e fai cross-validation. Così alleni su marzo per predire gennaio. In produzione, purtroppo, marzo non ce l'hai. È la demo qui sotto.
Come si fabbrica un modello «eccellente» che non funziona
Stessa serie, stesso modello, stessa metrica. Cambia solo come dividi i dati per validare. Il primo modo è quello che trovi in metà dei tutorial.
Perché fa così male Nel k-fold casuale il modello, per indovinare marzo, ha in mano febbraio e aprile. Su una serie autocorrelata, indovinare un punto stando in mezzo ai suoi vicini è quasi barare: interpolare è facile, estrapolare no. Il numero che porti in riunione è vero, la procedura che l'ha prodotto è finta.
La regola, e non ha eccezioni: il modello non deve mai vedere un dato che, nel momento in cui deciderà davvero, non esisterà ancora.
Come si evita, concretamente. Per ogni feature, poniti una domanda sola e in forma brutale: «questo valore, alle 9 di lunedì mattina, quando devo decidere, ce l'ho già in mano, con questo esatto valore?». Se la risposta è «beh, quasi», è no. Se è «sì ma viene caricato a fine mese», è no. Se è «sì ma viene corretto a posteriori», e questa è la più cattiva, perché nel database sembra esserci: è comunque no. Le anagrafiche corrette retroattivamente sono un leakage silenzioso che ho visto avvelenare interi progetti senza che nessuno se ne accorgesse per un anno.
La contromisura strutturale, per chi vuole farlo bene: un feature store con validità temporale, cioè registrare non solo il valore, ma da quale istante quel valore era conoscibile, e ricostruire il training «come si vedeva allora» (point-in-time correctness). È lavoro serio da fare una volta, e trasforma la domanda «stiamo barando?» da opinione a query. Se lavori su dati che valgono soldi, è la singola infrastruttura che consiglio prima di qualunque modello.
Che lavoro è, davvero, la data science.
Molto meno modelli, molto più decidere cosa stiamo misurando. E la parte che tutti saltano è l'ultima.
Il ciclo canonico è quello del CRISP-DM del 1999, e va bene, ma la versione onesta, quella con le proporzioni vere, è questa. Te la do con le percentuali di tempo che vedo nei progetti reali, non in quelli raccontati alle conferenze.
Le proporzioni vere Il 10% di modellazione è realistico e non è un'esagerazione retorica: le librerie hanno reso quel pezzo una commodity. Il valore si è spostato a monte (definire) e a valle (sorvegliare). Chi vende «AI» e parla solo del blocco centrale, ti sta vendendo il 10% del problema.
Il target è il vero progetto. Un esempio che mi porto dietro. «Prevedere i clienti che ci lasciano.» Benissimo: cos'è un cliente che ci ha lasciato? Chi disdice formalmente? Chi non ordina da 90 giorni? Da 180? Chi ha ridotto del 70% ma è ancora lì? A seconda della definizione ottieni dataset diversi, modelli diversi, azioni diverse e ROI diversi. Ho visto due team della stessa azienda costruire due modelli di churn che davano risposte opposte sugli stessi clienti: entrambi corretti, definizioni diverse. Quel giorno il problema non era statistico. Era che nessuno aveva scritto una frase in italiano.
C'è poi una cosa che ai clienti dico sempre, e che nessuna metodologia mette in diagramma: lo scopo di un progetto di data science è una decisione presa diversamente, e il modello è solo il mezzo per arrivarci. Se alla fine del progetto tutti decidono esattamente come prima, il progetto è fallito anche se il modello è splendido e il notebook è bellissimo. Per questo la mia prima domanda non è mai sui dati. È: «quando il modello dirà un numero che non vi piace, chi ha l'autorità di seguirlo lo stesso?». Se non c'è quella persona, non serve costruire niente: state comprando un oggetto decorativo.
E l'ultima parte, sorvegliare, non è manutenzione. È il progetto. Un modello è l'unica cosa che compri che si guasta stando ferma.
Perché si guasta stando ferma? Perché il mondo si muove sotto di lui. Si chiama drift e ha due sapori: cambia la distribuzione degli ingressi (data drift: ti sono arrivati clienti di un altro tipo), oppure cambia la relazione stessa tra ingressi ed esito (concept drift: gli stessi clienti si comportano diversamente perché è cambiato il mercato, un concorrente, una legge). Il modello continua a rispondere con la stessa sicurezza di sempre. Non ha nessun modo di dirti che il mondo che aveva imparato non c'è più: l'unica cosa che può accorgersene sei tu, se hai messo in piedi la misura. Un modello senza monitoraggio diventa un debito che matura in silenzio.
parte terza
Il tempo, il caos e i sistemi enormi
Qui si risponde alle due domande che mi fanno sempre: le previsioni funzionano davvero? E i sistemi giganteschi come il meteo e le borse si possono prevedere? Le risposte sono più interessanti di un sì o di un no.
Quando c'è il tempo, quasi tutto quello che sai di ML diventa pericoloso.
Le righe non sono intercambiabili, non sono indipendenti, e non arrivano dallo stesso mondo. Tre assunzioni saltate in un colpo.
Il machine learning standard poggia su un'ipotesi che si scrive in una sigla, i.i.d.: gli esempi sono indipendenti e vengono tutti dalla stessa distribuzione. Su una serie storica sono false entrambe, e non per un dettaglio: per costruzione. Le vendite di marzo somigliano a quelle di febbraio (non indipendenti). Il mercato del 2019 non è quello del 2024 (non identicamente distribuite). Applicare gli strumenti standard senza accorgersene è il motivo per cui tanti progetti di forecasting hanno metriche splendide e risultati nulli.
Le quattro strutture con cui devi fare i conti, in ordine di quanto contano nei dati aziendali veri:
Stagionalità · quasi sempre la parte più grande
Cicli che si ripetono: ora del giorno, giorno della settimana, mese, campagna. Nei dati commerciali italiani spiega spessissimo più della metà della varianza. Attenzione ai calendari veri: agosto, festività mobili, giorni lavorativi del mese, Pasqua che si sposta. Una colonna «numero di sabati nel mese» ha risolto più problemi di molte reti neurali.
Autocorrelazione · l'inerzia
Il valore di oggi somiglia a quello di ieri. È il motivo per cui il baseline naïve è così duro da battere, e il motivo per cui la cross-validation casuale mente (cap. 07). Si guarda con ACF e PACF, e ti dice quanta memoria ha il fenomeno.
Trend e deriva · il piano che si inclina
Non solo crescita: cambi di livello. Un nuovo contratto, un listino, un capannone. Il modello impara la pendenza vecchia e continua a proiettarla con serena fiducia mentre il mondo ha già svoltato.
Rotture · il giorno in cui il passato smette di valere
Un lockdown, un'acquisizione, un concorrente che chiude. Nessun modello lo prevede: è informazione che non era nei dati, ma un sistema serio se ne accorge in fretta e alza la mano. La differenza tra dilettante e professionista sta tutta in cosa succede il giorno dopo la rottura.
La regola d'oro del backtest. Valutare un modello temporale ha un solo modo corretto, e si chiama walk-forward (o origine mobile): ti metti in un istante t del passato, fingi di non sapere nulla dopo t, prevedi, avanzi, ripeti. Ti stai rigiocando la storia come si è vissuta, non come si legge oggi. Aggiungi, se sei serio, un intervallo di guardia tra fine training e inizio test (embargo), perché anche l'ultimo dato di training «tocca» il primo di test attraverso l'autocorrelazione.
C'è poi un pezzo di onestà intellettuale che pochissimi mettono in pratica, e che ti consiglio di pretendere: l'orizzonte di valutazione deve essere l'orizzonte della decisione. Se ordini con sei settimane di anticipo, non ti serve sapere l'errore a una settimana: quello è bellissimo e inutile. Ti serve l'errore a sei settimane, misurato prevedendo a sei settimane, ogni settimana, per due anni. È molto meno lusinghiero. Ed è l'unico numero che descrive quello che ti succederà davvero.
Un backtest è un esperimento di storia controfattuale. Se in quell'esperimento ti lasci sfuggire una sola informazione dal futuro, non stai misurando un modello: stai misurando la tua distrazione.
Fin dove si può vedere: il muro che nessuna GPU abbatterà mai.
Il limite alla previsione meteo non è la potenza di calcolo. È un teorema del 1963, e vale anche per la tua azienda.
Nel 1961 Edward Lorenz stava rifacendo girare una simulazione meteorologica. Per risparmiare tempo la riprese da metà, digitando i numeri dal tabulato: 0,506 invece di 0,506127. Una differenza di una parte su diecimila, molto più piccola di qualunque errore di misura reale. La simulazione, dopo poco, produsse un meteo completamente diverso. Non un po' diverso: un altro. Lorenz aveva appena scoperto, per sbaglio, la proprietà che governa il confine di tutta questa disciplina.
I sistemi caotici sono perfettamente deterministici (le equazioni sono note, non c'è nessun caso dentro) eppure restano impredicibili oltre un certo orizzonte. Le due cose convivono benissimo, e il motivo è che gli errori non restano piccoli, crescono in modo esponenziale.
La crescita dell'errore e l'orizzonte di prevedibilità
δ(t) ≈ δ0 ⋅ e λt ⟶ Tmax ≈ (1/λ) ⋅ ln(Δ / δ0)
δ0 è l'incertezza iniziale (mai zero: i termometri hanno una precisione finita, il tuo gestionale pure). λ è l'esponente di Lyapunov, la velocità con cui due storie quasi identiche divergono: è una proprietà fisica del sistema, non tua. Δ è l'errore che rende la previsione inutile. Guarda dov'è finito il tuo sforzo: dentro un logaritmo. Per raddoppiare l'orizzonte utile non ti serve una misura doppiamente precisa: te ne serve una esponenzialmente più precisa. Per l'atmosfera, λ vale grosso modo 1/(1,5 giorni): ecco perché mezzo secolo di supercomputer ci ha portati da 3 a circa 10 giorni utili, e non a 300. È aritmetica, prima ancora che ingegneria.
Due mondi identici a meno di un milionesimo
Stesse equazioni (Lorenz, 1963), stessa fisica, nessun caso. Cambio solo la sesta cifra decimale della condizione iniziale. Le due traiettorie sono integrate in tempo reale nel tuo browser.
La cosa da provare assolutamente Sposta la precisione da 10⁻² a 10⁻¹⁰: hai migliorato la misura di cento milioni di volte e l'orizzonte utile fa poco più che raddoppiare. Poi premi «ensemble»: invece di una previsione, trenta mondi leggermente diversi. Finché restano insieme, puoi fidarti. Quando si aprono a ventaglio, il ventaglio è la previsione, ed è quello che i meteorologi ti dicono da trent'anni quando scrivono «70% di probabilità di pioggia».
E allora perché il meteo funziona? Perché ha fatto una cosa intelligentissima: ha smesso di prevedere il futuro e ha iniziato a prevederne la distribuzione. L'ECMWF non gira un modello: ne gira cinquantuno, ognuno con perturbazioni diverse delle condizioni iniziali e della fisica. Se i cinquantuno restano vicini, la previsione è affidabile e te lo dicono. Se si sparpagliano, è incerta e te lo dicono lo stesso: quel «70%» è un'informazione misurata e verificabile, altro che scusa preventiva. Le previsioni meteo sono, e lo dico con invidia professionale, il sistema previsionale meglio calibrato e più onestamente valutato che l'umanità abbia costruito: la previsione a 5 giorni di oggi è accurata come quella a 1 giorno degli anni Ottanta, e ogni singola previsione emessa viene verificata contro l'osservato. Nessun reparto commerciale che conosco fa nulla di lontanamente simile.
Cosa c'entra con te. Tutto. Anche la tua domanda commerciale è un sistema con un λ, solo che non l'hai mai stimato. Il modo per stimarlo empiricamente è alla portata di chiunque abbia due anni di storico: fai walk-forward e traccia l'errore in funzione dell'orizzonte. Vedrai una curva che sale e poi si appiattisce su un plateau. Quel plateau è l'errore che avresti indovinando la media: è il punto in cui il tuo modello ha smesso di sapere qualcosa. Se sta a otto settimane, prevedere a sei mesi è un esercizio di scrittura creativa, e nessun fornitore, nessun budget, nessun LLM sposterà quel punto, perché non è una proprietà del modello. È una proprietà del tuo mercato.
Il pregio di conoscere il proprio orizzonte non è la rassegnazione. È che sotto quel numero puoi finalmente investire con criterio, e sopra puoi smettere di buttare soldi.
Meteo sì, borsa no. E il motivo non è che la borsa è più complicata.
L'atmosfera non legge le previsioni del tempo. I mercati sì. È tutta qui la differenza.
Questa distinzione è la più elegante del campo e quasi nessuno la fa. Il meteo è un sistema caotico ma indifferente: puoi prevederlo quanto ti pare, all'atmosfera non interessa e non cambia comportamento. Il mercato è un sistema riflessivo: se scopri un modo affidabile di prevederlo, lo usi; usandolo, compri; comprando, muovi il prezzo; muovendo il prezzo, distruggi il pattern che avevi trovato. La prevedibilità dei mercati si autodivora. Siamo davanti a un punto fisso economico, e la tecnica non c'entra.
Da qui l'ipotesi dei mercati efficienti nella sua forma utile (non quella da manuale): tutta l'informazione pubblicamente disponibile è già dentro il prezzo, perché migliaia di persone molto attrezzate sono pagate per metterla lì entro pochi millisecondi. Ne segue che la variazione futura del prezzo è, in prima approssimazione, imprevedibile: assomiglia a una passeggiata aleatoria. Non perché sia casuale in senso metafisico, ma perché tutto ciò che era prevedibile è già stato prevenuto.
E qui c'è la trappola cognitiva più costosa che esista, e voglio fartela sentire addosso invece che raccontartela. Sotto ci sono sei grafici. Tre sono andamenti reali di un titolo, tre sono rumore puro generato adesso dal tuo browser con un generatore di numeri casuali. Prova a distinguerli. Prenditi il tempo che vuoi: ci vedrai testa-e-spalle, supporti, breakout, trend. Il tuo cervello è una macchina straordinaria per trovare pattern, ed è tarata per trovarne anche dove non ce n'è nessuno, perché per centomila anni scambiare un cespuglio per una tigre è costato molto meno che il contrario.
Tre sono veri. Tre sono rumore. Quali?
Clicca i tre che secondo te sono «mercato vero». Poi scopri le carte. Nessuna fretta: l'esperimento funziona meglio se ci provi sul serio.
Suggerimento: non c'è un trucco visivo. È il punto.
Onestà sulla demo I «veri» sono generati da un modello a volatilità variabile calibrato su statistiche di mercato reali (code grasse e raggruppamento della volatilità), i «falsi» da una passeggiata gaussiana. Sono simulazioni, non serie storiche scaricate, perché quello che conta qui è una cosa sola: a occhio la differenza non si vede. Chi indovina, in media, prende 1,5 su 3. Esattamente come tirando a caso.
Adesso la parte che ribalta il capitolo, e che rende questo tema molto meno nichilista di come lo si racconta. Dire «la borsa è imprevedibile» è impreciso in un modo importante. Non è prevedibile il livello. È prevedibilissima la volatilità. Se ieri il mercato ha sbandato, oggi sbanderà: i periodi turbolenti si raggruppano, i periodi calmi anche. Questo fatto, il volatility clustering, è stabile e misurabile, e si modella con i GARCH. È valso il Nobel a Engle nel 2003, e su di esso è costruita l'intera industria della gestione del rischio e delle opzioni. Quindi: non sai se il prezzo salirà, ma sai quanto sarà mosso il mare. E il secondo dato, per chi deve dimensionare un rischio, vale più del primo.
La lezione generale, quella che porto fuori dalla finanza e uso ovunque, è questa: quando la media è imprevedibile, spesso la dispersione non lo è. È esattamente ciò che serve per decidere. Un magazzino non ha bisogno di sapere la domanda esatta: ha bisogno di sapere quanto può sbagliare. Un piano di assunzioni non ha bisogno del fatturato preciso: ha bisogno dello scenario cattivo. Le domande sulla distribuzione hanno risposta molto più spesso delle domande sul numero, e sono anche quelle che servono davvero.
Chiudo con il criterio da mettere in tasca. Prima di iniziare qualunque progetto previsionale, chiediti dove sta il tuo fenomeno tra questi tre: indifferente (guasti di macchinari, consumi, meteo, dove nessuno reagisce alle tue previsioni, quindi prevedibile fino al suo λ); debolmente riflessivo (domanda commerciale: le tue previsioni muovono i tuoi ordini, i tuoi ordini muovono un po' il mercato, e la promozione che fai perché prevedi poco vende cambia quanto venderai); fortemente riflessivo (mercati finanziari, aste competitive: chiunque scopra qualcosa lo cancella usandolo). Sono tre mestieri con tre aspettative diverse. Prometterne uno mentre se ne fa un altro è, nella mia esperienza, il modo più comune di essere in perfetta buona fede e completamente fuori strada.
Una previsione senza incertezza non è una previsione. È un'opinione ben vestita.
Se dai un numero solo, hai buttato via il 90% dell'informazione, e tutta quella che serviva per decidere.
«A marzo venderemo 1.240 pezzi.» Falso, garantito: non ne venderai 1.240. La previsione utile è un'altra: «a marzo venderemo tra 980 e 1.520 con probabilità 80%, e la mediana è 1.240». La seconda contiene la prima e in più contiene tutto quello che serve per decidere: quanto scorta tenere, quanto rischio corri, quando alzare la mano. La prima è un numero da mettere in una slide.
E c'è un motivo tecnico, non estetico, per cui il numero singolo è pericoloso. Se il tuo modello minimizza l'errore quadratico, quello che ti restituisce è la media condizionata. La media, su una distribuzione asimmetrica come sono quasi tutte le domande commerciali (limitate a zero sotto, con una coda lunga sopra), è una quantità che non descrive nessuno scenario realmente probabile. È il valore atteso di una lotteria, non l'esito della lotteria. Nessuno ordina «il valore atteso» di pezzi.
Come si insegna a un modello a darti un quantile: la pinball loss
ρτ(u) = u ⋅ (τ − 1[u < 0]) con u = y − ŷ
Leggila così: se sottostimi (u>0) paghi τ per ogni unità di errore; se sovrastimi paghi (1−τ). Con τ=0,5 i due costi sono uguali e ottieni la mediana. Con τ=0,9 sottostimare costa nove volte più che sovrastimare: per minimizzare, il modello impara a stare alto, e ti restituisce il 90° percentile. È una riga di codice e cambia tutto: invece di prevedere e poi aggiungere un margine di sicurezza a occhio, insegni al modello quale margine è ottimo. Alleni lo stesso modello con τ = 0,1 / 0,5 / 0,9 e hai il ventaglio.
Il ventaglio, e la verifica che quasi nessuno fa
Il modello dichiara una banda all'80%. La domanda seria non è «è bella?», è: su cento futuri, quanti ci cascano dentro davvero? Qui li simulo e li conto.
La riga che nessuno scrive Un modello è calibrato se, quando dice 80%, ci prende l'80% delle volte. Stringi la banda al 40% della larghezza corretta: il grafico diventa molto più bello e molto più bugiardo. È esattamente il modello che il tuo fornitore ti fa vedere in demo, ed è la ragione per cui la banda va verificata, non ammirata.
Gli strumenti, in ordine di quanto li uso.
- Quantile regression (la pinball qui sopra): semplice, diretta, funziona con qualunque boosting.
- Conformal prediction, la cosa più elegante degli ultimi anni. Prendi il tuo modello, qualunque esso sia, guardi come ha sbagliato su un pezzo di dati che non ha mai visto, e ne ricavi un intervallo con una garanzia di copertura dimostrata, senza ipotesi sulla distribuzione. Funziona anche sopra un LLM, e nel capitolo 21 fa da spina dorsale al guardrail.
- Ensemble. Fai girare più modelli: il loro disaccordo è una misura d'incertezza gratuita. È il meteo del capitolo 10.
- Simulazione. Quando la decisione è complicata, campiona mille futuri e valuta la decisione su tutti.
Un cenno alla metrica giusta, perché è la domanda che ricevo sempre dopo. Per valutare una previsione a distribuzione non usi MAE o RMSE: sono metriche per numeri singoli. Usi CRPS (Continuous Ranked Probability Score) o la pinball media. Hanno una proprietà che si chiama propriety: sono costruite in modo che il modo migliore per prendere un buon punteggio sia dire onestamente cosa credi. Non esiste una strategia furba per barare. È una proprietà matematica di cui avrei voluto una versione anche per le riunioni.
La domanda che separa un fornitore serio da un venditore è una sola, e dura cinque secondi: «la vostra banda all'80%, negli ultimi due anni di backtest, ha coperto l'80% dei casi? Fatemi vedere il conteggio.» Non l'ho mai vista fare. Non ho mai visto neanche una risposta pronta.
parte quarta
Dove la previsione diventa soldi
Tre capitoli sul punto in cui tutto questo tocca terra: la decisione. Perché il metro di una previsione non è mai la sua accuratezza.
«Ma le previsioni funzionano davvero?» La domanda giusta è un'altra.
Un modello meno accurato può farti guadagnare di più. Il paradosso è solo apparente. C'è un'equazione, e sta qui sotto.
Rispondo alla domanda del titolo con la massima onestà possibile, distinguendo, perché «funzionano» in blocco non vuol dire niente. Sì, funzionano, e in modo molto solido, dove il fenomeno è indifferente e ha inerzia: consumi, carichi, guasti, traffico, domanda aggregata, code, assenze. Qui il ML batte l'intuizione umana in modo sistematico e i benefici sono documentati da decenni. Funzionano a metà dove il fenomeno è debolmente riflessivo e l'orizzonte è lungo: la domanda del singolo articolo a sei mesi è un esercizio di modestia. Non funzionano, e chi dice il contrario ti sta vendendo qualcosa, dove il sistema è fortemente riflessivo o dove l'evento che conta è una rottura che per definizione non è nei dati.
Ma la vera risposta è che stiamo misurando la cosa sbagliata. L'accuratezza è una metrica di comodo dei tecnici. Il metro vero è: quanto è migliorata la decisione. E il modo per vederlo in un secondo è il problema più bello della ricerca operativa, che ha oltre sessant'anni e che continua a risolvere l'80% dei casi reali.
Il problema del giornalaio (Arrow, Harris, Marschak, 1951)
q* = F−1 ( Cu / (Cu + Co) )
Un giornalaio ordina copie senza sapere quante ne venderà. Cu è il costo di averne ordinate troppo poche (il margine perso, il cliente che va altrove). Co è il costo di averne ordinate troppe (la resa, il magazzino, l'obsolescenza). F−1 è il quantile della distribuzione della domanda. Il risultato è sconvolgente nella sua semplicità: la quantità ottima non dipende dalla previsione media, dipende dal rapporto tra i due costi. Se non vendere costa 9 volte più che avanzare, ordini il 90° percentile, e infischiatene della media. Sessantacinque anni di gestione scorte in una riga.
Il modello peggiore che guadagna di più
Due previsori sullo stesso articolo. A è più accurato (errore medio più basso). B è meno accurato ma sa che sbagliare in difetto costa molto di più. Muovi i costi e guarda il conto economico a fine anno.
Da provare Metti i due costi uguali: i due previsori si equivalgono e vince il più accurato, come dice l'intuizione. Poi porta Cu a 200 e Co a 1: il previsore «peggiore» stacca l'altro di decine di migliaia di euro l'anno, pur sbagliando di più. Questa simulazione, in una prima riunione, vale più di quaranta slide.
Il caso d'uso Il quantile ottimo non resta un'equazione. Diventa uno scaffale con la quantità giusta sopra, e una persona che al mattino sa cosa ordinare senza tirare a indovinare.
Il valore di un progetto previsionale non si misura in punti di MAPE. Si misura in euro di decisione, e le due cose, sorprendentemente spesso, non si muovono nella stessa direzione.
Questo apre una linea di ricerca che è anche il mio consiglio architetturale più forte di tutta la parte quarta. Il modo classico si chiama predict-then-optimize: prima il modello prevede il meglio che può, poi un secondo pezzo di software decide. Ma il modello sta ottimizzando la sua metrica, non il tuo conto economico, e non ha nessuna idea di quali errori ti fanno male. L'alternativa, il decision-focused learning, è addestrare il modello direttamente sul costo della decisione a valle. Non è sempre facile, ma la sua versione povera è alla portata di tutti ed è quella che implemento nel 90% dei casi: metti la pinball loss con il τ che esce dal newsvendor. Sono due righe. Il modello smette di inseguire la media e comincia a inseguire i tuoi soldi.
E c'è un effetto collaterale, sul quale ho visto sbloccarsi progetti fermi da mesi. Nel momento in cui chiedi a un'azienda «quanto costa averne troppo pochi rispetto a troppi?», scopri quasi sempre due cose. Primo: nessuno l'ha mai quantificato. Secondo: quando finalmente lo quantificano, si accorgono che la politica di scorte in vigore da dieci anni corrisponde a un rapporto di costi che nessuno sceglierebbe consapevolmente. La domanda è arrivata con l'AI, ma la risposta non aveva bisogno di AI. È il caso più frequente in cui porto valore prima ancora di scrivere una riga di codice, e no, non lo dico per modestia: lo dico perché è il motivo per cui poi il codice lo scrivono con me.
Dopo la previsione c'è la parte che vale di più, e che quasi nessuno chiama AI.
Turni, giri, tagli, mix, prezzi. Matematica matura da sessant'anni, effetto immediato sul margine.
Se il capitolo 13 ti ha convinto che il punto è la decisione, questo è il capitolo su come si prende quando le opzioni sono miliardi. Trenta consegne da mettere in sequenza sono 30! percorsi possibili: un numero con 33 cifre. Provarli tutti è fuori discussione per l'universo, non per il tuo server. Eppure un solver ti dà l'ottimo, o qualcosa di dimostrabilmente vicino, in pochi secondi. Non con l'AI: con la ricerca operativa, che è tecnologia degli anni Cinquanta e continua ad essere la macchina che genera più margine e meno titoli sui giornali.
Programmazione lineare · LP
Variabili continue, obiettivo e vincoli lineari. Il simplesso e i metodi a punto interno la risolvono su milioni di variabili. Mix produttivo, miscele, allocazione, diete, portafogli. Se il tuo problema è LP, hai vinto: c'è l'ottimo, ed è dimostrato.
Programmazione intera · MILP
Quando le decisioni sono «sì/no» o «quanti pezzi interi»: assegnare, aprire un deposito, schedulare. NP-difficile in teoria, risolto benissimo in pratica dai solver moderni, che sono migliorati di ordini di grandezza più dell'hardware. Qui vive la logistica vera.
Euristiche e metaeuristiche
Quando il problema è troppo grosso o troppo sporco per un solver: ricerca locale, tabu, annealing, genetici. Non ti danno l'ottimo, ti danno una risposta ottima abbastanza, in tempo, adesso. In azienda quasi sempre è quello che serve.
Bandit e rinforzo
Quando la decisione si ripete e puoi imparare provando: quale offerta mostrare, quale prezzo, quale campagna. I bandit gestiscono in modo matematicamente pulito il dilemma esplora-sfrutta. È l'unico posto dove il rinforzo, in azienda, funziona davvero, perché il costo dell'esperimento è basso e il ciclo è corto.
L'architettura che propongo, e il motivo per cui la propongo. Nei sistemi che costruisco l'anello è sempre lo stesso, e le responsabilità sono rigidamente separate: previsione → decisione → azione → misura → di nuovo previsione. Il modello previsionale non decide mai e non sa nulla dei vincoli. L'ottimizzatore non prevede mai e non sa nulla di statistica: prende in ingresso una distribuzione e dei vincoli e restituisce una scelta. Sembra pignoleria architetturale ed è invece l'unica cosa che rende il sistema manutenibile: quando qualcosa va storto, e andrà storto, devi poter dire in quale dei due pezzi è successo. Nei sistemi dove i due pezzi sono impastati (tipicamente: regole di business dentro il modello, o soglie apprese dentro il solver) non l'ho mai potuto dire, e la diagnosi è diventata archeologia.
Il pezzo più difficile, però, non è nessuno dei due. Sono i vincoli veri. Il solver ti darà sempre una risposta ottima rispetto ai vincoli che gli hai scritto, e quelli che ti hanno raccontato in riunione non sono mai tutti. Il giro di consegne perfetto che passa dal cliente Rossi alle 14 è ottimo finché non scopri che Rossi chiude dalle 13 alle 15, cosa che sanno tutti gli autisti e nessun sistema. L'ottimizzazione fallisce quasi sempre per antropologia, non per matematica: il vincolo mancante è quasi sempre una cosa che «si è sempre saputa». Il mio metodo, banale e infallibile: prima di scrivere il modello, fai girare il piano ottimo a chi fa il lavoro e chiedigli di dirti tutti i motivi per cui è una schifezza. Ogni obiezione è un vincolo che non avevi.
Un ottimizzatore senza i vincoli veri non produce piani sbagliati. Produce piani perfetti che nessuno eseguirà, ed è molto peggio, perché sembrano funzionare.
La tua previsione cambia il mondo che stava misurando. E poi si rimangia i dati.
Il modello agisce, l'azione modifica i dati, i dati riaddestrano il modello. Nessuno guarda il cerchio.
Questo è il capitolo che quasi nessuno scrive, ed è quello che spiega perché tanti sistemi che funzionavano al primo anno diventano lentamente insensati al terzo. Un modello messo in produzione non è un osservatore. È un attore. E gli attori inquinano il palco che osservano.
Il caso di scuola, che ho visto succedere per davvero. Prevedi che il prodotto X venderà poco. Di conseguenza ne ordini poco. Di conseguenza sullo scaffale ce n'è poco e a volte manca. Di conseguenza vende poco. Il tuo storico ora conferma la previsione, il modello si riaddestra e diventa ancora più convinto. Il ciclo si chiude e il prodotto muore. Non perché non piacesse: perché il modello ha smesso di misurare la domanda e ha iniziato a misurare le proprie decisioni. Il dato che ti serviva, quanto avresti venduto se ce ne fosse stato, non esiste in nessun database del mondo, ed è la censura più costosa e più ignorata di tutta la gestione scorte.
Il dato censurato
Le vendite misurano il minimo tra domanda e disponibilità, che è un'altra cosa dalla domanda. Ogni rottura di stock scava un buco nella tua storia, e il modello lo legge come «non voleva comprare». Chi non corregge questo, sta addestrando sui propri errori.
La legge di Goodhart
«Quando una misura diventa un obiettivo, cessa di essere una buona misura.» Metti in bonus l'accuratezza della previsione dei venditori: otterrai previsioni prudentissime e sempre azzeccate. E inutili.
Il ciclo di feedback dei suggerimenti
Il modello raccomanda A, quindi A viene visto, quindi A viene comprato, quindi il modello impara che A è ottimo. Sta imparando dalla propria eco. Serve esplorazione forzata (i bandit del capitolo 14) o il sistema si autoconvince.
La critica di Lucas
Dal 1976, e vale ancora: le relazioni storiche non sopravvivono ai cambi di politica. Il modello ha imparato come si comportano i clienti sotto le regole vecchie. Cambia le regole, e hai un modello di un mondo che non c'è più.
Come ci si difende. Quattro mosse, tutte poco costose e quasi mai fatte.
- Registra cosa ha deciso il sistema e perché, non solo cosa è successo. Senza il log delle decisioni non potrai mai separare i tuoi effetti da quelli del mondo.
- Modella la censura invece di ignorarla. I dati censurati hanno una loro statistica, con più di un secolo di letteratura, e in azienda non la usa nessuno.
- Mantieni una quota di esplorazione: una piccola percentuale di scelte deliberatamente non ottime. È il prezzo, bassissimo, per continuare ad avere dati onesti.
- Tieni un gruppo di controllo, se puoi: un pugno di negozi, clienti o articoli dove il sistema non decide. È l'unico modo di sapere se serve davvero, e l'unica difesa contro la domanda che prima o poi arriva dal consiglio: «ma questo affare, quanto ci ha fatto guadagnare?». Senza controllo, quella domanda ha solo risposte aneddotiche.
Un modello in produzione non descrive il mondo: negozia con lui. Chi progetta senza tenerne conto costruisce sistemi che, col tempo, misurano soltanto se stessi.
parte quinta
Gli LLM sui dati
La parte che tutti sbagliano, in entrambe le direzioni: chi crede che sappiano prevedere e chi crede che non servano a niente. Sette capitoli per stare dalla parte giusta, con il duello finale sui numeri.
Un LLM non vede i numeri. Vede pezzi di parole che sembrano numeri.
Finché non hai capito questo, ogni discussione su «sa fare i conti» è destinata a girare a vuoto.
Il testo, prima di entrare nel modello, viene spezzato in token: pezzetti di testo. La parola «cliente» può essere un token, «Migliore» magari due. E i numeri? I numeri vengono spezzati in modo che dipende da come sono scritti. Il valore 1240 può diventare i token 12 e 40, oppure 1 e 240, a seconda del tokenizzatore. Il modello non riceve mai la quantità milleduecentoquaranta: riceve due simboli che, statisticamente, in quel contesto, tendono a stare vicini. Non c'è nessuna rappresentazione della grandezza. Nessun «più grande di». Nessuna retta dei numeri, se non quella che il modello ha ricostruito indirettamente, vedendo miliardi di esempi in cui gli umani i numeri li usavano. Ed è sorprendentemente buona, va detto.
Da qui discendono, in modo perfettamente prevedibile, tutti i comportamenti «strani» che vedi:
Un LLM è un modello del linguaggio. Quando gli dai una tabella, sta facendo il tifo per il token successivo, non per la verità aritmetica. È il suo mestiere, e lo fa benissimo.
Attenzione, però: qui l'errore facile è quello opposto, ed è altrettanto grave. «Allora non sa contare, è inutile sui dati». Falso. Il fatto che il modello non calcoli non gli impedisce di sapere cosa va calcolato: sa scrivere la query, sa scrivere il codice Python, sa scegliere il modello statistico, sa spiegare il risultato. Un LLM che chiama una calcolatrice batte qualunque LLM che «si sforza», e batte anche te. È tutta la tesi del capitolo 22.
ML o LLM: la differenza vera non è l'accuratezza. È da dove viene il numero.
Uno stima parametri dai tuoi dati. L'altro campiona testo plausibile. Sembrano fare la stessa cosa e non c'entrano niente.
Metti a confronto le due catene causali, perché è lì che si vede tutto. Modello ML: i tuoi dati storici → una funzione di costo → l'ottimizzazione stima i parametri → il numero esce da quei dati. Se cambi i dati, cambia il numero, in modo tracciabile. LLM: il tuo prompt → i pesi congelati durante l'addestramento su testo di internet fino a una certa data → il campionamento sceglie il token → il numero esce dalla distribuzione statistica del linguaggio. Se cambi i dati nel prompt il numero cambia un po', ma non perché il modello li abbia elaborati: perché sono cambiati i token in ingresso. Non c'è nessuna stima, non c'è nessun fit, non c'è nessun residuo. C'è una plausibilità.
| Dimensione | Modello ML dedicato | LLM «a occhio» | Perché ti riguarda |
|---|---|---|---|
| Da dove viene il numero | dai tuoi dati, per stima | dal linguaggio, per plausibilità | La differenza fondativa. Uno può sbagliare perché i dati sono pochi; l'altro può sbagliare pur avendo tutti i dati davanti. |
| Dati storici necessari | tanti, tuoi, puliti | zero | L'unico vero vantaggio strutturale dell'LLM: il cold start. Prodotto nuovo, mercato nuovo, nessuno storico. |
| Incertezza | quantificabile | recitata | L'LLM ti dirà «circa 1.200, con un margine del 10%»: quel 10% nessuno l'ha calcolato. È una frase verosimile, niente di più. È la cosa più pericolosa di tutte. |
| Riproducibilità | totale | condizionata | Il modello ML è un file con un hash. L'LLM è un servizio che cambia sotto di te (cap. 02). |
| Verificabilità | backtest | difficile | Non puoi fare backtest onesto su un modello che ha già letto il tuo 2023 durante l'addestramento. È leakage strutturale, e non c'è rimedio. |
| Costo per previsione | ~0 | centesimi | Irrilevante per 10 previsioni. Su 50.000 SKU × ogni notte, è una voce di bilancio. |
| Dati non strutturati | non li vede | li mangia | Qui si ribalta tutto. Le note del commerciale, le mail, i verbali: l'LLM li trasforma in colonne. È il capitolo 20, ed è dove sta il valore vero. |
L'LLM non è un previsore migliore o peggiore. È un pezzo diverso della macchina: è la bocca e le orecchie, non il regolo calcolatore.
C'è una riga della tabella su cui voglio insistere perché è quella che nessuno considera e che, in un contenzioso, è quella che conta: la verificabilità. Quando dico «l'LLM ha già letto il tuo 2023», intendo alla lettera. Se gli chiedi di prevedere un dato pubblico passato, può non prevederlo affatto: può ricordarlo. Sui benchmark è un disastro metodologico noto (si chiama contaminazione del training set). Sui tuoi dati privati non succede, ma succede una cosa parente e sottile: il modello conosce il contesto generale del tuo settore fino alla sua data di addestramento, e non hai nessun modo di sapere quanta della sua «previsione» sia memoria di quel contesto. Con un modello ML questo dubbio non esiste per costruzione: sai esattamente quali righe ha visto, perché gliele hai date tu.
Gli LLM sanno prevedere? La risposta onesta, senza tifo.
Non è «no». Non è «sì». È: sorprendentemente decenti in un caso preciso, e strutturalmente inadatti a essere il tuo previsore.
Comincio dalla parte che sorprende chi si aspetta uno scettico. Un LLM, senza aver mai visto un solo dato del tuo dominio, sa fare forecasting meglio di quanto dovrebbe. È un risultato serio e replicato: se dai a un LLM una serie numerica scritta come testo e gli chiedi di continuarla, i risultati sono confrontabili con metodi statistici dedicati, e in certi casi li battono, a zero addestramento. Il motivo è profondo ed è quasi filosofico: prevedere il token successivo e prevedere il punto successivo di una serie sono lo stesso identico problema matematico, cioè modellare P(prossimo | passato). Un LLM è, letteralmente, una macchina addestrata a fare quello. Che il «prossimo» sia una parola o un numero, al transformer non interessa: ha imparato a riconoscere periodicità, tendenze e ripetizioni perché il testo umano ne è pieno.
Detto questo, ecco perché non lo userei mai come previsore di produzione, e nessuna delle ragioni è «va meno bene»:
Non sai cosa ha guardato
Nessun backtest onesto è possibile su un modello che potrebbe aver letto il periodo che stai testando. Sui dati privati il rischio scende, ma l'impossibilità di dimostrare l'assenza di contaminazione resta. In un settore regolato, questo da solo chiude il discorso.
L'incertezza è recitata
Ti dà un intervallo perché gli intervalli si scrivono così, non perché l'abbia calcolato. Nel capitolo 12 abbiamo visto che l'intervallo è la previsione: un intervallo inventato è peggio di nessun intervallo, perché ha l'aria di essere stato misurato.
Costa mille volte tanto
Un ETS gira in microsecondi a costo zero. Su 50.000 articoli per 365 notti sono 18 milioni di chiamate: il conto è a quattro o cinque zeri, per fare quello che una libreria fa gratis. Regola 1: non bruciare soldi.
Non migliora coi tuoi dati
Un modello ML impara dal tuo mondo: più lo usi, più i tuoi dati lo rendono tuo. L'LLM resta uguale: il tuo vantaggio competitivo non si accumula da nessuna parte. Questa, strategicamente, è la ragione più seria di tutte.
E la confusione da smontare subito, perché è il malinteso più diffuso del 2026. I foundation model per serie storiche (Chronos, TimeGPT, Moirai, TimesFM, Lag-Llama) non sono LLM. Usano l'architettura transformer, sì, ma sono addestrati da zero su miliardi di punti di serie storiche vere, non su testo. Fanno zero-shot forecasting: previsione su una serie che non hanno mai visto, senza addestramento. Sono una cosa seria, li seguo con attenzione, e sono un'ottima idea quando hai tantissime serie corte e nessuna voglia di addestrare mille modellini. Ma quando qualcuno ti dice «usiamo l'AI generativa per il forecast» intendendo Chronos, sta usando due parole giuste per descrivere una cosa diversa. E quando lo dice intendendo ChatGPT, sta descrivendo l'architettura del capitolo 22, quella che sto per farti vedere, o non sa cosa sta dicendo. Vale la pena chiedere quale delle due.
Sì, un LLM sa prevedere. No, non deve essere lui a farlo. La domanda da fare è un'altra: «è il posto giusto per quel calcolo?».
Quando una stima fatta da un LLM è accettabile (e come renderla difendibile).
C'è un caso in cui non ha rivali, ed è quello in cui il ML non può nemmeno partire: quando i dati non ci sono.
Immagina di lanciare un prodotto che non esiste, in un paese in cui non hai mai venduto. Storico: zero righe. Il tuo gradient boosting non ha nulla da masticare, il tuo ETS nemmeno. È esattamente il momento in cui, per decenni, si è fatta la cosa più antica del mondo: si chiama un esperto e gli si chiede un numero. L'esperto non calcola: usa analogie, ordini di grandezza, esperienza. È precisamente ciò che un LLM sa fare, perché ha letto un'enorme quantità di descrizioni di casi analoghi. In quel momento l'LLM diventa un modo economico di consultare un consulente mediamente informato su tutto, disponibile in tre secondi.
Le quattro situazioni in cui una stima da LLM la accetto, esplicitamente e senza sensi di colpa:
- Cold start. Nessuno storico, quindi nessun modello può nemmeno partire.
- Ordini di grandezza. Stima alla Fermi: mi serve sapere se sono decine o migliaia, non il numero.
- Prior bayesiano. Un punto di partenza da correggere appena arrivano i primi dati veri. È l'uso più elegante di tutti.
- Triage. Ordinare cento casi dal più al meno urgente, dove conta l'ordinamento e non il valore.
E le quattro in cui non la accetto mai:
- Quando esiste uno storico decente. Usalo.
- Quando il numero entra in un calcolo composto, perché gli errori si moltiplicano.
- Quando serve un intervallo affidabile.
- Quando qualcuno dovrà difenderlo davanti a un revisore o a un giudice.
Il trucco che trasforma la chiacchiera in misura: self-consistency
ŷ = mediana{y1…yk} û = IQR{y1…yk}
Invece di chiedere una volta a temperatura 0, chiedi k volte (k=10÷20) a temperatura media, magari riformulando il prompt e cambiando l'ordine delle informazioni. Poi prendi la mediana come stima (robusta agli exploit) e l'ampiezza interquartile come misura di incertezza. Ricordi il capitolo 02, dove dicevo che a T=0 butti via l'unico segnale gratuito che avevi? Eccolo qui, trasformato in numero: se venti risposte cadono tra 1.100 e 1.300, il modello sa qualcosa; se cadono tra 200 e 9.000, non lo sa, e adesso lo sai anche tu. Chiamiamola col suo nome: un indicatore di dispersione, non una probabilità. Ma è misurato invece che recitato, ed è infinitamente meglio del «±10%» che il modello si sarebbe inventato.
Il gesto giusto La penna scrive il pensiero e lascia il conto allo strumento che sa farlo. Tutta l'ingegneria degli LLM sui dati sta nel rendere questo gesto obbligatorio invece che facoltativo.
Le altre tre tecniche che uso sempre, quando una stima LLM deve reggere. Costringilo a scomporre: non «quanto venderemo», ma «quanti clienti potenziali, per quale tasso di conversione, per quale scontrino medio». Ogni pezzo diventa verificabile separatamente e discutibile con un umano che quel pezzo lo conosce. È la stima di Fermi, e ha il pregio di produrre un ragionamento contestabile invece di un numero da prendere o lasciare. Dagli i dati veri nel prompt: cambia molto, e sposta il modello da «cosa ricordo del settore» a «cosa vedo». Calibralo a posteriori: se hai anche solo trenta casi in cui poi hai visto l'esito, misura il bias sistematico delle sue stime e correggilo. Nella mia esperienza il bias c'è quasi sempre, è stabile, ed è quasi sempre ottimista: anche questo, del resto, l'ha imparato dagli umani.
Dove l'LLM è insostituibile: non nel prevedere, nel trasformare in dato ciò che dato non era.
Il valore vero non è sostituire il modello. È nutrirlo con l'80% dell'informazione aziendale che finora nessun modello ha mai potuto leggere.
Questo è il capitolo che vorrei rimanesse, se dovessi sceglierne uno. Nella tua azienda ci sono due mondi. Il primo è il gestionale: righe, importi, date. È il 20% dell'informazione, ed è l'unico che i modelli hanno potuto usare negli ultimi trent'anni. Il secondo mondo è tutto il resto: le note del commerciale dopo la visita, le mail dei clienti, i verbali, i ticket, i capitolati, i reclami, le trascrizioni delle call. È l'80%, è dove sta scritto perché le cose sono successe, e per un modello ML era semplicemente inesistente: non perché fosse inutile, ma perché non c'era modo di trasformarlo in colonne.
Ora c'è. L'LLM è il primo strumento della storia che trasforma il mondo del testo in colonne di una tabella. E la cosa importante: quelle colonne le mangia poi un boosting, che è deterministico, verificabile, gratis da eseguire e migliora con i tuoi dati. Il generativo entra dove serve la lingua ed esce prima che tocchi i numeri.
budget_bloccato: sì, scadenza: 06, sentiment: −2, tema: ritardoL'architettura che consiglio nel 90% dei casi Gli LLM stanno agli estremi della catena: all'ingresso, dove il mondo è fatto di parole, e all'uscita, dove chi decide è fatto di parole. Nel mezzo, dove si fanno i conti, c'è matematica verificabile. Il numero non passa mai per la bocca del modello linguistico.
Le cinque applicazioni che portano valore subito, in ordine di ritorno che ho visto sul campo.
- Da testo a feature (lo schema qui sopra). L'ho visto aggiungere punti veri di accuratezza su problemi fermi da anni, perché il segnale c'era, era scritto, e nessuno poteva leggerlo.
- La semantica dello schema. Dare un senso a
CLI_FLG_02, capire che due tabelle di due gestionali parlano della stessa cosa. Settimane di lavoro umano ridotte a ore, e per giunta lavoro che nessuno vuole fare. - Spiegare la previsione. Il modello sputa contributi SHAP, l'LLM li traduce in «vende meno perché a marzo c'è Pasqua e l'anno scorso il cliente aveva anticipato l'ordine». È quello che trasforma un modello ignorato in un modello usato, e vale più di due punti di accuratezza.
- Generare ipotesi. «Guarda questi residui, cosa potrebbe spiegarli?» Non ti dà la verità, ti dà venti piste, e tre sono buone.
- Da domanda a query. Chiunque può interrogare i dati. Ma la query la esegue il database, non il modello.
La tesi di tutta la parte quinta, in una riga: l'LLM non deve produrre il numero. Deve produrre tutto ciò che sta intorno al numero, e quel «tutto intorno» è, quasi sempre, dove il progetto era bloccato.
L'allucinazione numerica non la scopre l'occhio umano. La scopre il sistema, o non la scopre nessuno.
Un numero sbagliato non ha una faccia diversa da un numero giusto. Questa è l'intera difficoltà.
Quando un LLM sbaglia una traduzione, te ne accorgi leggendo. Quando sbaglia un numero, non c'è niente da notare: 1.240 e 1.420 sono ugualmente credibili, ugualmente ben formattati, ugualmente sicuri di sé. La revisione umana, su cui tutti contano, qui non funziona per un motivo strutturale: l'umano non ha il numero giusto con cui confrontare. Se ce l'avesse, non avrebbe chiesto. Quindi la verifica dev'essere una proprietà del sistema, non un momento di attenzione di una persona.
I quattro livelli che metto sempre, dal più economico al più costoso:
Due regole che non tratto, e che valgono anche fuori da questo capitolo. Prima: il numero che finisce in un database non deve mai essere stato prodotto da un LLM. Può essere stato richiesto da un LLM, spiegato da un LLM, contestualizzato da un LLM. Ma calcolato dallo strumento, con un'esecuzione che puoi rieseguire domani ottenendo lo stesso risultato. Seconda: logga tutto ciò che serve a rifare l'esperimento: prompt esatto, versione del modello, temperatura, seed, contesto recuperato, output grezzo. Nel giorno in cui qualcuno chiederà «perché il sistema aveva detto così», e quel giorno arriva sempre, quella riga di log è la differenza tra una risposta e un'imbarazzante alzata di spalle.
E l'ultima, che è la più difficile da far accettare: quando il sistema non sa, deve dirlo. Un'architettura che restituisce sempre un numero è un'architettura che mente in modo elegante. Le persone si fidano di un sistema che ogni tanto dice «su questo articolo non ho abbastanza storico, la mia stima ha un'incertezza troppo alta per essere utile» molto più di quanto si fidino di uno che risponde sempre. E hanno perfettamente ragione: la fiducia in un sistema previsionale non si costruisce sulle previsioni azzeccate, si costruisce sui rifiuti onesti.
Il duello: machine learning contro LLM contro LLM che usa lo strumento.
Stessi dati, stesso orizzonte, stessa metrica, stesso conto in euro. Tre contendenti, e il vincitore non è quello che pensi.
Tutto quello che ho scritto finora converge qui. Un articolo, ventiquattro mesi di storico con trend e stagionalità, e sei mesi da prevedere. Tre modi di affrontarlo:
Il modello ML stima una regressione con trend e stagionalità sui dati veri, ai minimi quadrati, adesso, nel tuo browser. Vede i numeri e nient'altro. L'LLM «a occhio» riceve la serie nel prompt e sputa sei numeri: qui è emulato, e ti spiego subito come. L'LLM con lo strumento non prova nemmeno a fare il conto: chiama il modello ML, ne prende il risultato, e poi ci aggiunge l'unica cosa che il modello ML non può sapere: che nelle note del commerciale c'è scritto che a marzo c'è la fiera, e che quella fiera, l'ultima volta, ha portato un picco. È il capitolo 20 messo in pratica.
Onestà sulla simulazione. I due contendenti «LLM» non chiamano nessun modello: sarebbe un costo per te e non aggiungerebbe niente. Sono emulati riproducendo i quattro comportamenti documentati nel capitolo 16: ancoraggio sull'ultimo valore, sotto-reazione al trend (circa il 40% della pendenza vera), stagionalità colta a metà, arrotondamento ai numeri tondi. Non l'ho caricata per far vincere il ML. È la firma di errore che vedo ogni volta che qualcuno prova a farsi fare le previsioni dalla chat. Il modello ML, invece, è calcolato davvero: minimi quadrati risolti qui, ora, sui dati generati adesso.
Sei mesi da prevedere. Tre contendenti.
Premi «vai» e guarda cosa succede quando arriva il futuro. Il conto in euro usa i costi asimmetrici del capitolo 13.
Barre errore medio assoluto in pezzi (più corto è meglio).
La cosa da fare Gira prima «mercato normale»: il ML vince, l'LLM a occhio perde di brutto, l'LLM con lo strumento pareggia con il ML, perché non ha niente da aggiungere e si limita a non rovinare nulla. Poi passa a «con la fiera a marzo»: il ML sbaglia il picco perché nei numeri quella fiera non c'è, e l'LLM con lo strumento lo prende, perché la fiera stava scritta in una nota. Non ha previsto meglio: ha letto qualcosa che il modello non poteva leggere. È tutta lì la divisione dei ruoli.
Il vincitore non è un modello. È un'architettura: il linguaggio fa il lavoro del linguaggio, la matematica fa il lavoro della matematica, e nessuno dei due fa il lavoro dell'altro.
Un'ultima osservazione, che è quella che mi porto in ogni discussione su questo tema. Nel caso «mercato normale», l'LLM con lo strumento non batte il ML: lo pareggia. Ed è la cosa migliore che potesse fare. Un sistema ben progettato, quando non ha valore da aggiungere, deve avere il buon gusto di non peggiorare le cose. La stragrande maggioranza dei progetti «mettiamoci l'AI generativa» che ho visto fallire, sono falliti esattamente qui: hanno messo il modello linguistico in mezzo a un calcolo che funzionava, e il calcolo ha iniziato a sbagliare in modi nuovi e creativi. Aggiungere un LLM a un sistema è come aggiungere una persona a una riunione: se non porta qualcosa che gli altri non hanno, l'ha solo resa più lenta e più rumorosa.
parte sesta
L'atlante: cosa esiste davvero
Fin qui il ragionamento. Da qui la mappa completa: le otto famiglie di tecnologie, le venti analisi che si fanno sui dati, quali sbagliano e come, quanto costano davvero, e come si montano insieme in un sistema che funziona.
Otto famiglie, otto mestieri. La cassetta degli attrezzi per intero.
Non «l'AI». Otto tecnologie diverse, con otto modi di sbagliare e otto costi. Sapere quale aprire è metà del lavoro.
Il capitolo 01 ti ha dato la tassonomia teorica: come impara una macchina. Questo capitolo ti dà l'atlante operativo: cosa esiste sul mercato, cosa fa, quanto costa e, soprattutto, dove mente. Quella colonna non la scrive mai nessuno. È la tabella che apro davanti al cliente alla prima riunione, e serve a fare una cosa sola: smettere di discutere di «AI» e cominciare a discutere di quale casella.
Il criterio Nessuno prende il martello «perché è il più avanzato». Lo prende perché c'è un chiodo. Con l'AI, invece, quasi tutte le riunioni cominciano dallo strumento e cercano il chiodo dopo.
| Famiglia | A cosa serve | Tecnologie | Costo | Dove tradisce |
|---|---|---|---|---|
| LLM e NLP | Testo: sentiment, intenzioni, argomenti, semantica, conversazioni, documenti, riassunti, estrazione | LLM, embedding, RAG, classificatori testuali | Ironia, diplomazia, ambiguità, aritmetica. E soprattutto: ti risponde sempre, anche quando non sa. | |
| Machine learning classico | Tabelle: classificazione, previsione, anomalie, scoring, clustering, raccomandazione | Regressione, random forest, gradient boosting, SVM, k-means | Leakage (cap. 07), niente estrapolazione, e muore in silenzio quando il mondo cambia (drift). | |
| Statistica e serie storiche | Trend, forecasting, correlazioni, causalità, test e confronti prima/dopo | Regressione statistica, ARIMA/ETS, modelli causali, test A/B | Rotture strutturali. Ma è l'unica famiglia che sa dire «non è significativo», ed è per questo che dà meno soddisfazione e più verità. | |
| Ottimizzazione matematica | Decidere: percorsi, scorte, produzione, allocazione, prezzi, turni | Programmazione lineare/intera, solver di vincoli, euristiche | Non sbaglia i conti: sbaglia i vincoli, perché quelli veri nessuno te li dice (cap. 14). | |
| Computer vision | Immagini e video: difetti, conteggio oggetti, OCR, eventi, sicurezza | CNN, vision transformer, modelli multimodali | Fuori dalle condizioni di addestramento: luce nuova, lente nuova, angolo nuovo. Il mondo cambia e il modello non lo sa. | |
| Audio e voce | Trascrizione, chi parla, tono e ritmo, rumori anomali dei macchinari | Speech-to-text, modelli audio, classificatori di segnali | La trascrizione è ottima. L'«emozione dalla voce» è pseudoscienza venduta come feature (cap. 28). | |
| Grafi e reti | Relazioni tra entità: frodi, influenza, dipendenze, propagazione | Graph database, algoritmi su grafi, graph neural network | Trova sempre dei collegamenti. Un grafo bellissimo non è una prova, e in antifrode questo distrugge persone. | |
| Simulazione e scenari | «E se…»: prezzi, fornitori, magazzini, capacità, domanda | Monte Carlo, modelli matematici, agenti, digital twin | Ti restituisce esattamente le ipotesi che ci hai messo, ma vestite da risultato (cap. 29). |
Le prime due righe si prendono il 95% delle conversazioni. Le ultime sei si prendono, nella mia esperienza, più della metà del valore.
Guarda la colonna dei costi, perché racconta una storia che nessuno racconta. Le due famiglie più economiche, ML classico e statistica, sono anche le due che risolvono la maggior parte dei problemi aziendali. La famiglia di gran lunga più costosa per volume, gli LLM, è quella su cui si concentra il 95% dell'entusiasmo. Di per sé va benissimo. Diventa un problema quando si usa la famiglia costosa per fare il lavoro di quella gratis. Nel capitolo 30 ti faccio vedere quanto costa esattamente quell'errore, con il calcolatore.
Le ventidue analisi che si fanno sui dati. Tutte, con la tecnologia giusta accanto.
Questo è il catalogo. Filtralo per famiglia o per tipo di domanda, e trova la tua.
Quando un'azienda mi dice «vorremmo usare l'AI sui nostri dati», quello che sta cercando è quasi sempre una di queste ventidue caselle. Il catalogo qui sotto è filtrabile in due modi che corrispondono alle due domande giuste: «con che tecnologia si fa?» e «che tipo di domanda sto facendo?», che è la scala descrittiva → diagnostica → predittiva → prescrittiva del capitolo che segue.
Ogni scheda dice cosa fa, con cosa si fa e qual è il suo limite onesto: la cosa che quell'analisi non fa, e che le viene attribuita lo stesso. È la riga che rende questo catalogo diverso da tutti gli altri.
Il catalogo delle ventidue analisi
Filtra per famiglia tecnologica o per tipo di domanda. Ogni scheda ha il suo limite dichiarato.
Come usarlo Se una tua esigenza non entra in nessuna scheda, quasi sempre è perché quello che hai in mano è ancora un desiderio, non una domanda. Prima di scegliere la casella, torna al capitolo 03 e chiediti quale decisione cambia.
Descrittiva, diagnostica, predittiva, prescrittiva: la scala che tutti disegnano male.
Non è una scala. È un ordine di difficoltà crescente in cui ogni gradino può crollare da solo.
Ogni consulenza al mondo ti fa vedere questa piramide: cosa è successo → perché → cosa succederà → cosa fare, con una freccia che sale verso il «valore». Il disegno è utile e la retorica che gli hanno costruito sopra è, nella mia esperienza, attivamente dannosa. Ti spiego perché, gradino per gradino, e poi ti do la versione che uso io.
1 · Descrittiva: cosa è successo
Andamenti di vendite, costi, margini, clienti. Confronti tra periodi, prodotti, agenti, sedi. Distribuzioni, medie, variazioni. E oggi anche: argomenti e sentiment delle conversazioni, riassunti automatici di montagne di documenti.
La verità scomoda: è il gradino «basso» e quasi nessuno lo ha davvero finito. Prima di fare previsioni, prova a chiedere in azienda quanto ha marginato davvero il cliente X l'anno scorso: se ottieni tre numeri diversi da tre uffici, il problema non è l'AI. Costruire un modello predittivo sopra una descrittiva rotta è costruire su un terreno che non hai misurato.
2 · Diagnostica, perché è successo
Perché le vendite sono calate, quali prodotti o clienti hanno generato il calo, cosa distingue gli agenti migliori, quali frasi provocano obiezioni, quali variabili sono legate a ritardi, resi, abbandoni. Strumenti: statistica, correlazioni, alberi, clustering, analisi causale.
La verità scomoda: qui si confonde correlazione con spiegazione. «I clienti che usano la funzione X abbandonano meno» non vuol dire che spingere X riduca l'abbandono. Il 90% delle analisi diagnostiche che vedo sono descrittive travestite: descrivono chi è associato a cosa e lo raccontano come una causa. Il capitolo 26 è dedicato interamente a questa trappola.
3 · Predittiva: cosa probabilmente succederà
Vendite, domanda, scorte e riordini, probabilità che un cliente compri o abbandoni, insoluti, guasti, ritardi, la data in cui un cliente finirà il prodotto, il valore futuro di un cliente. Strumenti: regressione, classificazione, serie storiche, boosting, reti.
La verità scomoda: è il gradino di cui tutti parlano ed è quello con il tetto più basso. Il rumore irriducibile (cap. 05) e l'orizzonte di prevedibilità (cap. 10) sono muri fisici, non problemi di budget. Ed è anche il gradino che, da solo, non cambia una singola decisione.
4 · Prescrittiva: cosa conviene fare
Quale cliente contattare, quale prodotto proporre, quando fare la visita, quanto produrre o riordinare, come distribuire il magazzino, che sconto fare, come organizzare il giro degli agenti, come allocare persone, mezzi, budget. Combina previsioni, regole aziendali, ottimizzazione e simulazione.
La verità scomoda: è dove sta il valore e dove la tecnologia è più vecchia e meno di moda (cap. 14: ricerca operativa, anni Cinquanta). Ed è l'unico gradino che tocca il potere: dice a una persona cosa fare. Per questo fallisce quasi sempre per ragioni organizzative, non tecniche.
La piramide suggerisce di salire. La realtà è che ogni gradino ha il suo pavimento, e che il gradino più alto poggia su un gradino diagnostico che quasi nessuno ha costruito davvero.
La versione che uso io. È un anello, e si percorre al contrario. Parti dalla decisione (gradino 4): cosa deve cambiare, chi decide, cosa costa sbagliare da ciascun lato. Da lì scendi a cosa serve prevedere (gradino 3): spesso scopri che serve un quantile, non un numero, e a volte che non serve prevedere affatto. Da lì scendi a cosa devi capire (gradino 2), e qui, se la decisione è «quale leva tiro», ti serve causalità, non correlazione. E solo alla fine scendi a cosa devi misurare (gradino 1), e scopri che metà dei dati che servono non li stai raccogliendo.
Percorrere l'anello al contrario ha un effetto collaterale che vale da solo la fatica: ti dice cosa non costruire. Il cruscotto con quarantadue indicatori che nessuno guarda è quello che si ottiene partendo dal gradino 1 e sperando che salendo si trovi il valore. Non si trova: si trova solo altro cruscotto.
«La campagna ha funzionato?» è la domanda più costosa che esista. E i dati, da soli, non sanno rispondere.
Puoi avere tutti i dati del mondo, un modello perfetto, e restare a zero. Perché la causa sta nel disegno dell'esperimento, non nei dati.
Le domande che ogni direzione fa, e che sono tutte la stessa domanda: la campagna ha aumentato le vendite? Lo sconto ha portato ordini aggiuntivi o ha solo bruciato margine? Il nuovo processo ha ridotto i tempi? Il corso ha migliorato le prestazioni? Cambiare venditore ha ridotto l'abbandono?
Sembrano domande da dati. Non lo sono, e questo è il punto più difficile e più importante di tutta la risorsa: i dati osservativi non contengono l'informazione necessaria per rispondere. Non «non ne contengono abbastanza»: non ne contengono affatto. La ragione è che per sapere se la campagna ha funzionato bisognerebbe sapere cosa sarebbe successo senza la campagna, sugli stessi clienti, nello stesso periodo. Quel dato non esiste. Non è mai esistito. È un universo parallelo, e nessun modello lo ricostruisce dal nulla.
Ecco perché ogni analisi causale seria consiste in un solo gesto: fabbricare un pezzo di quell'universo parallelo. Un gruppo di controllo, un esperimento A/B, un confronto tra chi è stato appena sopra e appena sotto una soglia arbitraria, due regioni gemelle di cui una sola riceve la campagna. Qui serve disegno, più che statistica avanzata. E si decide prima, non dopo.
Perché «correlazione ≠ causazione» è un'affermazione precisa, non un modo di dire
E[Y | X=1] − E[Y | X=0] ≠ E[Y(1) − Y(0)]
A sinistra, quello che i tuoi dati misurano: la differenza tra chi ha ricevuto il trattamento e chi no. A destra, quello che vorresti sapere: la differenza tra il mondo in cui tutti lo ricevono e quello in cui nessuno lo riceve, sulle stesse persone. I due termini coincidono solo a una condizione: che chi ha ricevuto il trattamento fosse identico, in tutto, a chi non l'ha ricevuto. Nella tua azienda non lo è mai: la campagna l'hai mandata ai clienti buoni, lo sconto l'hai fatto a chi stava per andarsene, il corso l'hanno seguito i motivati. La differenza che misuri contiene la selezione, non l'effetto. Il termine tecnico è confondimento; il termine pratico è: ti stai facendo i complimenti per una cosa che sarebbe successa comunque.
Il paradosso che ribalta la conclusione
Il nuovo processo va confrontato con il vecchio. Guarda il totale, poi guarda i due reparti separatamente. Sono gli stessi identici dati.
Non è un trucco aritmetico È il paradosso di Simpson, ed è reale: i due reparti hanno difficoltà diverse e hanno adottato il nuovo processo in misura diversa. Il totale mescola «quanto è buono il processo» con «chi l'ha usato di più». Entrambe le tabelle sono corrette. Solo una risponde alla domanda. E niente, nei dati, ti dice quale: te lo dice sapere come funziona l'azienda.
Il gruppo di controllo, in fotografia Due parcelle vicine, una trattata e una no. È la cosa più semplice e più rara che esista: l'unico modo di sapere se una scelta ha causato un risultato è tenere da parte un pezzo di mondo in cui non l'hai fatta.
Il paradosso di Simpson non è una curiosità da manuale. È il motivo per cui due persone oneste, guardando lo stesso cruscotto, arrivano a due conclusioni opposte, e hanno ragione entrambe.
Gli strumenti, in ordine di forza.
- Test A/B randomizzato. Il re. Assegni a caso, e il caso rende i due gruppi identici in media su tutto: comprese le cose che non hai misurato e quelle che non ti sono venute in mente. È l'unica tecnica che regge davanti a un fattore confondente che non conosci. Costa poco e quasi nessuno lo fa, perché richiede di rinunciare deliberatamente a trattare un gruppo.
- Difference-in-differences. Due gruppi, prima e dopo. Guardi se il trattato devia dalla traiettoria del non trattato.
- Regression discontinuity. Se una soglia arbitraria decide chi riceve cosa (sconto sopra 10.000 €), chi sta a 9.990 e chi a 10.010 sono quasi gemelli, e lì l'effetto si misura.
- Controlli sintetici. Costruisci il gemello mancante combinando altri.
E poi la cosa che dico sempre e che nessuno vuole sentire: se non hai un gruppo di controllo, non stai misurando l'effetto. Stai raccontando una storia coerente con i dati, e i dati sono compatibili con moltissime storie, comprese quelle in cui il tuo lavoro non è servito a niente. Non lo dico per pessimismo. È la ragione per cui insisto perché in ogni sistema che costruisco resti fuori una quota di clienti, negozi o articoli che il sistema non tocca. Costa una percentuale di efficienza. Compra l'unica risposta possibile alla domanda «ma questo affare, quanto ci ha fatto guadagnare?»: la domanda che, prima o poi, arriva sempre.
Il rilevatore di frodi al 99% che, quando suona, ha torto nel 91% dei casi.
Non è un rilevatore scadente. È un ottimo rilevatore, e il 91% è aritmetica. Ecco perché quasi ogni progetto di anomaly detection muore.
L'anomaly detection è ovunque: vendite improvvisamente strane, consumi insoliti, ordini sospetti, errori di produzione, accessi potenzialmente fraudolenti, picchi di reclami, agenti con comportamenti inconsueti, sensori che iniziano a dare valori bizzarri. Ha un pregio enorme rispetto a tutto il resto di questa risorsa: funziona anche senza sapere in anticipo cosa stai cercando. Non ti serve uno storico di frodi etichettate: ti serve sapere com'è fatto il normale, e segnalare ciò che non gli somiglia.
E ha un difetto che non è tecnico ma matematico, che nessun fornitore ti spiega, e che uccide più progetti di qualunque bug. Si chiama base rate fallacy, e si vede meglio con i numeri che con le parole.
Il teorema di Bayes, cioè la cosa che rovina la festa
P(frode | allarme) = P(allarme | frode)⋅P(frode) / P(allarme)
Sembra innocua. Applicala: rilevatore che prende il 99% delle frodi (sensibilità) e sbaglia solo 1 volta su 100 sulle transazioni oneste (falsi positivi 1%). Frodi reali: 1 su 1.000. Su un milione di transazioni ci sono 1.000 frodi (ne prendi 990) e 999.000 oneste (ne segnali 9.990 per errore). Totale allarmi: 10.980. Quanti sono frodi vere? 990. Il 9%. Il tuo rilevatore «al 99%» ha torto nove volte su dieci quando suona, e non ha sbagliato niente: ha fatto esattamente quello che prometteva. Il colpevole è P(frode): quando l'evento è raro, i falsi positivi arrivano da una popolazione enorme e sommergono i veri positivi.
Muovi le manopole e guarda chi arriva davvero all'operatore
Ogni quadratino è un allarme che qualcuno dovrà controllare. Arancione: frode vera. Grigio: persona onesta disturbata per niente.
La manopola che conta Lascia sensibilità al 99% e porta i falsi allarmi da 1% a 0,1%: la precisione fa un salto enorme. Su eventi rari, ridurre i falsi positivi vale dieci volte più che aumentare la sensibilità, ed è l'esatto contrario di quello che chiede ogni capitolato («deve prenderle tutte»). «Prenderle tutte» è facile: basta segnalare tutto. Il mestiere è non affogare chi deve guardare gli allarmi.
Il caso d'uso Un sistema di anomalie fatto bene non produce un muro di allarmi rossi. Produce venti casi al giorno, quelli che valgono, e una persona che ha il tempo di guardarli sul serio.
Come si progetta un sistema di anomalie che sopravvive.
- Non chiedere «è un'anomalia?», chiedi «vale la pena guardarla?». La domanda giusta è economica prima che statistica: un'anomalia da 12 euro è vera e inutile. Ordina per impatto atteso (probabilità × valore), non per stranezza.
- Dai all'operatore un budget, non una lista. Se può controllare venti casi al giorno, il sistema deve produrre i migliori venti, non trecento ordinati per punteggio. È un problema di ottimizzazione (cap. 14) travestito da rilevamento.
- Chiudi l'anello. Ogni allarme controllato è un'etichetta gratis: dopo sei mesi hai un dataset supervisionato e puoi passare dal «cosa è strano» al «cosa è frode», che è un mestiere diverso e molto migliore. Chi non registra l'esito dei controlli butta via l'unico dato che il sistema stava producendo.
Una regola che non tratto: un sistema di anomalie non si dimensiona sulla statistica. Si dimensiona su quante persone hai per guardare gli allarmi.
Sentiment, intenzioni, relazioni, tono di voce: cosa l'AI misura davvero, e cosa finge di misurare.
Metà di queste analisi sono solide e sottovalutate. L'altra metà è fisiognomica con le reti neurali. Sapere quale è quale ti salva un progetto.
Questa è la famiglia in cui l'LLM ha cambiato davvero le regole (cap. 20): il testo aziendale (note, mail, ticket, verbali, trascrizioni) è finalmente leggibile da una macchina. Ma è anche la famiglia in cui si vende più aria, perché quando il risultato è una parola invece che un numero, nessuno può dire che è sbagliato. Passiamole in rassegna con onestà: cosa misurano, e cosa gli viene attribuito.
Dove l'AI serve davvero Non a dare un voto a chi ha parlato. A mettere sul tavolo quello che nella call è successo per davvero: le obiezioni, le promesse, le domande rimaste aperte. Il resto è un lavoro tra due persone, e lo rimane.
La domanda che smaschera tutto, in ogni riga di questa tabella: «se due persone brave facessero questo lavoro a mano, sarebbero d'accordo tra loro?» Se sì, il modello può farlo. Se no, il modello non sta misurando: sta scegliendo.
È il criterio più utile che conosco, perché è verificabile in mezza giornata e non richiede di essere tecnici. Su «di cosa parla questa mail» due persone sono d'accordo quasi sempre → automatizzabile. Su «questo cliente è arrabbiato o solo diretto» sono d'accordo a fatica → aggregati sì, decisioni sul singolo no. Su «questa persona era sincera» non sono d'accordo per niente → non esiste il dato, e nessuna quantità di rete neurale lo fa esistere. Un modello addestrato su etichette su cui gli umani non concordano impara la media dei disaccordi: un numero preciso, riproducibile e privo di significato.
Quando il futuro non ha dati, fabbricalo: diecimila futuri invece di uno.
«Se aumentiamo i prezzi del 5%?» Questa è una domanda su un mondo che non esiste, altro che previsione. Per rispondere, lo si costruisce.
Le domande che arrivano sempre in consiglio: e se aumentiamo i prezzi del 5%? E se perdiamo un fornitore? E se apriamo un nuovo magazzino? Se assumiamo altri agenti? Se cambiamo le scorte minime? Se la domanda cresce o crolla? Se dimezziamo i tempi di consegna? Nessuna di queste ha dati storici: sono mondi che non sono mai accaduti. Il machine learning qui non ha niente da masticare: impara dal passato, e il passato non contiene questi scenari.
La risposta è più vecchia dell'AI e la usano da ottant'anni: costruisci un modellino del mondo, buttaci dentro il caso, e falla girare diecimila volte. Monte Carlo: nasce a Los Alamos nel 1946 con Ulam e von Neumann, e prende il nome dal casinò. L'idea è di una semplicità imbarazzante: se non sai calcolare la distribuzione del risultato, campionala. Simula un futuro con valori estratti a caso dalle distribuzioni che conosci, segna il risultato, e ripeti diecimila volte. Alla fine non hai una previsione: hai l'intera distribuzione degli esiti, cioè esattamente ciò che serve per decidere (cap. 12).
Il pregio decisivo rispetto a tutto il resto della risorsa: non serve storico, serve capire come funziona il tuo sistema. Le ipotesi le metti tu, e sono discutibili, che è un enorme vantaggio: si può litigare su un'ipotesi, non si può litigare con una rete neurale.
«E se aumentiamo i prezzi del 5%?» · 2.000 futuri simulati
Il prezzo sale, i volumi scendono (di quanto? non lo sai con certezza: è un intervallo), i costi ballano. Il margine finale è tutta questa forma.
Cosa cambia in riunione «Alzando del 5% guadagniamo di più» è un'opinione. «Alzando del 5% miglioriamo nel 68% degli scenari, ma nel 5% peggiore perdiamo 90.000 euro» è una decisione, e finalmente si può discutere della cosa giusta: quel 5% peggiore lo possiamo reggere?
Il futuro messo sul tavolo Un singolo scenario non dice niente. Duemila scenari hanno una forma, e su quella forma si può finalmente discutere in due. È l'intera idea di Monte Carlo e, in fondo, di questa risorsa: rinunciare al numero per guadagnare la distribuzione.
La famiglia completa.
- Monte Carlo. Quando conosci le distribuzioni delle grandezze in gioco.
- Modelli ad agenti. Quando il risultato emerge dall'interazione di tanti attori con regole semplici: code, contagi, mercati, folle. Non calcoli l'esito, lo fai succedere.
- Digital twin. La copia software di un impianto fisico, alimentata dai sensori reali, su cui provi le modifiche prima di farle sul ferro.
- Analisi di sensibilità. La variante più economica e più sottovalutata: muovi un'ipotesi alla volta e guarda quanto trema il risultato. Ti dice dove concentrare gli sforzi. Se il margine è sensibilissimo all'elasticità e insensibile al costo del trasporto, sai su quale delle due vale la pena litigare.
Una simulazione non predice il futuro. Ti restituisce, in forma leggibile, le conseguenze delle cose che credi già: comprese quelle che non sapevi di credere.
Ed è anche il limite, che va detto forte perché la bellezza dei grafici è ipnotica: garbage in, gospel out. Il modello ti dà le tue ipotesi, ma vestite da risultato, con tanto di percentili e istogramma. Le difese sono due, entrambe banali e quasi mai applicate. Primo: scrivi le ipotesi accanto al risultato, sempre e in chiaro. Quel «−0,8 / −2,0 di elasticità» sembra un dettaglio tecnico, e invece è la conclusione. Secondo: fai l'analisi di sensibilità prima di presentare. Se il risultato ribalta il segno quando muovi un'ipotesi che nessuno sa stimare, non hai una risposta: hai scoperto quale numero l'azienda deve andare a misurare. Che è comunque un ottimo risultato, solo diverso da quello che cercavi.
Quanto costa davvero: il conto che nessuno fa prima, e che tutti fanno dopo.
Un modello ML che gira su cinquantamila clienti costa meno di un caffè al mese. La stessa analisi con un LLM può costare come un dipendente. Ecco l'aritmetica.
Questo capitolo esiste perché ho una regola personale, e la applico anche ai clienti: non bruciare soldi. È sorprendentemente facile violarla proprio mentre si cerca di ottimizzare: mettere un modello linguistico dove bastava una query, e scoprirlo a fine trimestre. Quindi facciamo i conti, con i numeri veri e la struttura vera dei costi, che è profondamente diversa tra le due famiglie.
Il ML classico ha costi a scalino. Sviluppo: settimane di persona, il grosso della spesa, una volta sola. Addestramento: da secondi a ore su una macchina normale. Un gradient boosting su centomila righe e cinquanta colonne si allena in un minuto sul tuo portatile. Inferenza: microsecondi, praticamente gratis. Fare una previsione o farne dieci milioni cambia la bolletta di pochi centesimi. Il costo ricorrente è l'infrastruttura (pochi euro al mese) e il presidio: qualcuno che guardi il drift, che è la voce vera e quella che nessuno mette a budget.
L'LLM ha costi lineari. Sviluppo: giorni invece di settimane, perché scrivi un prompt e non addestri nulla. È il suo vantaggio reale. Addestramento: zero. Inferenza: paghi ogni singola volta, per sempre, a token. È un costo variabile puro, e sui volumi aziendali il variabile puro è quello che ti sorprende. Il calcolatore qui sotto usa i listini reali di luglio 2026 (Anthropic, dollari per milione di token): Opus 4.8 $5 in ingresso / $25 in uscita; Sonnet 5 $3/$15; Haiku 4.5 $1/$5. Le due leve serie: la cache del prompt (le parti che si ripetono identiche costano circa un decimo in lettura) e le chiamate a lotti (metà prezzo se accetti di aspettare ore invece di secondi).
Il calcolatore: la stessa analisi, due famiglie
Un'analisi per record (classificare un ticket, valutare un lead, estrarre dati da un documento). Muovi il volume e guarda le due curve separarsi.
Onestà sui numeri Listini Anthropic di luglio 2026 (i prezzi cambiano: verifica prima di firmare). Il ML è stimato a 60 € al mese di infrastruttura e presidio, indipendenti dal volume: è l'ordine di grandezza reale di un boosting che gira su un container che si spegne da solo, più la sua sorveglianza. Non è nel conto lo sviluppo iniziale, che è la voce grossa del ML e la voce piccola dell'LLM: prova a metterla tu, mentalmente, e guarda a che volume si riassorbe.
La domanda non è «quanto costa un'analisi». È: quante ne farò al mese, per quanti mesi, e cosa succede quando il volume decuplica?
Le cinque regole che applico, e che valgono più di qualunque negoziazione sul listino.
- Usa l'LLM una volta sola per record, mai dentro un ciclo. Il pattern «per ogni riga chiedo al modello» è quello che porta i conti a quattro zeri. Quasi sempre puoi chiedere al modello di scrivere il codice che elabora tutte le righe (cap. 22), e pagare una chiamata invece di cinquantamila.
- Metti in cache tutto ciò che si ripete: il prompt di sistema, gli esempi, lo schema. Il calcolatore te lo fa vedere: con l'80% del prompt in cache il conto crolla, e la qualità non peggiora di una virgola.
- Usa il modello più piccolo che regge il compito. Classificare un ticket in cinque categorie non richiede il modello di punta. Misura, non tifare.
- A lotti tutto ciò che non è interattivo. Metà prezzo per una cosa che nessuno stava aspettando.
- Distilla. È la più importante. Fai etichettare all'LLM diecimila esempi una volta sola (costo: una tantum), allena su quelle etichette un classificatore da quattro soldi, e mandalo in produzione. Paghi l'intelligenza una volta e la usi per sempre. È il trucco che ho visto abbattere di più i costi ricorrenti, e quasi nessuno lo usa perché è meno divertente che chiamare l'API.
E il costo che non è in nessun listino: la latenza. Un boosting risponde in venti millisecondi, un LLM in due o tre secondi. Se l'analisi sta dentro una schermata che un operatore usa duecento volte al giorno, quei tre secondi sono dieci minuti al giorno per persona, che nel conto economico pesano più della bolletta dell'API. Il costo di un sistema è il suo prezzo più il tempo che ruba a chi lo usa.
I sistemi che funzionano sono ibridi. Sempre.
Nessuna delle otto famiglie, da sola, risolve un problema aziendale intero. Il mestiere è il montaggio.
Se hai letto fin qui hai visto otto famiglie e venti analisi, ognuna con il suo limite. La conclusione operativa è una sola, e la vedo confermata in ogni progetto: un sistema reale ne usa quattro o cinque insieme, ciascuna nel punto in cui è imbattibile, e nessuna fuori dal suo mestiere.
Ecco un sistema che ho in testa quando parlo con una rete vendita. L'ho vista prendere questa forma in ogni progetto che è sopravvissuto.
Cinque famiglie, cinque mestieri, zero sovrapposizioni Il modello linguistico sta agli estremi: legge le parole all'ingresso, produce le parole all'uscita. La probabilità la calcola la matematica. La decisione la prende l'ottimizzatore. E la statistica, in mezzo, controlla che tutto questo serva davvero a qualcosa. È l'unico pezzo che nessuno mette, ed è quello che salva il progetto quando il consiglio chiede il conto.
Le tre regole del montaggio, le stesse in ogni sistema che ho costruito.
- Ogni pezzo fa un mestiere solo. Quando qualcosa va storto, e andrà storto, devi poter dire quale pezzo ha sbagliato. Nei sistemi impastati la diagnosi diventa archeologia.
- I numeri non passano mai per la bocca del modello linguistico (cap. 21). L'LLM può chiedere, spiegare, contestualizzare. Calcolare no.
- L'anello si chiude. Cosa ha deciso il sistema, cosa è successo, e la quota che il sistema non tocca per poterlo sapere (cap. 15 e 26). Un sistema che non misura sé stesso è un'opinione che gira in produzione.
Non esiste il progetto AI. Esiste un problema, tagliato nei pezzi giusti, e per ogni pezzo lo strumento più economico che lo risolve. Spesso il più economico è anche il più vecchio.
Ogni tema di questa pagina è una questione di soldi travestita da tecnica.
Togli il vocabolario e resta un bilancio. È il capitolo che porto in direzione, non in sala macchine.
Faccio la traduzione, riga per riga, perché è l'esercizio più utile che conosco per capire se un progetto ha senso prima di iniziarlo.
| Come lo dice il tecnico | Cosa vuol dire in bilancio | Quando presenta il conto |
|---|---|---|
| Overfitting | Hai comprato un modello che funzionava solo nella demo | Al terzo mese di produzione, quando i numeri smettono di tornare e nessuno sa dire da quando. |
| Leakage | Hai approvato un investimento su una misura falsa | Subito, ma te ne accorgi dopo un anno. È il più caro di tutti perché ha viziato anche la decisione di comprare. |
| Rumore irriducibile (σ²) | Il tetto di quanto puoi guadagnare da questo progetto | Se non lo stimi prima, lo scopri spendendo. È la voce che trasforma un budget in un pozzo. |
| Orizzonte di prevedibilità | Oltre quella data stai pagando per scrivere narrativa | Ogni volta che qualcuno chiede il piano a 18 mesi «ma preciso». |
| Intervallo di confidenza | Quanto capitale devi immobilizzare per dormire | Sempre, silenziosamente, sotto forma di scorte di sicurezza decise a naso. |
| Quantile ottimo (newsvendor) | La leva più economica che hai: due righe, decine di migliaia di euro | Il giorno in cui qualcuno finalmente quantifica Cu e Co. Di solito mai. |
| Drift | L'asset che si svaluta da solo mentre nessuno guarda | Tra il dodicesimo e il ventiquattresimo mese. Puntuale. |
| Feedback loop | Il sistema che si autoconferma e taglia fuori mercato buono | Mai apertamente. Si vede solo come fatturato che non è mai esistito. |
| Allucinazione numerica | Una decisione presa su un numero inventato, con la firma di qualcuno sotto | Nel momento peggiore, e sempre davanti a qualcuno che chiede spiegazioni. |
| Baseline non misurato | Un progetto intero che forse non serviva | Alla domanda «quanto ci ha fatto guadagnare?», a cui nessuno sa rispondere. |
Il punto d'arrivo Una persona che decide, e che sa perché. Tutta la matematica di questa pagina esiste per far sì che quel momento sia informato invece che coraggioso.
Un sistema previsionale non vale per quanto azzecca. Vale per quante decisioni migliori ha reso possibili, e per quante volte ha avuto il coraggio di dire «non lo so».
L'esame del senior: le domande che ti fanno dire «so governare le previsioni».
Non sono domande da colloquio. Sono le domande da fare in riunione, a un fornitore, a un collega, a te stesso.
Ogni domanda ha la trappola (la risposta che sembra giusta e che sento nel 90% dei casi) e la risposta da senior. Se ne reggi tredici su venti senza aprire, questa risorsa ti ha fatto il suo lavoro.
01Il modello ha il 97% di accuratezza. Ti fidi?›
La trappola «Ottimo, mettiamolo in produzione.»
Da senior No. Il 97% è il sintomo più affidabile che qualcosa non va. Prima domanda: qual è la classe maggioritaria? Se il 97% dei clienti non abbandona, un modello che risponde sempre «non abbandona» fa 97% e non serve a niente. L'accuratezza su classi sbilanciate è una metrica priva di senso: si guarda precision/recall, PR-AUC, o direttamente il costo. Seconda domanda: come avete diviso i dati? Se è un k-fold casuale su una serie temporale, il numero è fabbricato (cap. 07). Terza: c'è dentro una feature del futuro? Il 97% al primo colpo è leakage finché non è provato il contrario.
02Gli LLM sono deterministici?›
La trappola «No, sono probabilistici per natura.»
Da senior Il modello sì, il servizio no. E la distinzione è tutto. Il calcolo dei logit è deterministico: stessi pesi e stesso input danno lo stesso vettore. La casualità la mette il campionamento (temperatura), che è una scelta di progetto, non una proprietà del modello. A T=0 restano fonti reali di variabilità: non associatività della virgola mobile su GPU, batching non deterministico (chi è in coda con te), versione del modello che cambia sotto, contesto che non è mai identico. La conseguenza operativa: se il numero finisce in un database, servono T=0, seed, versione bloccata, output a schema e log del prompt esatto. E ricorda: stabile non vuol dire giusto.
03Perché il modello «impara» ma non capisce?›
La trappola «Perché non ha coscienza.»
Da senior Perché minimizza una funzione di costo sui dati che gli hai dato. Punto. Impara la distribuzione congiunta del tuo dataset, correlazioni comprese. Se nel tuo storico i contratti grandi li firmava il commerciale migliore, imparerà «commerciale migliore → firma», e ti consiglierà di mandarlo dappertutto. Non ha modo di distinguere causa da correlazione, perché nei dati osservativi quella distinzione non c'è. Se ti serve la causa servono esperimenti (A/B), o inferenza causale, o entrambe.
04Il cliente chiede di prevedere le vendite. Da dove parti?›
La trappola «Dai dati storici, vediamo cosa c'è.»
Da senior Dalla decisione. Non dai dati. Tre domande, in quest'ordine: quale decisione cambia in base al numero? Con quanto anticipo va presa (è quello, e solo quello, l'orizzonte da valutare)? Cosa costa sbagliare per eccesso rispetto a per difetto? Se la risposta alla prima è «nessuna, è per un cruscotto», il progetto giusto è un grafico e glielo dico. Se alla terza il rapporto è 10 a 1, non serve una previsione: serve un quantile, e il progetto è metà del previsto.
05Perché un modello più semplice può battere uno più potente?›
La trappola «Perché i dati sono pochi.»
Da senior Per l'algebra: errore atteso = bias² + varianza + σ². Il modello potente abbassa il bias e alza la varianza. Se il fenomeno ha σ² alto, la varianza in più è pura memorizzazione di rumore: il modello impara le coincidenze del tuo campione. Corollario controintuitivo e verissimo: più il fenomeno è rumoroso, più il modello giusto è semplice. Ed è perché sui dati tabellari aziendali una regressione fatta bene batte spessissimo la rete neurale.
06Come validi un modello su serie storiche?›
La trappola «Cross-validation a 5 fold.»
Da senior Mai casuale. Walk-forward, con embargo, all'orizzonte della decisione. Origine mobile: ti posizioni in un istante del passato, prevedi senza sapere nulla del dopo, avanzi. Aggiungi un intervallo di guardia tra fine training e inizio test, perché l'autocorrelazione fa filtrare informazione anche attraverso il confine. E valuti all'orizzonte che ti serve: se ordini a sei settimane, l'errore a una settimana è un numero bello e irrilevante.
07Qual è il primo modello che provi, sempre?›
La trappola «XGBoost, poi ottimizzo.»
Da senior Il baseline stupido: «come l'anno scorso», «come ieri», «la media di tre». Non lo dico per modestia. È metodo: senza baseline nessun numero ha significato. Il 12% di errore è splendido o pessimo? Dipende solo da quanto fa il naïve. È anche la domanda più efficace da fare a un fornitore: «di quanto battete il naïve stagionale?». Chi esita, non l'ha misurato. E se non l'ha misurato, non sa se il suo prodotto funziona.
08Come riconosci un leakage prima che ti costi?›
La trappola «Guardo se la feature è sospetta.»
Da senior Per ogni feature: «alle 9 di lunedì, quando devo decidere, ce l'ho già con questo esatto valore?» I quattro tipi: dal futuro (i solleciti per predire l'insoluto), nella preparazione (normalizzi prima di splittare), per duplicati (lo stesso cliente in train e test), temporale (k-fold casuale). Il più cattivo: i campi corretti retroattivamente. Nel database ci sono, sembrano innocenti, e non c'erano quando serviva. Difesa strutturale: point-in-time correctness. Sintomo universale: va troppo bene. Un risultato splendido al primo colpo è un errore finché non hai provato il contrario.
09Perché il meteo non arriverà mai a 30 giorni?›
La trappola «Serve più potenza di calcolo.»
Da senior Perché l'errore cresce esponenzialmente e il rimedio entra in un logaritmo. δ(t) ≈ δ₀eλt, quindi Tmax ≈ (1/λ)·ln(Δ/δ₀). Per raddoppiare l'orizzonte serve una misura esponenzialmente più precisa: mezzo secolo di supercomputer ci ha portati da 3 a ~10 giorni. La risposta dell'industria è stata cambiare oggetto, non aggiungere potenza. Non «pioverà», ma «con che probabilità»: cinquantuno simulazioni perturbate, e il ventaglio è la previsione. Traduzione per te: il tuo fenomeno ha un λ e non l'hai mai stimato. Fallo (errore contro orizzonte in walk-forward) e saprai dove smettere di spendere.
10Perché il meteo si prevede e la borsa no?›
La trappola «Perché i mercati sono più complessi.»
Da senior Perché l'atmosfera non legge le previsioni del tempo. I mercati sì. Il meteo è caotico ma indifferente. Il mercato è riflessivo: se scopri un pattern e lo sfrutti, il tuo stesso sfruttamento lo cancella. La prevedibilità si autodistrugge. Ma attenzione al corollario, che è la parte utile: il livello è imprevedibile, la volatilità no. Il volatility clustering è stabile e modellabile (GARCH, Nobel 2003). Su questo è costruita l'intera industria del rischio. Lezione generale: quando la media non è prevedibile, spesso la dispersione lo è. Ed è quella che serve per decidere.
11Il fornitore ti mostra una banda di confidenza. Cosa chiedi?›
La trappola «Bene, c'è anche l'incertezza.»
Da senior «La vostra banda all'80%, sul backtest, ha coperto l'80% dei casi? Fatemi vedere il conteggio.» Una banda è calibrata se la copertura empirica corrisponde a quella nominale. Una banda stretta è più bella e più bugiarda: stringerla del 40% raddoppia i complimenti in demo e dimezza il valore. Come si ottengono bande oneste: quantile regression (pinball), conformal prediction (copertura garantita, nessuna ipotesi sulla distribuzione), ensemble. E la metrica giusta è CRPS o pinball media, non MAE, che sono proper: non esiste modo furbo di barare.
12Modello A ha MAE 100, modello B ha MAE 130. Quale scegli?›
La trappola «A, ovviamente.»
Da senior Dipende da che parte sbagliano, e quanto costano i due lati. Il newsvendor: q* = F⁻¹(Cu/(Cu+Co)). Se sottostimare costa 9 volte più che sovrastimare, la scelta ottima è il 90° percentile e la media non c'entra niente. Un modello con MAE peggiore ma sbilanciato dalla parte giusta guadagna di più. L'ho fatto vedere nella demo del capitolo 13, con i numeri in euro. Il rimedio povero e potentissimo: pinball loss con il τ che esce dal newsvendor. Due righe, e il modello smette di inseguire la media e insegue i tuoi soldi.
13«Usiamo l'AI generativa per prevedere la domanda.» Che cosa rispondi?›
La trappola «Non funziona, gli LLM allucinano.»
Da senior «Intendete un LLM, un foundation model per serie storiche, o un LLM che chiama un modello? Sono tre progetti diversi.» Un LLM in zero-shot sa fare forecasting meglio del previsto (prevedere il token e prevedere il punto sono lo stesso problema: P(prossimo|passato)) ma non è verificabile, costa mille volte tanto, l'incertezza se la inventa e non migliora coi tuoi dati. Un foundation model per serie (Chronos, TimeGPT, Moirai) con un LLM non c'entra niente: lo addestrano su serie vere, non su testo. Ha senso con tante serie corte. Un LLM che chiama lo strumento è l'architettura giusta, ed è probabilmente quella che vogliono senza saperlo dire.
14Dove metti l'LLM in un sistema previsionale?›
La trappola «A generare la previsione, con i dati nel prompt.»
Da senior Agli estremi della catena. Mai nel mezzo, dove si fanno i conti. All'ingresso: trasformare in colonne l'80% dell'informazione aziendale che è testo: note, mail, ticket, verbali. È il valore più grande e più trascurato: il segnale c'era, era scritto, nessun modello poteva leggerlo. All'uscita: spiegare in italiano perché il modello dice quel numero. È ciò che trasforma un modello ignorato in un modello usato. Mai: produrre il numero che finisce nel database. Quello lo calcola lo strumento, con un'esecuzione che puoi rieseguire.
15Come ti accorgi che un LLM ha allucinato un numero?›
La trappola «Lo rivede una persona.»
Da senior Non funziona: la persona non ha il numero giusto da confrontare. Se ce l'avesse, non avrebbe chiesto. Serve il sistema, su quattro livelli: schema (output vincolato, mai testo libero), dominio (limiti fisici e storici: le vecchie regole, che qui fanno benissimo il loro lavoro), statistica (fuori dall'intervallo conformal di un modello di riferimento → allarme), autoverifica (k campionamenti: se l'IQR esplode, escalation; e ricalcolo con lo strumento). E il principio che tiene tutto: un sistema che risponde sempre è un sistema che mente bene. La fiducia si costruisce sui rifiuti onesti, non sulle previsioni azzeccate.
16«Il nostro rilevatore prende il 99% delle frodi.» Cosa chiedi?›
La trappola «Ottimo, quante ne perdiamo?»
Da senior «Quando suona, quante volte ha ragione? E quanti allarmi al giorno genera?» Sensibilità e precisione sono due cose diverse, e su eventi rari divergono brutalmente. Rilevatore al 99% con l'1% di falsi positivi su una frode ogni 1.000: su un milione di transazioni fai 990 catture e 9.990 falsi allarmi. Precisione: 9%. Non ha sbagliato niente: è Bayes. La manopola che conta su eventi rari è abbassare i falsi positivi, non alzare la sensibilità. «Prenderle tutte» è gratis: basta segnalare tutto. E la domanda finale è economica: ordina per impatto atteso, non per stranezza, e dimensiona sugli allarmi che una persona può davvero controllare.
17«La campagna ha aumentato le vendite del 12%.» Cosa rispondi?›
La trappola «Bene, rifacciamola.»
Da senior «Rispetto a chi? Chi non l'ha ricevuta?» Senza gruppo di controllo, il +12% contiene l'effetto e la selezione: la campagna è andata ai clienti buoni, nel mese buono. La differenza che misuri è E[Y|X=1]−E[Y|X=0], mentre quella che ti serve è E[Y(1)−Y(0)]. Sono due quantità diverse, e i dati osservativi contengono solo la seconda. Il rimedio sta nel disegno, si decide prima, e di statistico non ha nulla: A/B randomizzato (il re, perché bilancia anche ciò che non hai misurato), diff-in-diff, discontinuità su soglia, controlli sintetici. Corollario operativo: tieni sempre fuori una quota di clienti/negozi/articoli. Costa un po' di efficienza e compra l'unica risposta possibile a «quanto ci ha fatto guadagnare?».
18Il totale dice che il nuovo processo è peggiore; i due reparti dicono che è migliore. Chi ha ragione?›
La trappola «Uno dei due conti è sbagliato.»
Da senior Nessuno dei due: è il paradosso di Simpson, ed entrambe le tabelle sono corrette. Il nuovo processo è stato usato soprattutto dove il lavoro è più difficile. Il totale non misura il processo: misura dove è stato applicato. Quale delle due tabelle risponde alla domanda? Quella divisa per reparto, ma a dirtelo non sono i dati: te lo dice sapere che i reparti hanno difficoltà diverse e che il reparto influenza sia l'adozione sia l'esito. È conoscenza del dominio, non statistica. Ed è il motivo per cui due persone oneste, sullo stesso cruscotto, arrivano a conclusioni opposte in perfetta buona fede.
19«Analizziamo il tono di voce delle call per capire chi è sincero e chi è arrabbiato.»›
La trappola «Serve un modello audio migliore.»
Da senior Il criterio: se due persone brave lo facessero a mano, sarebbero d'accordo tra loro? Su «di cosa parla questa call» → sì, quasi sempre: automatizzabile. Su «è arrabbiato o solo diretto» → a fatica, l'accordo umano sul sentiment è ~80%: quello è il tetto, usalo per aggregati e tendenze, mai sul singolo caso. Su «era sincero» → non sono d'accordo per niente: il dato non esiste, e nessuna rete neurale lo fa esistere. Un modello addestrato su etichette su cui gli umani non concordano impara la media dei disaccordi: un numero preciso, riproducibile e privo di significato. Della voce prendi ciò che è fisico: trascrizione (ottima), chi parla, pause, sovrapposizioni, rumori anomali dei macchinari. Il resto, in Europa e sui lavoratori, è anche un problema legale prima che tecnico.
20Devi analizzare 200.000 documenti al mese. Come lo imposti?›
La trappola «Un LLM per documento, è il modo più semplice.»
Da senior Prima fai il conto, poi scegli. Il costo dell'LLM è lineare per sempre; quello del ML è a scalino. Le leve, in ordine: cache del prompt che si ripete (l'input cachato costa ~un decimo), modello più piccolo che regge il compito (misurato, non tifato), a lotti se nessuno aspetta la risposta (metà prezzo), e una chiamata per record, mai un LLM dentro un ciclo. Fatti scrivere il codice che elabora tutte le righe. La mossa vera è la distillazione: fai etichettare all'LLM diecimila esempi una volta, allena un classificatore su quelle etichette, mandalo in produzione e tieni l'LLM per i casi difficili. Paghi l'intelligenza una volta e la usi per sempre. E il costo che non è in nessun listino: la latenza. Tre secondi contro venti millisecondi, su una schermata usata 200 volte al giorno, sono dieci minuti al giorno per persona.
La differenza tra chi usa l'AI sui dati e chi la governa non è sapere più algoritmi. È sapere dove sta il confine del prevedibile, quanto costa sbagliare da ciascun lato, e quale pezzo della macchina deve produrre il numero. Il resto sono librerie, e le sanno usare tutti.
Guardiamolo sul tuo caso, non in teoria.
Se ti stai chiedendo chi ti ha scritto tutto questo: sono Matteo Migliore, ho fondato Sviluppatore Migliore e sono ventisei anni che costruisco sistemi in cui il software deve decidere qualcosa e poi risponderne. Le cose che hai letto qui non vengono solo dai paper. Vengono dalle volte in cui ho creduto a un 97% che era leakage, dalle previsioni che ho difeso troppo a lungo, e dalle riunioni in cui la domanda giusta («quanto costa sbagliare da quale lato?») ha risolto in venti minuti un problema su cui si lavorava da mesi.
Se leggendo hai avuto il sospetto che qualcosa di simile stia succedendo anche da te: un modello che nessuno guarda più, un piano a sei mesi su un fenomeno che non ha sei mesi di orizzonte, una previsione bellissima che non ha cambiato una sola decisione, o un entusiasmo per l'AI generativa senza che nessuno abbia chiesto quale dei tre progetti si sta comprando: è esattamente quello che vado a cercare quando entro in un'azienda. E di solito lo si vede in mezza giornata, guardando i dati veri: non serve un progetto per capire se un progetto ha senso.
Scrivimi su WhatsApp, risponde Silvia e fissiamo mezz'ora. Se non c'è niente da fare, te lo dico: è la cosa che mi fa risparmiare più tempo e a te più soldi.
