Immagine AI

L’intelligenza artificiale contemporanea è dominato da modelli linguistici di dimensioni colossali, caratterizzati da miliardi di parametri e infrastrutture di calcolo distribuite estremamente opache. In questo contesto, il progetto MicroGPT presentato da Andrei Karpathy, CEO di Eureka Labs, emerge come un’operazione di decostruzione tecnica fondamentale. L’obiettivo di questo “progetto artistico” non è la prestazione computazionale, bensì la trasparenza algoritmica. Attraverso un singolo file Python di circa duecento righe, Karpathy riesce a condensare l’intera pipeline di un Transformer, dimostrando come i principi matematici che muovono i sistemi più avanzati del mondo siano, nella loro essenza, riducibili a una struttura lineare e comprensibile.

La particolarità di MicroGPT risiede nella sua totale indipendenza da framework esterni come PyTorch o TensorFlow. Il cuore del sistema è un motore di differenziazione automatica personalizzato, derivato dal precedente progetto micrograd. Questa implementazione si basa su una classe scalare che gestisce la backpropagation attraverso il grafo computazionale. Ogni operazione aritmetica compiuta dal modello, che si tratti di un’addizione, una moltiplicazione o l’applicazione di un logaritmo, viene registrata insieme alla sua derivata locale. Quando il sistema calcola la perdita finale (loss), il motore attraversa a ritroso il grafo applicando rigorosamente la regola della catena. Questo approccio permette di osservare il meccanismo dei gradienti senza le astrazioni tipiche delle operazioni su tensori, rendendo visibile il modo in cui ogni singolo peso della rete viene aggiornato per minimizzare l’errore.

L’architettura della rete neurale implementata in MicroGPT segue fedelmente il design del trasformatore introdotto con GPT-2, sebbene in scala ridotta. Il modello presenta un unico strato con quattro testine di attenzione e una dimensione di embedding pari a sedici. Nonostante la semplicità, la struttura mantiene intatto il dualismo fondamentale dei Transformer: il meccanismo di attenzione multi-testa, che permette lo scambio di informazioni tra i diversi token della sequenza, e il percettrone multistrato (MLP), che esegue i calcoli specifici per ogni posizione. Per ottimizzare la stabilità numerica in un contesto così minimale, sono state adottate alcune variazioni tecniche rispetto allo standard originale, come l’uso di RMSNorm al posto della LayerNorm e l’impiego della funzione di attivazione ReLU invece della più complessa GeLU.

Il processo di gestione dei dati e della tokenizzazione in MicroGPT offre una prospettiva illuminante sulla natura statistica dei Large Language Model. Invece di utilizzare algoritmi sofisticati come il Byte Pair Encoding, il sistema opera a livello di carattere. Il vocabolario è composto da soli ventisette elementi: le lettere dell’alfabeto inglese e un token speciale denominato Beginning of Sequence (BOS), che funge da indicatore di inizio documento. Il dataset di addestramento consiste in un elenco di circa trentaduemila nomi propri. Ogni nome viene trattato come un micro-documento indipendente. Attraverso il ciclo di addestramento, il modello apprende la distribuzione di probabilità dei caratteri successivi basandosi sulle sequenze precedenti, trasformando il testo in una serie di vettori numerici su cui opera l’ottimizzatore Adam.

L’efficacia di questa architettura è misurabile attraverso l’evoluzione della funzione di perdita durante le iterazioni di apprendimento. Partendo da un valore di entropia incrociata che indica una previsione puramente casuale, il modello riduce progressivamente l’errore fino a stabilizzarsi su valori che denotano l’acquisizione di pattern fonetici e ortografici tipici dei nomi inglesi. Nella fase di inferenza, MicroGPT genera nuove sequenze partendo dal token BOS e campionando i caratteri successivi in base alle probabilità calcolate. L’introduzione del parametro di temperatura permette di modulare la creatività del sistema: temperature basse producono risultati più conservativi e statisticamente probabili, mentre temperature elevate aumentano la varianza, portando alla generazione di nomi inediti ma strutturalmente plausibili.

In ultima analisi, MicroGPT funge da ponte concettuale tra la teoria matematica e l’ingegneria del software su larga scala. Dimostra che il comportamento dei chatbot più complessi è, a livello atomico, un processo di completamento di documenti basato su calcoli probabilistici. Sebbene i modelli commerciali differiscano per ordini di grandezza nei parametri e per la raffinatezza della tokenizzazione, la logica sottostante rimane invariata. Rilasciando il codice in una progressione didattica che va dalla struttura più elementare a quella completa, Karpathy ha rimosso la “scatola nera” che circonda l’intelligenza artificiale, offrendo una risorsa tecnica che permette di visualizzare ogni singolo passaggio del flusso di dati, dalla lettura del dataset fino all’aggiornamento finale dei pesi sinaptici.

Di Fantasy