# Modelli AI locali: come scegliere LLM, hardware e runtime > Fonte: https://francescogruner.it/modelli-ai-locali/ **Un modello AI locale non si sceglie partendo dal nome.** Si parte dal lavoro da fare, dall’hardware che possiedi e dal livello di controllo che vuoi sui dati. In questa guida non riscrivo i miei test: li uso come satelliti di un percorso decisionale. Se vuoi i comandi, le misure e gli errori, trovi i link alle prove complete. La risposta breve è questa: per chat e automazioni strutturate partirei da un modello quantizzato compatibile con Ollama o llama.cpp; per codice sceglierei solo dopo una prova sul tuo repository; per immagini, audio o documenti verificherei che il modello e il runtime supportino davvero quella modalità. Se l’hardware locale non basta o il carico è occasionale, il cloud può essere un fallback, non un fallimento. Indice dei contenuti [Toggle](#) - [La matrice: use case → hardware → runtime → modello](#La_matrice_use_case_%E2%86%92_hardware_%E2%86%92_runtime_%E2%86%92_modello) - [1. Prima domanda: cosa deve fare?](#1_Prima_domanda_cosa_deve_fare) - [Ti sta piacendo?](#Ti_sta_piacendo) - [2. File scaricato e memoria runtime non sono la stessa cosa](#2_File_scaricato_e_memoria_runtime_non_sono_la_stessa_cosa) - [3. Context window e KV cache: il costo nascosto](#3_Context_window_e_KV_cache_il_costo_nascosto) - [4. CPU, GPU NVIDIA e AMD: come decidere senza slogan](#4_CPU_GPU_NVIDIA_e_AMD_come_decidere_senza_slogan) - [5. Ollama, llama.cpp e Open WebUI non sono il modello](#5_Ollama_llamacpp_e_Open_WebUI_non_sono_il_modello) - [6. Quantizzazione: partire dal task, non dalla sigla](#6_Quantizzazione_partire_dal_task_non_dalla_sigla) - [7. Licenza e privacy: “locale” non basta](#7_Licenza_e_privacy_%E2%80%9Clocale%E2%80%9D_non_basta) - [8. Quando scegliere il cloud come fallback](#8_Quando_scegliere_il_cloud_come_fallback) - [La mia decisione, condizionata](#La_mia_decisione_condizionata) - [Domande frequenti](#Domande_frequenti) - [Fonti e riferimenti](#Fonti_e_riferimenti) - [Qwen3.8 27B in locale: prova agentica](#Qwen38_27B_in_locale_prova_agentica) - [OpenUI con Ollama: limiti e privacy](#OpenUI_con_Ollama_limiti_e_privacy) - [Gemma 4 12B su laptop](#Gemma_4_12B_su_laptop) ## La matrice: use case → hardware → runtime → modello ![Modello, runtime e interfaccia come tre livelli distinti](https://francescogruner.it/wp-content/uploads/2026/08/local-stack.png) Tre livelli, tre ruoli **Obiettivo**Agente locale con strumenti**Hardware provato o vincolo verificato**AMD Radeon 8060S, 128 GB unificati, 96 GiB assegnati alla GPU nel test**Runtime/interfaccia**Ollama con Hermes Agent o DeepSeek Harness**Candidato da valutare**Qwen3.8 27B quantizzato**Prova disponibile**[Setup, impostazioni e prova agentica](https://francescogruner.it/qwen3-8-27b-agente-locale/).**Obiettivo**Generazione di interfacce senza inviare prompt al cloud**Hardware provato o vincolo verificato**Nessuna soglia universale dedotta: dipende dal modello Ollama scelto**Runtime/interfaccia**OpenUI + Ollama**Candidato da valutare**Un modello coding già compatibile con Ollama**Prova disponibile**[Prova pratica, limiti e privacy](https://francescogruner.it/openui-ollama-generare-interfacce-ui-localmente/).**Obiettivo**Multimodale su laptop**Hardware provato o vincolo verificato**Il post riporta 16 GB RAM/VRAM come requisito dichiarato da Google, non come misura indipendente**Runtime/interfaccia**Runtime compatibile con il formato scelto**Candidato da valutare**Gemma 4 12B**Prova disponibile**[Scheda Gemma 4 e distinzione fra dichiarazioni e test](https://francescogruner.it/gemma-4-12b-ai-locale/).**Obiettivo**Uso senza GPU locale**Hardware provato o vincolo verificato**Nessuna GPU locale richiesta, ma l’elaborazione non resta sul dispositivo**Runtime/interfaccia**Ollama Cloud**Candidato da valutare**Modello disponibile nel servizio**Prova disponibile**[Guida Ollama Cloud](https://francescogruner.it/guida-ollama-cloud-ai-senza-gpu/). **Nota editoriale:** le righe AMD riportano configurazioni realmente usate, non requisiti minimi. Non trasformo un banco prova in una regola generale e non presento velocità stimate come benchmark. ## 1. Prima domanda: cosa deve fare? “Qual è il miglior LLM locale?” è una domanda troppo ampia. Una chat generalista, un agente che chiama strumenti, un assistente di coding e un modello multimodale possono premiare caratteristiche diverse. Lo stesso modello può quindi essere accettabile per un flusso e inadatto a un altro: il criterio deve essere il risultato sul task reale. Definisci prima un set di prompt reali, il formato di output e un criterio di errore. Poi confronta due o tre candidati nelle stesse condizioni. Le classifiche pubbliche aiutano a restringere il campo, ma non sostituiscono la prova sul tuo lavoro. ## Ti sta piacendo? Ricevi una guida pratica ogni settimana. AI, tool e automazioni. Iscriviti gratis Perfetto, sei dentro. ## 2. File scaricato e memoria runtime non sono la stessa cosa ![Pesi, KV cache, runtime e sistema nella memoria di un LLM locale](https://francescogruner.it/wp-content/uploads/2026/08/local-memory.png) Dove finisce la memoria Il peso del file descrive soprattutto i pesi memorizzati. Quando avvii l’inferenza devi considerare anche KV cache, buffer del runtime, contesto e memoria lasciata al sistema. La documentazione di Hugging Face segnala che la KV cache può occupare una parte significativa della memoria nei contesti lunghi: il download, da solo, non descrive quindi la memoria runtime. Per questo non pubblico una tabella “parametri → RAM minima” universale. Formato, quantizzazione, runtime, offload e lunghezza del contesto cambiano il conto. La procedura più sicura è impostare un contesto realistico, avviare il modello, osservare la memoria effettiva e lasciare margine al sistema operativo. ## 3. Context window e KV cache: il costo nascosto Una finestra di contesto molto grande è una capacità massima, non un’impostazione da usare sempre. Più token mantieni attivi, più cresce la cache necessaria a ricordare chiavi e valori dell’attenzione. Se fai chat brevi, non ha senso prenotare automaticamente il massimo. Se lavori su repository o documenti lunghi, misura invece il punto in cui il contesto aggiuntivo migliora davvero il risultato. ## 4. CPU, GPU NVIDIA e AMD: come decidere senza slogan - **CPU:** è il percorso più accessibile e può bastare per modelli piccoli o uso saltuario, ma va provato sul tempo di risposta accettabile per te. - **GPU NVIDIA:** ha un ecosistema CUDA ampio; compatibilità e kernel dipendono comunque da runtime, modello e formato. - **GPU AMD:** non è automaticamente esclusa. I test del sito su Radeon 8060S usano llama.cpp/Vulkan e mostrano che l’inferenza è possibile, ma quei risultati valgono per quella configurazione. - **Memoria unificata:** permette di allocare modelli più grandi su alcune macchine, ma non elimina cache, buffer e memoria di sistema. Prima di comprare hardware, prova il runtime sul computer che hai. Verifica che l’accelerazione sia realmente attiva e conserva versione, parametri di avvio, contesto e output grezzi: altrimenti due numeri non sono confrontabili. ## 5. Ollama, llama.cpp e Open WebUI non sono il modello Il modello contiene i pesi; il runtime li esegue; l’interfaccia organizza chat e file; l’harness aggiunge strumenti, memoria e regole operative. Ollama semplifica download e servizio locale. llama.cpp offre controllo sui formati GGUF e sui parametri di inferenza. Open WebUI aggiunge un’interfaccia web. Hermes Agent e DeepSeek Harness trasformano il modello in un agente. Separare questi livelli evita di attribuire al modello un limite dell’interfaccia o una configurazione sbagliata del runtime. ## 6. Quantizzazione: partire dal task, non dalla sigla Le sigle di quantizzazione non formano una classifica semplice. La documentazione di llama.cpp indica che ridurre la precisione restringe il file e può velocizzare l’inferenza, ma può introdurre perdita di accuratezza. FP8 è un formato distinto e il vantaggio dipende dal supporto effettivo dell’hardware e del software: per esempio, NVIDIA documenta il supporto FP8 dei Tensor Core H100. Confronta quindi qualità, memoria e velocità sul task reale; per coding, JSON e tool call, una risposta plausibile ma non parsabile resta un fallimento operativo. ## 7. Licenza e privacy: “locale” non basta Controlla la licenza del checkpoint specifico, non soltanto il nome della famiglia: uso commerciale, modifica e redistribuzione possono avere condizioni diverse. Verifica anche la licenza dell’interfaccia e dei componenti collegati. Locale migliora il controllo, ma non garantisce da solo la privacy dell’intero flusso. Interfacce, ricerca web, API esterne e modelli cloud possono introdurre trasferimenti remoti: la documentazione Ollama, per esempio, dichiara che i modelli cloud vengono eseguiti sul servizio Ollama. Per dati sensibili verifica quali componenti sono connessi, il traffico in uscita, i log, i permessi, le directory montate e la conservazione delle chat. OpenUI con Ollama può essere configurato local-first; la prova dedicata spiega limiti e punti da verificare. ## 8. Quando scegliere il cloud come fallback Il cloud ha senso quando il modello non entra, il carico è raro, serve una capacità non disponibile localmente o vuoi evitare un acquisto hardware prima di validare il caso d’uso. Un flusso ibrido può usare il locale per bozze e dati controllati, poi un modello cloud per la revisione finale solo dopo aver rimosso informazioni riservate. Il costo corretto non è “API contro zero”: include hardware, energia, manutenzione, tempo e rischio operativo. Questa pagina non inventa un totale universale perché dipende dalla frequenza d’uso e dall’infrastruttura già posseduta. ## La mia decisione, condizionata **Se avessi già hardware compatibile e dovessi gestire dati riservati, partirei locale** con Ollama o llama.cpp, un contesto commisurato al task e un modello verificato sui miei prompt. Per agenti strutturati valuterei Qwen3.8 27B sulla base della prova pubblicata. **Se non avessi GPU, usassi il modello poche volte al mese o avessi bisogno di capacità elevate subito, partirei cloud** e misurerei domanda e costi prima di comprare hardware. Se la privacy fosse il requisito dominante, bloccherei ogni fallback esterno e verificherei il traffico, non mi limiterei all’etichetta “locale”. ## Domande frequenti Quale modello AI locale scegliere per iniziare? Scegli prima il task e il runtime. Parti da una quantizzazione compatibile, imposta un contesto realistico e prova prompt reali. Non esiste un modello migliore per chat, coding, strumenti e multimodalità insieme. La dimensione del file indica quanta RAM serve? No. Alla dimensione dei pesi devi aggiungere KV cache, buffer del runtime, contesto e memoria del sistema. La memoria effettiva va misurata durante l’esecuzione. Un LLM locale funziona senza GPU? Può funzionare su CPU, soprattutto con modelli piccoli o uso saltuario, ma la praticabilità dipende dal tempo di risposta richiesto. Questa guida non assegna velocità teoriche non misurate. Ollama e Open WebUI sono modelli? No. Ollama è un runtime/servizio per eseguire modelli; Open WebUI è un’interfaccia. Il modello è il checkpoint che scegli di caricare. Un modello locale è sempre privato? No. Devi controllare API, ricerca web, log, componenti connessi e modelli cloud. “Locale” descrive dove avviene l’inferenza principale, non certifica l’intero flusso. Quando conviene il cloud? Quando l’hardware non basta, l’uso è occasionale o serve una capacità subito. Puoi adottarlo come fallback, dopo aver definito quali dati possono uscire dalla macchina. ## Fonti e riferimenti Fonti primarie e approfondimenti utilizzati per verificare i concetti e le condizioni descritte nell’articolo. [Fonte ### Qwen3.8 27B in locale: prova agentica Documentazione e riferimento verificabile. Apri fonte](https://francescogruner.it/qwen3-8-27b-agente-locale/)[Fonte ### OpenUI con Ollama: limiti e privacy Documentazione e riferimento verificabile. Apri fonte](https://francescogruner.it/openui-ollama-generare-interfacce-ui-localmente/)[Fonte ### Gemma 4 12B su laptop Documentazione e riferimento verificabile. Apri fonte](https://francescogruner.it/gemma-4-12b-ai-locale/)