Article · Third-party summary
llama.cpp e Ollama — LLM sul Tuo Laptop, Senza Cloud
Original source: github.com/ggerganov/llama.cpp — Georgi Gerganov, prima release marzo 2023 — summary and rework in own words. For the full text, read the original source.
Cos'è: Georgi Gerganov, sviluppatore bulgaro noto per la libreria whisper.cpp, pubblica llama.cpp il 10 marzo 2023 — quattro giorni dopo il leak del modello LLaMA di Meta. In un weekend porta l'inferenza di un large language model su CPU in puro C++, senza dipendenze, senza GPU obbligatoria. Il repository raggiunge 20.000 stelle GitHub in pochi giorni. È il momento in cui l'AI generativa smette di essere prerogativa esclusiva del cloud.
Il contesto: Meta rilascia LLaMA, qualcuno lo ottimizza per CPU
Il 24 febbraio 2023 Meta AI pubblica LLaMA (Large Language Model Meta AI), una famiglia di modelli da 7B a 65B parametri addestrati su 1-1.4 trilioni di token di testo pubblico. LLaMA non è disponibile al pubblico come download diretto — richiede una richiesta di accesso per ricercatori. Una settimana dopo, i pesi del modello 65B appaiono su BitTorrent.
Gerganov ha i pesi. Ha whisper.cpp come precedente — aveva già portato Whisper (speech-to-text di OpenAI) su CPU in C++ con performance sorprendenti. Applica la stessa filosofia a LLaMA: nessuna dipendenza esterna, codice C++ puro ottimizzato per ogni architettura, quantizzazione aggressiva per ridurre il footprint di memoria.
La quantizzazione: da 26GB a 4GB
Un modello LLaMA 7B in float32 (precisione completa) occupa circa 26GB. Inutilizzabile su qualsiasi laptop consumer, e persino su molte GPU professionali con VRAM limitata.
llama.cpp implementa la quantizzazione dei pesi: invece di rappresentare ogni peso come numero float32 a 32 bit, lo comprime a 4 bit (Q4_0, Q4_K_M) o 8 bit (Q8_0). Il risultato: LLaMA 7B Q4_K_M occupa circa 4.1GB. Entra comodamente nella RAM di un laptop da 8GB, o nella VRAM di qualsiasi GPU discreta moderna.
La perdita di qualità dalla quantizzazione è misurabile ma spesso accettabile: sui benchmark standard, Q4_K_M perde 1-3 punti percentuali rispetto al modello in float16. Per la maggior parte degli usi pratici, la differenza non è percepibile nelle risposte.
Il formato GGUF (introdotto nell'agosto 2023, successore di GGML) è diventato lo standard de facto per i modelli quantizzati: un singolo file binario che include pesi, metadati del modello, e informazioni di configurazione. Hugging Face ospita migliaia di modelli in formato GGUF.
Performance: numeri reali
Le performance di llama.cpp dipendono dall'hardware e dalla dimensione del modello. Dati rappresentativi nel 2024:
- Apple MacBook Pro M3 Pro (18GB unified memory): Llama 3 8B Q4 → 50-60 token/s. Abbastanza veloce per conversazione fluida.
- Apple MacBook Pro M2 (16GB): Llama 3 8B Q4 → 35-45 token/s. Usabile.
- NVIDIA RTX 4090 (24GB VRAM): Llama 3 70B Q4 → 40-50 token/s con il modello intero in VRAM.
- NVIDIA RTX 3060 (12GB VRAM): Mistral 7B Q4 → 60+ token/s. Per modelli che entrano in VRAM, la GPU è significativamente più veloce della CPU.
- CPU Intel i7/AMD Ryzen su laptop consumer: Llama 3 8B Q4 → 5-15 token/s. Lento ma funzionale per task non interattivi.
Apple Silicon è particolarmente efficiente per inferenza locale per una ragione strutturale: la unified memory — RAM condivisa tra CPU e GPU — permette ai modelli grandi di sfruttare l'intera capacità del chip senza il collo di bottiglia del trasferimento dati PCIe che affligge le GPU discrete.
Ollama: dal C++ alla semplicità d'uso
llama.cpp richiede compilazione, comprensione dei flag di quantizzazione, gestione manuale dei file GGUF. Ollama, lanciato a settembre 2023 dal team di Jeffrey Morgan, crea un layer di astrazione sopra llama.cpp per renderlo accessibile a chiunque sappia usare un terminale — e poi anche a chi non lo sa, con interfacce GUI.
Il workflow con Ollama ridotto all'essenziale:
- Installa Ollama (installer grafico su Mac e Windows, script su Linux)
ollama run llama3— scarica e avvia Llama 3 8B in automatico- Chat interattiva nel terminale, immediatamente
Ollama espone anche una API REST locale compatibile con il formato di OpenAI. Questo è il dettaglio che ha accelerato l'adozione: applicazioni già scritte per l'API OpenAI possono puntare a http://localhost:11434 invece di api.openai.com con modifiche minime al codice — spesso solo cambiare la base URL e il nome del modello.
Il catalogo di modelli disponibili
Nel 2024 l'ecosistema di modelli disponibili per inferenza locale è ricco:
- Llama 3 (Meta): 8B e 70B, ottima qualità generale, bilingue con buon supporto italiano
- Mistral 7B e Mixtral 8x7B: eccellente rapporto qualità/dimensione, strong su task tecnici
- Phi-3 (Microsoft): modelli piccoli (3.8B) con performance sorprendenti — ottimizzati specificamente per hardware limitato
- Gemma 2 (Google): 2B, 9B, 27B — licenza permissiva, buone performance
- CodeLlama / DeepSeek Coder: specializzati per generazione codice
- Nomic Embed, mxbai-embed: modelli di embedding per RAG locale senza chiamate API
Casi d'uso per privacy e compliance
Per un sysadmin o un'azienda, i motivi per preferire il local AI al cloud non sono solo economici:
- Privacy dei dati: documenti riservati, dati personali (GDPR), segreti industriali — nulla lascia il dispositivo. Nessun provider cloud vede i dati.
- Compliance normativa: settori come sanità, legale, finanza hanno restrizioni stringenti su dove i dati possono essere elaborati. Local AI elimina la questione del data transfer.
- Zero costi API: uso intensivo (migliaia di query al giorno) non ha costo marginale una volta acquistato l'hardware.
- Nessun rate limit: automazioni batch su corpus grandi senza throttling.
- Lavoro offline: aereo, zona senza connessione, rete aziendale senza accesso a internet — il modello gira comunque.
- Latenza controllata: nessun round-trip di rete, latenza deterministica.
GUI e tool per non tecnici
L'ecosistema local AI ha prodotto interfacce grafiche che rendono i modelli accessibili senza terminale:
- LM Studio: applicazione desktop (Mac, Windows, Linux) con interfaccia chat, gestione modelli, server locale compatibile OpenAI. La scelta più popolare per chi non vuole usare il terminale.
- Jan.ai: open source, cross-platform, focalizzato sulla privacy, supporta più provider (locale e cloud) nella stessa interfaccia.
- Open WebUI: interfaccia web self-hosted compatibile con Ollama e OpenAI API — per chi vuole un'interfaccia tipo ChatGPT sul proprio server.
- Msty: client multiplatform con focus sulla gestione di conversazioni multiple e branching.
Il significato del local AI nell'ecosistema
llama.cpp e Ollama non hanno solo reso l'AI accessibile offline. Hanno creato un'intera categoria di sviluppo che prima non esisteva: applicazioni AI che funzionano senza connessione internet, senza chiavi API, senza account su piattaforme esterne. Plugin per editor di codice, strumenti di ricerca locale, assistenti documentali aziendali — tutto il software che prima era impraticabile perché non si potevano mandare i dati a un server esterno ora ha una via.
La convergenza di modelli open weight di qualità crescente (Llama 3, Mistral, Gemma) con infrastruttura di inferenza efficiente ha reso il cloud non più obbligatorio ma opzionale. Per i workload dove privacy, costo, o latenza sono vincoli critici, la scelta di un deployment locale è oggi tecnicamente e economicamente razionale.
Link alla fonte originale
github.com/ggerganov/llama.cpp →
Repository GitHub di Georgi Gerganov, prima commit 10 marzo 2023. Attivamente manutenuto con aggiornamenti frequenti. Ollama disponibile su ollama.com. LM Studio su lmstudio.ai. Tutti gratuiti e open source (llama.cpp licenza MIT).