Model driven e data driven
Abbiamo già accennato alle due “anime” dell’AI: insegnare alle macchine tramite esempi o tramite regole. Se ci pensate, si tratta degli stessi metodi che usiamo noi esseri umani per imparare. Un bambino, infatti, impara a parlare molto prima di andare a scuola, e lo fa semplicemente imitando gli adulti che lo circondano (un processo affasciante, tuttora compreso solo in minima parte). Poi, andando a scuola, impara le regole della grammatica, che raffinano ulteriormente la sua competenza linguistica.
Approccio data driven
Nell’approccio data-driven (detto spesso Machine Learning – ML), un grande (talora immenso) insieme di esempi viene fornito alla macchina, insieme alla struttura di un modello. Questo modello può essere visto come una funzione matematica: accetta in ingresso un numero e restituisce in uscita un altro numero. Il modello contiene un certo numero di parametri, non specificati; lo scopo dell’addestramento è dare un valore a questi parametri.
Per esempio, un modello potrebbe essere la funzione della retta y=a⋅x+b, dove a e b sono appunto parametri non specificati. Questo modello, scritto così, definisce quindi la funzione di una retta qualsiasi.
Immaginiamo ora di avere un insieme di punti (xi, yi), che costituiscono i miei esempi (il dataset, come è tipicamente chiamato). Posso utilizzare un metodo matematico chiamato “regressione lineare” per trovare la retta che approssima meglio i punti, come illustrato dalla figura (in rosso i punti (xi, yi), in blu la retta trovata). Questa retta è sempre basata sul modello y=a⋅x+b, ma a e b hanno adesso valori ben precisi (quali siano esattamente i calcoli che ho eseguito non è importante; basti solo sapere che esiste una procedura che mi permette di calcolare a e b, dato l’insieme di punti).
Immaginiamo che sull’asse delle ascisse ci sia il tempo t, e che i puntini rossi rappresentino delle misure di una certa quantità fisica (misure affette da errori), la retta trovata permette di predire come si comporterà in futuro (per t > 4) questa quantità fisica, al di là dell’errore di misura.
Abbiamo usato un metodo matematico particolare per dare valore ai due parametri; possiamo però pensarlo come una particolare procedura di addestramento, che si può usare nel caso specifico del modello della retta. Cambiando modello, si useranno altre procedure di addestramento.
Quindi, una volta scelto un modello, che contiene un certo numero di parametri, l’approccio data-driven usa i dati per fissare i valori di questi parametri. Va da sé che il numero di parametri è una componente essenziale: più sono e maggiore è la “potenza espressiva”, per così dire, del modello. Nel caso precedente, data la forma della nuvola di punti, una retta andava bene, ma nel caso generale può essere necessario un modello in grado di approssimare una nuvola dall’aspetto molto più “contorto”.
Nel corso di decenni sono stati proposti moltissimi modelli diversi, più o meno adatti a certi tipi di dati (numeri, testo, classi, serie temporali, ecc.), più o meno “espressivi” e più o meno facili da addestrare (per “facile da addestrare” intendo che la procedura di addestramento non richiede una grande potenza di calcolo, e garantisce di trovare i valori ottimali dei parametri).
Le reti neurali sono uno di questi modelli, ma sfortunatamente non sono facili da addestrare: la procedura di addestramento richiede grande potenza di calcolo e non garantisce di arrivare ai parametri ottimali. Per questo motivo le reti neurali sono state “dimenticate” per lungo tempo (vedremo nella parte 4 perché sono “esplose” negli ultimi anni).
Una rete neurale è fondamentalmente una funzione, altamente non-lineare, che contiene una grande quantità di parametri. Quanti? Le reti più gradi ne contengono migliaia di miliardi.
Queste reti sono addestrate utilizzando miliardi di “punti”, dove ogni “punto” non deve essere necessariamente una coppia di numeri. Per esempio, una rete che deve fungere da traduttore italiano-inglese viene addestrata utilizzando un dataset composto da un (lunghissimo) elenco di coppie di frasi, come:
(“Questo è un esempio”, “This an example”)
La numerosità del dataset è un altro elemento essenziale: più sono i “punti” (tecnicamente, sono chiamati “campioni” o sample) e migliore sarà il modello addestrato. La combinazione migliore è quindi quella che vede un modello contenente tanti parametri, addestrato con tanti campioni. Quindi, è cruciale che sia possibile raccogliere o preparare in qualche modo una grande quantità di dati, operazione spesso costosa e complessa. Per esempio, tornando all’esempio del traduttore, sarebbe necessario trovare una grande quantità di documenti che qualcuno ha già tradotto, oppure pagare dei traduttori che creino su richiesta le traduzioni necessarie.
Le procedure di addestramento sono numerose, a seconda della tipologia di modello, del problema che il modello sarà chiamato a risolvere, ecc. [1]
Approccio model driven
L’approccio model-driven si basa invece sull’idea di insegnare la “grammatica” alla macchina. Ma come si definisce la “grammatica” del problema che la macchina, una volta pronta, dovrebbe risolvere? L’idea è creare una base di conoscenza (Knowledge Base – KB), ossia un “contenitore” in cui inserire la descrizione del problema sotto forma di formule logiche, e usare poi la logica stessa per derivare nuova informazione. Il “ragionamento” viene quindi descritto come una serie di inferenze logiche che, alla fine, portano a un risultato.
Il classico esempio è il sillogismo, sintetizzato dalla frase “Tutti gli esseri umani sono mortali, Socrate è un essere umano, quindi Socrate è mortale”.
All’inizio la base di conoscenza contiene solo una regola: per qualsiasi entità x, se x è Umano allora x è Mortale. In logica:
∀x, Umano(x) ⇒ Mortale(x)
Si immagini che, a un certo punto del suo funzionamento, l’informazione Socrate è umano venga acquisita dal sistema di AI, e sia aggiunta alla base di conoscenza. In logica:
Umano(Socrate)
Il sistema di AI ha quindi la possibilità di effettuare un sillogismo, che aggiungerà alla base di conoscenza una nuova informazione: Socrate è Mortale. In logica:
∀x, Umano(x) ⇒ Mortale(x)
Umano(Socrate)
---------------------------
Mortale(Socrate)
Questo approccio non ha bisogno di raccogliere dati: la conoscenza viene passata al sistema non tramite esempi ma tramite una descrizione delle regole sottese al problema da risolvere. Tornando ancora al traduttore, un sistema che funzionasse secondo l’approccio model-driven conterrebbe un lungo elenco di regole che descrivono come tradurre una generica frase italiana nella corrispondente inglese, trasformando grammatica e lessico italiani nei corrispondenti inglesi. Come si può comprendere, la difficoltà è descrivere tutte e sole le regole necessarie, senza commettere errori, senza contraddirsi, e fornendo una descrizione completa e non ambigua di tutti i casi grammaticali e lessicali possibili.
Di fatto, questo approccio è molto difficile da implementare per problemi complessi e intrinsecamente ambigui (e, per esempio, tradurre una frase è un problema molto complesso, soprattutto perché il linguaggio umano è intrinsecamente ambiguo; basta vedere quanto dissimili possano essere le traduzioni di una stessa frase, fornite da traduttori diversi).
Data driven vs model driven
L’IA moderna è basata sull’approccio data-driven che, utilizzando reti neurali complesse e potenti GPU, ha dimostrato di poter ottenere risultati eccezionali. Ma l’approccio model-driven non deve essere scartato a priori. Proponiamo di seguito un elenco analitico di pregi (+) e difetti (–) di questi approcci.
Data driven:
+ Il modello apprende dai dati; non è necessario definire esplicitamente le regole sottese al problema da risolvere.
+ Esistono modelli (le reti neurali, in particolare) che sono costituiti da un numero elevatissimo di parametri, e che quindi possono essere addestrate con quantità immense di informazioni, affrontando con successo problemi complessi.
+ In genere, l’esperienza empirica mostra che l’approccio data-driven porta a risultati superiori a quelli che si possono raggiungere con l’approccio model-driven.
– I dati sono essenziali, e spesso è necessario raccoglierne in grandissime quantità. Senza dati nessun modello è in grado di fornire prestazioni soddisfacenti. Raccogliere i dati può essere un processo molto lungo e costoso. Ci sono poi problemi legati al copyright sui dati [2].
– Il processo di addestramento può richiedere una enorme potenza di calcolo ed enormi quantità di memoria. Soltanto pochissimi enti (di fatto, tutti industriali: OpenAI, Google, Anthropic, ecc.) sono in grado di addestrare modelli di grandi dimensioni.
– Non vi è modo di garantire che il modello si comporti come dovrebbe; in particolare, per le grandi reti neurali che trattano testo (gli LLM come ChatGPT), è noto il fenomeno detto “allucinazione”, in cui la rete genera informazioni false, fuorvianti o incoerenti, presentandole con assoluta certezza; accade quando la rete “inventa” fatti, dati o dettagli, poiché calcola la risposta più probabile e fluida anziché quella fattualmente vera.
Model driven:
+ Non è necessario raccogliere grandi quantità di dati, eliminando i costi e i problemi connessi.
+ Non è necessario alcun processo di addestramento.
+ Assumendo che le regole siano corrette, il sistema non può comportarsi in modo non previsto.
– Il problema viene descritto tramite regole; spesso ciò è estremamente difficile.
– Usare regole logiche porta a sistemi che sono spesso “rigidi” e non si adattano facilmente ai problemi reali, che sono spesso affetti da ambiguità (e quindi sfuggono ad una descrizione precisa).
– In genere, l’esperienza empirica mostra che l’approccio model-driven porta a risultati inferiori a quelli che si possono raggiungere con l’approccio data-driven.
La tabella seguente cerca di riassumere quanto detto indicando, in vari casi, quale approccio è preferibile. Come si vede, l’approccio model-driven non è da scartare a priori. L’esperienza, comunque, insegna che in genere l’approccio data-driven porta a risultati superiori, e talora eccezionalmente superiori. Da qui l’attuale focus sulle reti neurali, che sono diventate lo standard dell’approccio data-driven.
|
Requisiti |
Casi |
Model-driven |
Data-driven |
|
Dataset |
Facile da fare/raccogliere | ✓ (ma ricordarsi che un buon dataset è cruciale) | |
| Troppo costoso o impossibile da fare o raccogliere | ✓ (dataset non richiesto) | ||
|
Addestramento |
Necessario (si parte da un modello “vuoto”) e ho hardware per poterlo fare | ✓ (ma può essere molto costoso) | |
| Non necessario (posso usare un modello già esistente) | ✓ (spesso si può riusare un modello già addestrato su un problema similare) | ||
| Impossibile (non ho dati) | ✓ (non ho scelta) | ||
| NO: è più semplice scrivere le regole del problema | ✓ (ma in realtà non capita spesso) | ||
| NO: non ho hardware per poter addestrare un modello (e non posso riusare un modello già addestrato) | ✓ (non ho scelta) | ||
|
Allucinazioni (e, in generale, risultati scorretti generati dal modello) |
Sopportabili (non è un danno grave oppure posso mitigare in qualche modo) | ✓ (da verificare con attenzione) | |
| Non sopportabili (anche un solo errore può portare a danni gravi) | ✓ (non ho scelta) | ||
|
Qualità dei risultati |
Deve essere la più elevata possibile | ✓ (tipicamente data driven è superiore) | |
| Basta che sia sufficientemente buona | ✓ | ✓ |
Nella prossima puntata…
La parte 4 descriverà come le schede grafiche (GPU) hanno innescato l’esplosione dell’AI moderna.
Riferimenti
[1] Apprendimento automatico, Wikipedia, accesso dell’11/6/2026, https://it.wikipedia.org/wiki/Apprendimento_automatico
[2] Kovvuru, I. How Companies Use Your Data to Train AI and What You Need to Know. Medium, Settembre 2025, https://medium.com/@ismailkovvuru/how-companies-use-your-data-to-train-ai-and-what-you-need-to-know-c6b04647d99d
Update
21/9/2026: prima pubblicazione.