Crea il tuo assistente AI per coding locale: guida pratica su MacBook Pro
Crea il Tuo Assistente AI per il Codice Locale: Guida Pratica su MacBook Pro
Molti sviluppatori sognano di far girare modelli linguistici potenti sul proprio Mac. Motivi? Risposte immediate, privacy totale e zero costi API. Il problema è passare dall'idea alla pratica. Qui ti spiego cosa serve, gli errori comuni e come risolverli.
Perché Scegliere il Locale?
Gli assistenti cloud sono facili da usare. Ma mandano il tuo codice in rete, impongono limiti e fanno pagare ogni token. Latenza extra su ogni suggerimento.
Con un setup locale, il tuo MacBook Pro diventa un server AI indipendente. Niente fughe di dati, niente bollette a sorpresa. Ideale per progetti sensibili o team attenti alla sicurezza.
Serve hardware adeguato e modelli giusti. Altrimenti, resta un sogno.
Hardware Necessario
Non basta un MacBook qualsiasi. Punta su:
- Chip Apple Silicon (serie M)
- Minimo 32 GB di memoria unificata (meglio 48 GB)
- Un po' di pazienza per i test
La memoria unificata è il vantaggio chiave. CPU e GPU accedono allo stesso pool, senza trasferimenti lenti. Per l'inferenza LLM, fa la differenza.
Quale Modello Usare?
Qui casca l'asino. Non tutti i modelli reggono coding reale o deployment locale.
Per un Mac da 48 GB, cerca:
- Intelligenza per task complessi
- Quantizzati per Apple Silicon (niente GGUF generici)
- Provati su chat lunghe (l'infrastruttura conta quanto il modello)
Nel 2024/2025, vai su varianti Qwen recenti o simili da 27B-35B parametri. Controlla benchmark come SWE-bench per fix di bug reali.
Prova anche MoE: parametri totali alti, ma ne attivano pochi per token. Meno memoria, qualità invariata.
Gli Errori Classici: Il Primo Tentativo Fallisce
Lezioni apprese a forza di crash.
Il Drama di mlx-lm Server
MLX di Apple è il più veloce su Silicon, 20-30% meglio di llama.cpp. Provi mlx-lm.server. Parte bene, risponde un po'. Poi boom: errore Metal per memoria.
Il KV cache (memoria attention che cresce con la chat) non ha limiti. Blocca la GPU fino al kill del sistema.
Flag come --max-kv-size? Esistono solo nel tool base, non nel server.
Morale: MLX va bene per test singoli. Non per server stabili.
Il Salvataggio con Ollama
Ollama limita il context window. KV cache controllato, zero crash.
Trappola: scarica GGUF generici, non ottimizzati per Silicon. Risultato? Ragionamento debole, codice approssimativo, ripetizioni strane. Quantizzazione aggressiva per compatibilità, non efficienza.
Altro intoppo: penalty preimpostati alti (tipo presence_penalty 1.5). Bloccano ripetizioni utili, come nomi variabili nel codice.
La Soluzione che Funziona
Ingredienti:
- Ollama come engine (stabile e aggiornato)
- Modelli ottimizzati Apple Silicon (cerca tag
mxfp8) - Modelfile personalizzati per correggere default
Ricetta passo-passo:
# Installa Ollama
brew install ollama
# Avvia server, tiene modello in memoria, accetta connessioni rete
OLLAMA_HOST=0.0.0.0 OLLAMA_KEEP_ALIVE=24h ollama serve
Scarica il modello giusto:
ollama pull qwen3.6:35b-a3b-mxfp8
Crea Modelfile per ottimizzare:
FROM qwen3.6:35b-a3b-mxfp8
PARAMETER num_ctx 16384
PARAMETER presence_penalty 0
PARAMETER temperature 0.7
Build e avvia:
ollama create my-coder -f Modelfile
ollama run my-coder
Quel mxfp8 trasforma un modello mediocre in uno utile.
Integrazione con l'IDE
Server attivo? Collegalo all'editor. Endpoint OpenAI-compatible su http://localhost:11434. Funziona con estensioni VS Code, Vim, Neovim, JetBrains. Sembra un servizio cloud.
Costi Reali
Non è plug-and-play:
- Tempo setup: Test e debug inclusi
- Rumore: Ventole al massimo, GPU carica
- Scelte fisse: Un modello alla volta, niente switch rapidi
In cambio:
- Privacy: Codice resta sul Mac
- Zero costi: Niente abbonamenti
- Latenza fissa: No ritardi rete
- Libertà: Prompt custom, parametri tuoi, no censure
Prossimi Passi
Parti da qui:
- Prova Llama 3, Mistral o alternative open
- Fine-tuna sul tuo codice
- Modelli specializzati per linguaggi/framework
- Inserisci nel pipeline build
L'era AI locale è arrivata. Il tuo MacBook Pro ce la fa. Modelli e tool sono pronti. Non aspettare. Costruisci.