LLM multimodale per la visione in locale: analizzare immagini con Ollama
Descrivere una foto, estrarre una tabella da uno screenshot, leggere il totale di una fattura scansionata: dal 2024 gli LLM open-weight con capacità visive reggono il confronto con GPT-4o in queste attività, e Ollama li rende accessibili con la stessa semplicità dei modelli di testo. Questa guida mostra come installare un LLM con capacità visive in locale con Ollama, chiamarlo da Python con un'immagine in base64 e sfruttare Qwen 3.5, Gemma 4 o Qwen 3.8 a seconda della tua VRAM.
#Perché usare un LLM con capacità visive in locale?
Inviare una fattura cliente, uno screenshot medico o un documento delle risorse umane a OpenAI pone un problema di riservatezza che gli uffici legali accettano sempre meno. Un LLM con capacità visive eseguito in locale risponde a questi casi concreti: OCR di documenti contabili, descrizione automatica di un catalogo prodotti, moderazione delle immagini, accessibilità (testo alternativo), estrazione di dati da PDF scansionati.
La differenza rispetto a un OCR classico (Tesseract, PaddleOCR): un LLM con capacità visive comprende la semantica. Sa dire "il numero di partita IVA è FR12345678901", mentre un OCR ti restituisce un miscuglio di caratteri che devi poi analizzare. Sui documenti strutturati, l'affidabilità supera il 95 % in modalità "estrazione JSON".
#I modelli di visione disponibili in Ollama
Il tuo ChatGPT privato e gratuito sulla tua macchina in 1 ora — LM Studio, Ollama, Open WebUI, i tuoi documenti, senza cloud.
- Spazio online a vita
- PDF + file
- Aggiornamenti a vita
Ollama supporta nativamente diverse famiglie di modelli con capacità visive dalla versione 0.4 (ottobre 2024), e la generazione 2026 ha rimescolato le carte: la visione è ora integrata nel tag standard di Qwen 3.5 e Gemma 4, senza più bisogno di una variante -vl separata. Ecco le opzioni rilevanti nel 2026, ordinate per dimensione e qualità dell'OCR in francese.
- qwen3.5:9b
- Il migliore compromesso qualità/VRAM nel 2026. Ottimo riconoscimento OCR del testo in francese, comprende tabelle e moduli, contesto di 256k token, licenza Apache 2.0. ~6,6 GB per i pesi in Q4.
- qwen3.5:4b
- Versione leggera per 4-6 GB di VRAM o Mac M1/M2 16 GB. Stessa famiglia multimodale Qwen 3.5, riconoscimento OCR FR corretto, descrizioni un po' meno ricche. ~3,4 GB.
- qwen3.8:27b
- Per RTX 3090/4090/5090 (24 GB): qualità simile a GPT-4o nell'analisi di documenti complessi. Visione, contesto 262k, Apache 2.0. ~18 GB di pesi in Q4.
- gemma4:12b
- L'alternativa Google (Gemma 4, aprile 2026), multimodale e passata a Apache 2.0. Molto buona nella descrizione generale, un po' meno precisa nell'OCR puro. ~7,6 GB.
- gemma4:26b
- Gemma 4 26B-A4B, MoE multimodale. La fascia alta per un uso professionale intensivo: circa 19 GB di pesi, funziona con 24 GB di VRAM o su un Mac Studio con memoria unificata.
- gemma4:e2b-it-qat
- Gemma 4 E2B quantizzato QAT (~4,3 GB). Opzione compatta per sistemi con poca VRAM o per l'edge, con licenza Apache 2.0.
- qwen3.5:2b
- Qwen 3.5 2B multimodale (~1,9 GB, contesto 256k). Per Raspberry Pi 5 o per generare rapidamente descrizioni in grandi quantità. Non adatto a un OCR accurato su documenti complessi.
- llava:7b / llava:13b
- L'antenato storico del 2023. Da non distribuire più: nel 2026 la sua qualità è ampiamente superata da Qwen 3.5 e Gemma 4.
#Requisiti hardware
La VRAM necessaria per un LLM vision è leggermente superiore a quella del suo equivalente testuale, a causa dell'encoder di visione (spesso un ViT) che rimane caricato in memoria oltre al modello di linguaggio.
- 8 GB VRAM (RTX 3060 12GB, 4060, M1/M2 16GB)
- qwen3.5:4b ci sta comodamente, oppure qwen3.5:9b (6,6 GB), che ci sta appena in Q4.
- 12 GB VRAM (RTX 3060 12GB, 4070, 5070)
- qwen3.5:9b utilizzabile senza difficoltà, gemma4:12b in Q4_K_M.
- 16 GB VRAM (RTX 4070 Ti Super, 4080, 5070 Ti)
- Tutto quanto detto prima + contesto di 32k token, oppure qwen3.5:9b-q8_0 per la qualità massima in questa fascia.
- 24 GB VRAM (RTX 3090, 4090, 5090)
- qwen3.8:27b (~18 GB) o gemma4:26b, qualità simile a quella cloud.
- Mac con chip della serie M e 24-48 GB di memoria unificata
- qwen3.5:9b o qwen3.8:27b grazie alla memoria unificata. Preferisci M3/M4 per la larghezza di banda.
Ollama deve essere almeno nella versione 0.4 per i modelli di visione moderni. Controlla con ollama --version. Se sei al di sotto, aggiorna prima di procedere.
#1. Installa un modello di visione
L'installazione è identica a un modello di testo: ollama pull tscarica i pesi e l'encoder di visione in una sola comando.
Il download è di circa 6,6 GB (pesi del modello linguistico in Q4 + encoder ViT). Calcola 2–3 minuti con una connessione in fibra. Verifica poi che il modello sia elencato:
#2. Primo test in CLI
Ollama accetta le immagini direttamente nella CLI a partire dalla versione 0.4: inserisci il percorso del file dopo il tuo prompt.
Il modello carica l'immagine, la codifica tramite ViT e risponde in streaming. Su una RTX 4070, considera 2-4 secondi per una descrizione breve, 8-12 secondi per un'analisi dettagliata.
#3. API Python con immagine base64
Per integrare un LLM con capacità visive in un'app, Ollama espone il suo endpoint REST su http://localhost:11434. L'immagine viene passata indicando il percorso (binding Python) oppure in base64 (HTTP diretto).
Metodo consigliato: la libreria ufficiale ollama-python. Gestisce l'encoding base64 per te e accetta un percorso direttamente.
Se preferisci gestire il base64 da solo (immagine in memoria, blob S3, upload tramite FastAPI), ecco la versione esplicita:
#4. Caso pratico: OCR di una fattura in francese
L'estrazione strutturata da un documento scansionato è il caso d'uso aziendale più richiesto. Il pattern che funziona meglio: chiedere un output JSON con uno schema esplicito nel prompt.
Due accorgimenti che migliorano radicalmente l'affidabilità: impostare format='json' (Ollama forza così un JSON valido in output) e abbassare la temperatura a 0.1 per limitare le allucinazioni sugli importi. Su 100 fatture francesi di vario tipo, Qwen 3.5 9B ottiene tipicamente un tasso di estrazione corretta del 92-96% per importo IVA inclusa + data + fornitore.
#Qwen 3.5 vs Gemma 4: cosa scegliere?
Le due famiglie dominano il panorama dei modelli di visione a pesi aperti nel 2026. Il nostro confronto sul campo tra qwen3.5:9b e gemma4:12b su casi in lingua francese:
- OCR francese (fatture, contratti)
- Qwen 3.5 vince nettamente. Gemma 4 tende a "inventare" numeri nei documenti sfocati. Vantaggio di Qwen: +15 % di precisione.
- Descrizione generale dell'immagine
- Pareggio. Gemma 4 dà descrizioni più narrative, Qwen 3.5 più fattuali. Questione di gusto.
- Comprensione di tabelle
- Qwen 3.5 eccelle. È uno dei pochi modelli delle sue dimensioni che sa leggere una tabella pivot di Excel senza confonderne i dati.
- Captioning multilingue (FR/EN/ES)
- Qwen 3.5 è stato addestrato su più lingue. Gemma 4 è leggermente migliore quando si usa soltanto l'inglese.
- Latenza su RTX 4070
- Simili: 2-4 secondi per una risposta breve. Gemma 4 12B è il 10-15% più veloce nella prima inferenza (encoder visivo più leggero).
- Licenza
- Entrambi sono sotto licenza Apache 2.0 (uso commerciale libero): Gemma 4 è passato ad Apache 2.0 nell'aprile 2026, allineando Google a Qwen. Non ci sono più restrizioni MAU da monitorare.
#Risoluzione dei problemi
- "Error: model does not support images"
- Stai chiamando un modello di testo. Verifica di aver scaricato un modello multimodale recente (qwen3.5, gemma4 o il vecchio llava). ollama list deve mostrare il modello corretto.
- Il modello descrive qualcosa di diverso dall'immagine
- Il base64 è probabilmente corrotto o contiene il prefisso data:image. Rimuovi data:image/png;base64, prima della chiamata. Prova prima dalla CLI per isolare il problema.
- VRAM saturata durante il caricamento
- L'encoder di visione viene aggiunto ai pesi LM. Passa a una quantizzazione più aggressiva (q3_K_M) o riduci OLLAMA_NUM_CTX a 4096 nell'ambiente.
- L'OCR non riconosce correttamente gli accenti francesi
- Specifica esplicitamente "Rispondi in francese preservando gli accenti" nel system prompt. Altrimenti il modello a volte latinizza il testo (e invece di é).
- Tempo di risposta > 30 s
- Un'immagine da 4000x3000 fa aumentare enormemente il numero di token visivi. Ridimensionala a un massimo di 1024x1024 prima di inviarla: il 90% della qualità OCR con il 10% delle risorse di calcolo.
#Per approfondire
Hai un LLM locale con capacità di visione funzionante. Tre percorsi naturali per andare oltre:
- Integrare in un'app Python completa
- La guida Integrare Ollama in un'applicazione Python tramite l'API REST tratta in dettaglio FastAPI, streaming e function calling: quanto descritto si applica senza modifiche ai modelli di visione.
- Costruire una pipeline di estrazione documentale
- La guida Compta: estrazione delle fatture mostra l'industrializzazione completa (coda dei job, validazione, esportazione verso l'ERP) a partire da un LLM vision locale.
- Scegliere la GPU adatta al tuo carico di lavoro
- La guida Scegliere la GPU per l'IA locale tratta le fasce di VRAM da 12/16/24 GB e il loro impatto sui modelli di visione 4B/9B/27B.
Un feedback, un errore, una precisazione? Facci sapere, così la guida migliora per tutti.