Ai tempi di ENIAC (la macchina che viene considerata il primo computer nato nel 1946) tecnici e gente comune definivano i calcolatori come oggetti a cui venivano impartiti comandi precisi e che assolvevano compiti deterministici.
Non passano 6 anni che Alan Turing definisce, sulla rivista Mind, quello che oggi chiamiamo “intelligenza artificiale”. Siamo nel 1950.
Da allora i calcolatori hanno fatto tanta strada. E quella intuizione geniale di Turing, da una fantasia pressoché irrealizzabile, sembra ora concretizzarsi.
Un po’ di storia
Ma andiamo con ordine: nel 1982 nasce R1, la prima intelligenza artificiale utilizzata in ambito commerciale.
A seguito di questo exploit il mondo accademico si riattiva dopo quasi trent’anni di sonnolenza e nascono i concetti di sistema esperto e di robotica autonoma che prendono a piene mani dall’algebra, dalla geometria, dalla statistica e dalla ricerca operativa le idee per creare qualcosa di allora completamente nuovo.
I classificatori bayesiani e le reti neurali cominciano ad avere a disposizione una quantità di dati e una potenza di calcolo sufficiente da dare dei risultati apprezzabili.
All’inizio degli anni ‘80, il prof. Martin F. Porter, con la creazione dello stemmer, getta le basi per la comprensione del linguaggio naturale per le lingue di derivazione sassone (principalmente l’Inglese).
Passa qualche anno e mi unisco allo sforzo di altri ricercatori universitari per definire gli algoritmi per la comprensione del linguaggio naturale nelle lingue romanze (Italiano, Francese e Rumeno).
Le cose si fanno concrete ma sempre più ingannevoli: le reti bayesiane cominciano a classificare efficacemente e comprendere il linguaggio naturale. Non passa qualche anno che vedono la luce i primi Probabilistic Language Model.
Negli anni del nuovo millennio nascono le Reti neurali ricorsive profonde, le Mappe di caratteristiche (feature maps), il concetto di Attivazione di Interesse e alla fine del 2017 i primi LLM (Large Language Model) e ancora recentemente l’hardware dedicato: reti di GPU, TPU.
La base di statistica, algebra e calcolo numerico diventano fondamentali per invertire matrici sempre più grandi in maniera efficiente: la base dell’apprendimento delle reti neurali profonde.
Il “grande inganno”…
Fin qui è storia, anche recente. Ma c’è ancora un pezzo del puzzle che manca, e che ho incastrato solo in tempi più recenti: tutti gli attuali sistemi di intelligenza artificiale non mettono mai in discussione né il training, né il prompting. La macchina non ha una sua singolarità, non ha una conoscenza del sé e a nulla servono processori dedicati o algoritmi più sofisticati per aumentarne la capacità “intellettiva” perché questa capacità semplicemente non c’è.
Ed eccoci arrivati al grande inganno: una geniale campagna di marketing antropomorfizza i sistemi di intelligenza artificiale attribuendo attitudini umane che non gli appartengono. Perché in realtà sarebbe meglio chiamare l’Intelligenza Artificiale Generativa con il suo vero nome: “Grande Abilità Combinatoria”.
…e la “Grande Abilità Combinatoria”
I programmi GAC (Grande Abilità Combinatoria) sono dei classificatori statistici naïve più o meno sofisticati. Sfruttano quel “naïve” statistico per definire con quale probabilità (non certezza, come appare dall’output del modello) la risposta sia la migliore.
Ciò che viene generato non è altro che una risposta combinatoria statisticamente molto probabile: se aveste la fortuna o sfortuna (dipende) di imbattervi nel back-end di un LLM vi trovereste a regolare la temperatura del modello che definisce quanto lontano dall’ottimo statistico è una risposta accettabile.
In altre parole:
- l’utente scrive una frase in una lingua nota contenente una domanda o una affermazione (prompt);
- la macchina lo interpreta secondo le proprie categorie (feature maps);
- definisce cosa è interessante per l’utente (attention spots);
- combina, dalle caratteristiche apprese durante il training una risposta altamente probabile (temperature);
- genera una risposta in linguaggio naturale attraverso delle regole di grammatica codificata (Language Model).
Considerando che le reti LLM sono modelli che codificano una quantità di informazioni enorme, con milioni di caratteristiche, istruiti con Petabyte di dati (presto Exabyte di dati generati da esseri umani), la probabilità che due risposte, pescate a caso da queste milioni di caratteristiche e combinate siano uguali è decisamente remota.
Ma questo è un modello GAC, non generativo: non genera nulla di nuovo.
È Il tuning del modello che fa sì che le risposte al medesimo prompt siano sempre diverse e statisticamente accettabili.
Ma accettabili da chi? La macchina ipotizza che gli input siano assolutamente “veri”: non mette in discussione né il prompt, né tanto meno il set di training. Molti dei problemi e delle hallucinations nelle risposte provengono dalla distorsione cognitiva della rete che prende per buono qualsiasi cosa arrivi ai neuroni di input.
Tornando quindi alla domanda “accettabili da chi?”, le risposte sono “accettabili” per un essere umano in base alla propria esperienza, a propri criteri di valutazione, alla propria “intelligenza”. E qui arriviamo all’apice: è la valutazione che è “intelligente”, non la risposta della macchina in sé.
In conclusione: usare i programmi di intelligenza artificiale è utile? La risposta è: assolutamente sì. Se avete un file pdf da trasformare in un foglio di calcolo per estrarne informazioni (e non solo dati) è assolutamente perfetto. Se avete da gestire una visione artificiale attraverso una telecamera per valutare la qualità di produzione il training potrebbe essere complesso ma restiamo nell’ambito della statistica. Se dovete tradurre un testo da un’altra lingua, dato che è una traduzione statistica potrebbe non essere del tutto aderente, dovete accontentarvi. Se dovete generare nuovi contenuti innovativi o nuove idee, non è cosa di silicio, per lo meno finché accadrà la Singolarità.