Un LLM gira su un microcontrollore da meno di 10 dollari: raggiunge quasi 10 token al secondo

Un LLM gira su un microcontrollore da meno di 10 dollari: raggiunge quasi 10 token al secondo

Uno sviluppatore è riuscito a eseguire un piccolo modello linguistico direttamente su un microcontrollore ESP32-S3 dal costo inferiore ai 10 dollari. Grazie a quantizzazione, offload degli embedding nella memoria Flash e codice C ottimizzato, il sistema raggiunge circa 9 token al secondo, dimostrando nuove possibilità per l'AI embedded.

di pubblicata il , alle 10:21 nel canale Web
 

Far funzionare un modello linguistico locale su notebook, smartphone o persino mini-PC è ormai una possibilità consolidata. Molto più insolito è riuscire a eseguire un LLM direttamente su un microcontrollore dal costo inferiore ai 10 dollari, progettato principalmente per applicazioni IoT, sensori remoti ed elettronica embedded. È quanto dimostrato dallo sviluppatore ucraino Slava S, conosciuto online come SlvDev, che ha documentato il progetto su GitHub e lo ha mostrato anche attraverso il canale YouTube Better Stack.

L'esperimento si basa su un ESP32-S3, un chip dotato di appena 512 KB di SRAM (520 KB secondo le specifiche Espressif) e di 8 MB di PSRAM, con versioni che integrano fino a 16 MB di memoria Flash. Si tratta di una quantità di memoria estremamente limitata: inferiore persino a quella disponibile su molti personal computer degli anni Novanta e lontanissima dai requisiti normalmente richiesti dai moderni modelli linguistici.

Il problema principale è infatti rappresentato dall'occupazione in memoria dei pesi del modello. Anche un LLM relativamente piccolo richiede generalmente da uno a quattro byte per parametro, motivo per cui l'inferenza viene normalmente affidata a GPU dotate di decine di gigabyte di memoria. Per adattarsi ai vincoli dell'ESP32-S3, SlvDev ha scelto TinyStories, un modello sviluppato da Microsoft Research con 28,9 milioni di parametri, circa diecimila volte più piccolo rispetto ai modelli di frontiera.

Nemmeno questa dimensione, però, era sufficiente. In precisione a 16 bit il modello occupa circa 60 MB, molto oltre le possibilità del microcontrollore. La prima tecnica impiegata è stata la quantizzazione, che ha ridotto la precisione numerica dei pesi fino a 4 bit. Il compromesso comporta una lieve perdita di accuratezza, ma consente di diminuire l'occupazione della memoria di circa il 75%, portando il modello a circa 14,9 MB.

La riduzione, tuttavia, non bastava ancora. Il passo successivo è stato adottare un approccio ispirato ai modelli Gemma di Google, denominato Per-Layer Embedding (PLE). L'idea consiste nello spostare nella memoria Flash la grande tabella degli embedding, che contiene circa 25 milioni di parametri e viene utilizzata prevalentemente in lettura, senza partecipare direttamente ai calcoli più intensivi.

In questo modo, circa 12 MB di dati vengono conservati nella Flash da 16 MB, mentre nella memoria veloce rimangono soltanto le strutture indispensabili per generare il token successivo, come gli embedding attivi, la cache KV, l'output head e le componenti legate ai meccanismi di attenzione e feed-forward. Le attivazioni continuano invece a essere elaborate nella SRAM interna del chip.

A differenza delle tradizionali tecniche di offload verso SSD o unità NVMe, che possono rallentare drasticamente l'inferenza quando i dati devono essere recuperati continuamente, il metodo PLE limita gli accessi alla memoria Flash, riducendo l'impatto delle prestazioni. Il risultato è un'impronta in memoria di circa 2 MB per la parte realmente attiva del modello durante l'esecuzione.

Anche il software è stato progettato per ridurre al minimo l'overhead. L'intera implementazione è scritta in C puro, senza sistema operativo né interpreti come Python, seguendo un'impostazione simile a quella del progetto llama2.c di Andrej Karpathy.

