LLM multimodal com visão rodando localmente: analisar imagens com Ollama
Descrever uma foto, extrair uma tabela de uma captura de tela, ler o total de uma fatura digitalizada: desde 2024, os LLMs de visão com pesos abertos se comparam ao GPT-4o nessas tarefas, e o Ollama os disponibiliza com a mesma simplicidade que os modelos de texto. Este guia mostra como instalar um LLM de visão local com o Ollama, chamá-lo a partir do Python com uma imagem em base64 e aproveitar Qwen 3.5, Gemma 4 ou Qwen 3.8 de acordo com sua VRAM.
#Por que usar um LLM de visão localmente?
Enviar uma fatura de cliente, uma captura de tela médica ou um documento de RH para a OpenAI cria um problema de confidencialidade que os departamentos jurídicos se recusam cada vez mais a aceitar. Um LLM de visão local atende a esses casos concretos: OCR de documentos contábeis, descrição automática de um catálogo de produtos, moderação de imagens, acessibilidade (texto alternativo), extração de dados de PDFs escaneados.
A diferença em relação a um OCR clássico (Tesseract, PaddleOCR): um LLM com visão entende a semântica. Ele sabe dizer "o número de IVA é FR12345678901" enquanto um OCR retorna uma mistura de caracteres que você precisa analisar posteriormente. Em documentos estruturados, a confiabilidade ultrapassa 95 % no modo "extração JSON".
#Os modelos de visão disponíveis em Ollama
Seu ChatGPT privado e gratuito na sua máquina em 1 hora — LM Studio, Ollama, Open WebUI, seus documentos, sem nuvem.
- Espaço online vitalício
- PDF + arquivos
- Atualizações vitalícias
Ollama suporta nativamente várias famílias de modelos de visão desde a versão 0.4 (outubro de 2024), e a geração de 2026 mudou o cenário: a visão agora está integrada à tag padrão de Qwen 3.5 e Gemma 4, sem necessidade de uma variante -vl separada. Estas são as opções relevantes em 2026, classificadas por tamanho e qualidade do OCR em francês.
- qwen3.5:9b
- O melhor equilíbrio entre qualidade e VRAM em 2026. Excelente OCR em francês, compreende tabelas e formulários, contexto de 256k tokens, licença Apache 2.0. Aproximadamente 6,6 GB de pesos em Q4.
- qwen3.5:4b
- Versão leve para 4-6 GB de VRAM ou Mac M1/M2 16 GB. Mesma família multimodal Qwen 3.5, reconhecimento de texto em francês correto, descrições um pouco menos ricas. ~3,4 GB.
- qwen3.8:27b
- Para RTX 3090/4090/5090 (24 GB): qualidade semelhante à do GPT-4o na análise de documentos complexos. Visão, contexto 262k, Apache 2.0. ~18 GB de pesos em Q4.
- gemma4:12b
- A alternativa do Google (Gemma 4, abril de 2026), multimodal e agora sob a licença Apache 2.0. Muito boa em descrições gerais, um pouco menos eficaz em OCR puro. ~7,6 GB.
- gemma4:26b
- Gemma 4 26B-A4B, MoE multimodal. A opção topo de linha para uso profissional intensivo: ~19 GB de pesos, roda com 24 GB de VRAM ou em um Mac Studio com memória unificada.
- gemma4:e2b-it-qat
- Gemma 4 E2B quantizado com QAT (~4,3 GB). Opção compacta para pouca VRAM ou edge, sob licença Apache 2.0.
- qwen3.5:2b
- Qwen 3.5 2B multimodal (~1,9 GB, contexto 256k). Para Raspberry Pi 5 ou descrições rápidas em massa. Sem OCR sério em documentos complexos.
- llava:7b / llava:13b
- O antecessor histórico de 2023. Não implantar mais: sua qualidade já foi amplamente superada por Qwen 3.5 e Gemma 4 em 2026.
#Pré-requisitos de hardware
A VRAM necessária para um LLM de visão é ligeiramente superior à de seu equivalente de texto, devido ao encoder de visão (geralmente um ViT), que permanece carregado na memória além do modelo de linguagem.
- 8 GB de VRAM (RTX 3060 12GB, 4060, M1/M2 16GB)
- qwen3.5:4b com folga, ou qwen3.5:9b (6,6 GB), que cabe por pouco em Q4.
- 12 GB VRAM (RTX 3060 12GB, 4070, 5070)
- qwen3.5:9b confortável, gemma4:12b em Q4_K_M.
- 16 GB de VRAM (RTX 4070 Ti Super, 4080, 5070 Ti)
- Tudo o que foi dito acima + contexto de 32k tokens, ou qwen3.5:9b-q8_0 para a qualidade máxima da faixa.
- 24 GB de VRAM (RTX 3090, 4090, 5090)
- qwen3.8:27b (~18 GB) ou gemma4:26b, com qualidade próxima à dos modelos na nuvem.
- Mac com chip da série M e 24–48 GB de memória unificada
- qwen3.5:9b ou qwen3.8:27b graças à memória unificada. Prefira M3/M4 pela largura de banda.
Ollama deve estar na versão 0.4 ou superior para modelos de visão modernos. Verifique com o ollama --version. Se estiver abaixo, atualize antes de continuar.
#1. Instalar um modelo de visão
A instalação é igual a um modelo de texto: ollama pull tbaixa os pesos e o encoder de visão em uma única comando.
O download tem aproximadamente 6,6 GB (pesos do LM em Q4 + codificador ViT). Conte com 2 a 3 minutos em uma conexão de fibra óptica. Em seguida, verifique se o modelo está listado:
#2. Primeiro teste via CLI
Ollama aceita imagens diretamente na CLI a partir da versão 0.4: passe o caminho do arquivo após seu prompt.
O modelo carrega a imagem, a codifica via ViT e responde em streaming. Em uma RTX 4070, considere 2 a 4 segundos para uma descrição curta, 8 a 12 segundos para uma análise detalhada.
#3. API em Python com imagem em base64
Para integrar um LLM com visão em um app, Ollama expõe seu endpoint REST em http://localhost:11434. A imagem é passada pelo caminho do arquivo (binding Python) ou em base64 (HTTP direto).
Método recomendado: a biblioteca oficial ollama-python. Ela gerencia a codificação base64 para você e aceita um caminho diretamente.
Se você preferir gerenciar o base64 sozinho (imagem em memória, blob S3, upload via FastAPI), aqui está a versão explícita:
#4. Caso prático: OCR de uma fatura FR
A extração estruturada a partir de um documento digitalizado é o uso comercial mais solicitado. O padrão que funciona melhor: pedir uma saída em JSON com um esquema explícito no prompt.
Dois truques que transformam completamente a confiabilidade: usar format='json' (o Ollama então força uma saída JSON válida) e reduzir a temperatura para 0,1 para limitar as alucinações sobre os valores. Em 100 faturas francesas variadas, o Qwen 3.5 9B normalmente consegue de 92% a 96% de extração correta do valor total com impostos + data + fornecedor.
#Qwen 3.5 vs Gemma 4: qual escolher?
As duas famílias dominam o cenário dos modelos de visão com pesos abertos em 2026. Nosso comparativo prático com casos em francês, entre qwen3.5:9b e gemma4:12b:
- OCR em francês (faturas, contratos)
- Qwen 3.5 vence claramente. Gemma 4 tende a "inventar" números em documentos desfocados. Vantagem do Qwen: +15% de precisão.
- Descrição geral de imagem
- Empate. Gemma 4 produz descrições mais narrativas, Qwen 3.5, mais factuais. Questão de gosto.
- Compreensão de tabelas
- Qwen 3.5 se destaca. É um dos poucos modelos desse porte que sabe ler uma tabela dinâmica do Excel sem confundir seus dados.
- Geração de legendas multilíngues (FR/EN/ES)
- Qwen 3.5 foi treinado em mais idiomas. Gemma 4 é um pouco melhor quando se trata apenas de inglês.
- Latência na RTX 4070
- Semelhantes: 2 a 4 segundos para uma resposta curta. Gemma 4 12B é 10 a 15% mais rápido na primeira inferência (codificador de visão mais leve).
- Licença
- Ambos estão sob a licença Apache 2.0 (uso comercial livre): Gemma 4 passou para a licença Apache 2.0 em abril de 2026, alinhando Google ao Qwen. Nenhuma restrição MAU a monitorar.
#Solução de problemas
- "Error: model does not support images"
- Você está chamando um modelo de texto. Verifique se você baixou um modelo multimodal recente (qwen3.5, gemma4 ou o antigo llava). O comando ollama list deve exibir o modelo correto.
- O modelo descreve algo diferente da imagem
- O base64 provavelmente está corrompido ou contém o prefixo data:image. Remova data:image/png;base64, antes da chamada. Teste primeiro via CLI para isolar o problema.
- VRAM saturada ao carregar
- O codificador visual se soma aos pesos do LM. Mude para uma quantização mais agressiva (q3_K_M) ou reduza OLLAMA_NUM_CTX para 4096 nas variáveis de ambiente.
- O OCR falha no reconhecimento dos acentos franceses
- Especifique explicitamente "Responda em francês preservando os acentos" no prompt de sistema. Caso contrário, o modelo às vezes remove os acentos (e no lugar de é).
- Tempo de resposta > 30 s
- Uma imagem de 4000x3000 aumenta drasticamente o número de tokens visuais. Redimensione para no máximo 1024x1024 antes de enviar: 90% da qualidade de OCR com 10% do processamento.
#Para se aprofundar
Você tem um LLM de visão local funcionando. Três caminhos naturais para ir além:
- Integrar em uma aplicação Python completa
- O guia Integrar Ollama em uma aplicação Python via API REST detalha FastAPI, streaming, chamadas de função — aplicável diretamente aos modelos de visão.
- Construir um pipeline de extração documental
- O guia Contabilidade: extração de faturas mostra a industrialização completa (fila de tarefas, validação, exportação para ERP) a partir de um LLM de visão local.
- Escolher o GPU adequado para sua carga
- O guia Escolher sua GPU para IA local aborda os níveis de VRAM de 12/16/24 GB e seu impacto nos modelos de visão de 4B/9B/27B.
Um comentário, um erro ou uma observação? Avise-nos; isso ajuda a melhorar o guia para todos.