Programmazione

Un modello da 26 miliardi di parametri in 2 GB di RAM, su un Mac da 8 GB

TurboFieldfare non è l'ennesimo wrapper attorno a llama.cpp: è un runtime scritto da zero per un solo modello, e il risparmio di memoria si vede.

Come si fa girare un modello da 14 GB in una macchina con 8 GB di RAM

Gemma 4 26B-A4B è un modello da 26 miliardi di parametri in versione "mixture of experts" (in pratica, invece di attivare tutta la rete neurale per ogni parola generata, il modello è diviso in tanti sotto-blocchi specializzati — gli "esperti" — e ne attiva solo una piccola parte per volta). Il file completo pesa 14,3 GB, troppo per stare comodamente in RAM su un MacBook Air da 8 GB. TurboFieldfare, un runtime scritto in Swift e Metal (il framework Apple per programmare la GPU) apposta per questo modello, tiene in memoria solo il nucleo condiviso (1,35 GB) e la cache KV (i valori intermedi dell'attenzione, il meccanismo con cui il modello decide a cosa "prestare attenzione" nel testo già generato), poi streamma dal disco SSD solo gli esperti che servono token per token.

Non è un wrapper generico sopra MLX o llama.cpp (le librerie più comuni per far girare LLM in locale), ma un runtime scritto su misura per questo specifico modello — la specializzazione è proprio quello che permette il risparmio estremo di memoria. All'installazione, il tool non scarica mai il checkpoint completo su disco: legge solo gli intervalli di byte necessari direttamente da Hugging Face e li riassembla nel formato interno, evitando una seconda copia integrale del modello.

Perché conta, al di là dello stunt tecnico

Il progetto espone un'app Mac nativa, una CLI (interfaccia a riga di comando) e un server locale compatibile con le API OpenAI, così puoi puntarci qualunque tool che parli quel protocollo. È testuale, non gestisce immagini o audio, e i parametri di generazione di default (temperatura 0.2, cioè output piuttosto deterministico e poco "creativo") sono pensati per risposte coerenti più che per la fantasia.

Per chi sviluppa, il punto non è "un altro modello locale", ma la dimostrazione che l'inferenza (il processo con cui un modello già addestrato genera una risposta) su hardware di fascia bassa non è più solo questione di ridurre i parametri: è anche questione di architettura del runtime che li carica. Aspettati più progetti che copiano questa strategia — nucleo in RAM, resto streammato — anche per altri modelli MoE.

Esempi pratici

Fonti: GitHub - turbo-fieldfare