Un LLM da 260K parametri su CPU emulata degli anni '90: l'esperimento estremo

Nel panorama in rapida evoluzione dei Large Language Models (LLM), dove la corsa all'hardware più potente e ai modelli più grandi sembra non avere fine, emerge un progetto che sfida le convenzioni. Un ingegnere ha dimostrato la capacità di far funzionare un LLM da 260.000 parametri su una CPU emulata degli anni '90, il tutto all'interno di un sistema operativo real-time (RTOS) sviluppato quasi due decenni fa. Questo esperimento, sebbene non destinato a un uso pratico immediato, offre spunti significativi sulle possibilità di ottimizzazione e sulle sfide del deployment di LLM in ambienti con risorse estremamente limitate.

Il progetto si distingue per la sua natura "archeologica" e la sua audacia tecnica. L'obiettivo era far girare un LLM su uno stack hardware che, per gli standard odierni, sarebbe considerato obsoleto. L'iniziativa sottolinea come la creatività e l'ingegneria possano spingere i confini di ciò che è ritenuto possibile, fornendo una prospettiva alternativa alla tendenza dominante di scalare le risorse hardware.

Dettagli Tecnici e Sfide di un Deployment Vintage

Il cuore di questo esperimento risiede nell'emulazione di una CPU Freescale ColdFire MCF5307, un processore derivato dal celebre Motorola 68K che ha alimentato sistemi iconici come il Macintosh originale e il Sega Genesis. L'RTOS, scritto nel 2008 per un corso universitario, è stato riportato in vita attraverso un emulatore JavaScript sviluppato da zero, con il supporto di LLM moderni come Claude e Qwen per il reverse-engineering della ROM. Una volta ripristinato il sistema operativo, l'ingegnere ha scelto il modello stories260K di Karpathy, basato su llama2.c e addestrato su TinyStories, come LLM da integrare.

Le sfide tecniche erano considerevoli. Il modello stories260K, con circa mezzo megabyte di pesi, doveva adattarsi a soli 16 MB di memoria emulata, un vincolo superato riducendo lo stack del kernel. La limitazione più critica, tuttavia, era l'assenza di un'unità a virgola mobile (FPU) nella CPU ColdFire. Questo avrebbe reso ogni calcolo in virgola mobile estremamente lento, richiedendo milioni di istruzioni emulate per ogni token. Per aggirare il problema, l'LLM è stato sottoposto a Quantization a INT8 con un fattore di scala per riga, trasformando le cruciali moltiplicazioni di matrici in calcoli puramente interi. Per le operazioni in virgola mobile al di fuori delle matmuls, sono state impiegate tecniche "old school" come la "fast inverse square root" di Carmack (resa celebre da Quake) e tabelle di lookup per le RoPE (Rotary Positional Embeddings), minimizzando così i calcoli trigonometrici. Solo Softmax e RMSnorm sono rimasti in virgola mobile emulata, ma la loro frequenza d'uso relativamente bassa ha permesso di mantenere una velocità accettabile.

Implicazioni per i Deployment On-Premise e l'Edge Computing

Sebbene questo progetto sia un'impresa accademica e non un deployment pratico, le sue implicazioni risuonano con le sfide affrontate da CTO e architetti di infrastrutture che valutano soluzioni LLM on-premise o all'edge. La necessità di ottimizzare i modelli per hardware con risorse limitate, come dimostrato dalla Quantization a INT8 e dall'uso di trucchi software, è un tema centrale in contesti dove il TCO, la sovranità dei dati e la compliance sono prioritari.

L'esperimento evidenzia come la scelta di modelli più piccoli e l'applicazione di tecniche di ottimizzazione estreme possano rendere gli LLM accessibili anche su infrastrutture non di ultima generazione o in ambienti air-gapped. Per le organizzazioni che non possono o non vogliono affidarsi al cloud per carichi di lavoro AI sensibili, la capacità di far girare LLM su hardware locale, anche se con compromessi sulle performance, diventa cruciale. Questo approccio contrasta con la tendenza a richiedere GPU di fascia alta con decine di gigabyte di VRAM, suggerendo che un'ingegneria software intelligente può sbloccare nuove possibilità di deployment. Per chi valuta deployment on-premise, AI-RADAR offre framework analitici su /llm-onpremise per valutare i trade-off tra performance, costi e requisiti di sovranità dei dati.

Prospettive Future e la Spinta all'Innovazione

Attualmente, il modello genera testo a una velocità di 2-4 secondi per token, producendo un inglese perlopiù coerente, sebbene a volte peculiare, nello stile TinyStories. Questa performance, pur essendo lontana dagli standard moderni, è notevole considerando l'ambiente emulato. L'ingegnere ha reso il progetto accessibile, permettendo a chiunque di provarlo direttamente nel browser.

Il prossimo passo ambizioso prevede il deployment dell'intero stack su un FPGA (Field-Programmable Gate Array) che re-implementerà l'hardware originale. Questo dovrebbe portare a velocità "realmente utilizzabili", trasformando l'esperimento da una curiosità accademica a un sistema potenzialmente più performante. L'iniziativa rappresenta un esempio lampante di come la comunità tech continui a esplorare i limiti degli LLM, non solo attraverso l'espansione delle capacità, ma anche attraverso la miniaturizzazione e l'adattamento a contesti hardware inaspettati.