Grazie a queste ottimizzazioni il sistema ha raggiunto una velocità di circa 9-9,9 token al secondo, una prestazione sorprendente considerando l'hardware utilizzato e sufficiente, secondo lo sviluppatore, a superare la normale velocità di lettura di una persona.

Naturalmente i limiti rimangono evidenti. TinyStories è stato addestrato sull'omonimo dataset di Microsoft, pensato per insegnare a piccoli modelli la generazione di racconti semplici. Il modello non è quindi adatto alla scrittura di codice, alla risposta a domande articolate o all'esecuzione di agenti AI. Inoltre, ogni modifica del prompt richiede il riflash completo della scheda e il sistema tende frequentemente a deviare dalla richiesta iniziale, tornando a generare storie con protagonisti ricorrenti, conseguenza diretta del limitato dataset di addestramento.

Esistono modelli alternativi, come Barista, capace di rispondere a domande sul mondo dell'espresso con prestazioni persino superiori, ma anch'esso estremamente specializzato. L'esperimento mantiene quindi soprattutto il valore di dimostrazione tecnica, che evidenzia come strategie di compressione e gestione intelligente della memoria possano estendere l'esecuzione locale dei modelli linguistici anche a piattaforme embedded estremamente limitate.

Lo stesso insieme di tecniche - quantizzazione e offload degli embedding - viene oggi utilizzato anche su hardware decisamente più potente. Ad esempio, Gemma 4-E2B-it di Google riesce a eseguire un modello multimodale da 5,1 miliardi di parametri in poco più di 1 GB di memoria utilizzando pesi a 4 bit, con ulteriori ottimizzazioni che possono ridurre il fabbisogno a circa 500 MB.

4 Commenti
Gli autori dei commenti, e non la redazione, sono responsabili dei contenuti da loro inseriti - info
UtenteHD06 Agosto 2026, 10:57 #1
Penso, magari mi sbaglio, che tutte le scoperte, invenzioni, test ecc.. anche se magari non lo dicono o non riportato l'hanno fatto con l'aiuto dell'AI, quindi mentre pre AI la velocità di miglioria della nuova Tecnologia aumentava in maniera esponenziale col passsre del tempo e della nuova Tecnologia utilizzata, ora con questo fattore + AI la miglioria non è più esponenziale, è ben oltre con un boost forse esagerato.
GLaMacchina06 Agosto 2026, 11:39 #2
Originariamente inviato da: UtenteHD
Penso, magari mi sbaglio, che tutte le scoperte, invenzioni, test ecc.. anche se magari non lo dicono o non riportato l'hanno fatto con l'aiuto dell'AI, quindi mentre pre AI la velocità di miglioria della nuova Tecnologia aumentava in maniera esponenziale col passsre del tempo e della nuova Tecnologia utilizzata, ora con questo fattore + AI la miglioria non è più esponenziale, è ben oltre con un boost forse esagerato.


La crescita esponenziale non esiste nella realta' fisica delle cose visto che, per quanto ne sappiamo, non esistono grandezze infinite. Esiste solo nella narrativa di chi non sa di cosa sta parlando, ovvero la stragrande maggioranza.
supertigrotto06 Agosto 2026, 12:10 #3
Secondo me io futuro è nei moduli più che integrare tutto nella GPU,ci sono già dei moduli PCI express nvme ed è la soluzione ideale,se la tecnologia invecchia,cambi solo il modulo così da tenere la CPU ancora valida,senza dover spendere in capitali di GPU Nvidia, AMD o Intel
Max Power06 Agosto 2026, 13:42 #4
Originariamente inviato da: GLaMacchina
per quanto ne sappiamo, non esistono grandezze infinite. .


Per i geometri sì..."la linea": PUNTI INFINITI

Devi effettuare il login per poter commentare
Se non sei ancora registrato, puoi farlo attraverso questo form.
Se sei già registrato e loggato nel sito, puoi inserire il tuo commento.
Si tenga presente quanto letto nel regolamento, nel rispetto del "quieto vivere".

La discussione è consultabile anche qui, sul forum.
 
^