Points clés
- Llama 3.2 Vision 11B est le meilleur modèle de vision local pour la plupart des développeurs avec 8–16 Go de VRAM. Il traite photos, documents et contenus mixtes avec la meilleure précision de sa catégorie, disponible directement via Ollama.
- MiniCPM-V 2.6 (8B) est le premier choix pour l'OCR de documents avec 6 Go de VRAM. Ses données d'entraînement incluent des scans haute résolution — plus précis que LLaVA sur les tableaux, factures et textes denses.
- LLaVA 1.6 7B est le VLM local le mieux documenté. Meilleur choix généraliste si vous avez besoin de nombreux exemples et ressources de dépannage.
- Moondream 2 (1,9B) est la seule option pratique sous 4 Go de VRAM. Rapide et léger, mais limité sur les scènes complexes, les textes denses et la lecture précise de graphiques.
- InternVL 2.5 (8B) est le plus performant pour les captures d'écran de code et l'analyse UI. Son entraînement incluait des captures GitHub, des maquettes UI et des sorties d'exécution de code.
- **Tous les modèles sont disponibles via Ollama avec une seule commande
pull.** Aucune conversion, quantification ou configuration Python requise. - Aucun de ces modèles n'atteint la qualité de GPT-4o Vision. Les VLM locaux en 2026 sont une solide option de niveau 2 — excellents pour les documents structurés, plus faibles sur l'écriture manuscrite et les infographies complexes.
Faits rapides
- Ce que font les VLM : Entrée image + texte → sortie texte. Pas des générateurs d'images — ces modèles *comprennent* les images.
- Support Ollama : Tous les modèles de cette comparaison ont une intégration Ollama officielle ou communautaire (mai 2026).
- Plus petit modèle utilisable : Moondream 2 à 1,9B paramètres, ~2 Go de VRAM.
- Plus grand modèle local pratique : Llama 3.2 Vision 90B avec ~64 Go de mémoire unifiée (Apple M-Series ou multi-GPU).
- Format d'entrée image : JPEG, PNG, WebP. Résolution maximale variable selon le modèle (1024×1024 à 4096×4096).
- Précision OCR : Qwen2-VL 7B ≈ MiniCPM-V 2.6 > Llama 3.2 Vision 11B > LLaVA 1.6 13B > LLaVA 1.6 7B > Moondream 2.
- Multimodal = plus lent : Les VLM ajoutent un encodeur visuel au LLM — ~30–60 % plus lent qu'un modèle texte seul de même taille.
Qu'est-ce qu'un modèle vision-langage (VLM) ?
Un modèle vision-langage (VLM) est un réseau de neurones qui traite simultanément des images et du texte pour produire du texte en sortie. L'architecture standard associe un encodeur visuel (CLIP ou SigLIP) à un décodeur de langage (un LLM), reliés par une couche de projection.
- Différence avec les générateurs d'images : Stable Diffusion, FLUX et DALL-E 3 génèrent des images à partir de texte. Les VLM sont des modèles image-vers-texte — ils décrivent, analysent et répondent à des questions sur les images.
- Différence avec l'OCR classique : L'OCR traditionnel (Tesseract) extrait du texte par reconnaissance de motifs. Les VLM comprennent le contexte — ils peuvent expliquer une table, répondre à des questions sur un graphique.
- Pourquoi les exécuter localement : Documents privés (dossiers médicaux, scans juridiques, relevés financiers), captures d'écran propriétaires, ou workflows où l'envoi d'images à des API cloud soulève des problèmes de conformité.
- Ce qu'ils ne peuvent pas faire : Générer des images, exécuter du code visible dans les captures d'écran, ou accéder à internet.
Modèles de vision locaux disponibles — Tableau comparatif
Comparaison des modèles de vision locaux les plus performants disponibles via Ollama (mai 2026). Valeurs VRAM pour les variantes quantifiées en 4 bits (Q4).
📍 En une phrase
Pour 6–8 Go de VRAM : MiniCPM-V 2.6 pour l'OCR, Llama 3.2 Vision 11B pour les questions-réponses générales — tous deux en local via Ollama.
💬 En termes simples
Moondream : option légère pour petites configs. LLaVA : choix généraliste sûr. MiniCPM-V : spécialiste OCR. Llama 3.2 Vision : meilleur global. InternVL : expert UI/code.
| Modèle | Paramètres | VRAM (Q4) | Types d'images | Qualité | Via Ollama ? |
|---|---|---|---|---|---|
| Moondream 2 | 1,9B | ~2 Go | Photos simples | Basique | Oui |
| LLaVA 1.6 7B | 7B | ~6 Go | Photos, documents, graphiques | Bon | Oui |
| LLaVA 1.6 13B | 13B | ~10 Go | Photos, documents, graphiques | Très bon | Oui |
| MiniCPM-V 2.6 | 8B | ~6 Go | Photos, documents, OCR | Très bon | Oui |
| Llama 3.2 Vision 11B | 11B | ~8 Go | Photos, documents | Excellent | Oui |
| Llama 3.2 Vision 90B | 90B | ~64 Go | Photos, documents, complexe | Meilleur local | Oui |
| InternVL 2.5 8B | 8B | ~8 Go | Documents, graphiques, UI, code | Excellent (UI/graphiques) | Communauté |
| Qwen2-VL 7B | 7B | ~6 Go | Photos, documents, OCR, multilingue | Excellent | Oui |
| Qwen2-VL 72B | 72B | ~48 Go | Photos, documents, complexe | Meilleur open-source | Oui |
| PaliGemma 2 3B | 3B | ~3 Go | Photos, documents | Bon | Communauté |
| SmolVLM 2,2B | 2,2B | ~2 Go | Photos simples, légendes | Basique+ | Communauté |
Test de précision : extraction de facture
Comparaison de la précision des VLM locaux sur une tâche d'extraction structurée. Test : extraire 5 champs d'une facture type (fournisseur, date, total, TVA, nombre de lignes).
| Modèle | Fournisseur | Date | Total | TVA | Lignes | Score |
|---|---|---|---|---|---|---|
| Moondream 2 | ✓ | ✓ | ✗ | ✗ | ✗ | 2/5 |
| LLaVA 1.6 7B | ✓ | ✓ | ✓ | ✗ | ✓ | 4/5 |
| MiniCPM-V 2.6 | ✓ | ✓ | ✓ | ✓ | ✓ | 5/5 |
| Qwen2-VL 7B | ✓ | ✓ | ✓ | ✓ | ✓ | 5/5 |
| Llama 3.2 11B | ✓ | ✓ | ✓ | ✓ | ✓ | 5/5 |
| GPT-4o Vision | ✓ | ✓ | ✓ | ✓ | ✓ | 5/5 |
📌Note: Résultats issus d'une seule facture test. La précision varie selon la qualité du document, la police et la complexité de la mise en page. Toujours vérifier les chiffres extraits contre le document source.
Support multi-images
Tous les VLM locaux n'acceptent pas plusieurs images dans une seule requête. Ce support est utile pour le traitement de documents multi-pages et les comparaisons visuelles.
- MiniCPM-V 2.6 accepte jusqu'à 4 images par prompt ; Qwen2-VL jusqu'à 8. LLaVA et Moondream n'acceptent qu'une image à la fois.
- Quand le multi-images est utile : Envoyer toutes les pages d'un PDF multi-pages, comparer deux photos de produit, analyser des captures avant/après dans un seul prompt.
| Fonctionnalité | Moondream | LLaVA 7B | MiniCPM-V | Qwen2-VL | LLaVA 13B | Llama 3.2 Vision | InternVL |
|---|---|---|---|---|---|---|---|
| Entrée multi-images | Non | Non | Oui (jusqu'à 4) | Oui (jusqu'à 8) | Non | Oui (multi-pages) | Oui |
Configuration via Ollama — étape par étape
Ollama est la façon la plus simple d'exécuter des modèles de vision locaux. Après installation, les modèles de vision fonctionnent avec une seule commande pull.
- Étape 1 — Installer Ollama : Téléchargez depuis ollama.com pour macOS, Linux ou Windows. Installation en moins de 2 minutes.
- Étape 2 — Télécharger un modèle :
ollama pull llama3.2-vision(11B, ~8 Go) ouollama pull moondream(1,9B, ~2 Go) pour les configs limitées en VRAM. - Étape 3 — Utiliser via CLI :
ollama run llama3.2-vision "Qu'y a-t-il dans cette image ?" --image /chemin/photo.jpg - Étape 4 — Utiliser l'API HTTP : POST vers
http://localhost:11434/api/generateavec l'image encodée en base64 dans le tableauimages. - Étape 5 — Exemple Python : Utiliser la bibliothèque
requestsavec l'encodage base64 — voir le bloc de code ci-dessous.
import base64
import requests
def ask_vision_model(image_path: str, prompt: str, model: str = "llama3.2-vision") -> str:
with open(image_path, "rb") as f:
image_b64 = base64.b64encode(f.read()).decode("utf-8")
response = requests.post(
"http://localhost:11434/api/generate",
json={
"model": model,
"prompt": prompt,
"images": [image_b64],
"stream": False,
},
)
return response.json()["response"]
# Exemple d'utilisation
result = ask_vision_model("facture.png", "Extraire toutes les lignes et les montants totaux de cette facture.")
print(result)Cas d'usage 1 : OCR et extraction de documents
Les VLM surpassent l'OCR classique sur les documents semi-structurés — factures, reçus, contrats et tableaux où la mise en page compte autant que le texte.
- Ce qui fonctionne bien : Factures scannées, captures de PDF, notes manuscrites en lettres d'imprimerie, tableaux avec bordures claires.
- Ce qui fonctionne moins bien : Écriture cursive, scans sous 150 DPI, JPEG très compressés, textes superposés.
- Meilleurs modèles pour l'OCR : MiniCPM-V 2.6 (précision maximale dans la classe 6 Go), Llama 3.2 Vision 11B (meilleur sur les types de documents mixtes).
- Prompt engineering pour l'OCR : « Extraire tout le texte de ce document tel qu'il est écrit. » Ou : « Retourner le contenu de cette facture en JSON avec les champs : fournisseur, date, lignes[], total. »
- Vs OCR classique : Les VLM sont plus lents mais plus sémantiques. Tesseract est plus rapide pour l'extraction de texte brut. Utiliser les VLM pour l'extraction de données structurées.
Cas d'usage 2 : Questions-réponses sur images
Pour la compréhension générale de scènes et les questions-réponses visuelles, Llama 3.2 Vision 11B est le modèle local recommandé.
- Description de scènes : « Qu'y a-t-il sur cette photo ? » — objets, personnes, activités, décor.
- Catalogage de produits : Traiter des photos avec un template : « Décrire couleur, forme, matière, état. » Utile pour l'inventaire e-commerce sans API cloud.
- Accessibilité : Générer des textes alternatifs pour les images à grande échelle.
- Meilleurs modèles : LLaVA 1.6 13B ou Llama 3.2 Vision 11B pour les Q&A sur photos. LLaVA 1.6 7B pour le traitement en volume.
- Vitesse : Sur un GPU 6 Go, Llama 3.2 Vision 11B Q4 génère ~8–12 tokens/sec — 100 images prennent ~2–5 minutes.
Cas d'usage 3 : Analyse de captures d'écran et UI
Pour l'analyse de captures d'écran d'applications et de tableaux de bord, InternVL 2.5 est le modèle local le plus performant.
- Workflows développeur : Envoyer des captures de messages d'erreur : « Qu'est-ce qui ne va pas dans cette capture et comment le corriger ? »
- Génération de rapports de bugs : Créer automatiquement des descriptions de bugs à partir de captures d'écran.
- Monitoring de tableaux de bord : Analyser des captures pour détecter des anomalies.
- Tests d'accessibilité : Comparer des captures avant et après des modifications UI.
- Meilleurs modèles : InternVL 2.5 8B (meilleure compréhension UI), MiniCPM-V 2.6 (deuxième, avec support Ollama).
Cas d'usage 4 : Lecture de graphiques
Extraire des données de graphiques est possible mais nécessite un prompting soigneux. Toujours vérifier les valeurs numériques extraites contre les données source.
- Ce qui fonctionne : Lire les étiquettes d'axes, identifier les tendances, comparer des hauteurs de barres.
- Ce qui est peu fiable : Extraction numérique précise sur des graphiques continus, pourcentages de diagrammes circulaires sans étiquettes.
- Stratégie de prompt : « Décris la tendance » fonctionne mieux que « Quelle est la valeur exacte en mars 2026 ? »
- Meilleurs modèles : InternVL 2.5 (meilleure compréhension des graphiques), Llama 3.2 Vision 11B (bon sur les graphiques bien étiquetés).
- Limite : Aucun VLM local n'extrait de façon fiable des valeurs précises de graphiques complexes en 2026.
Cas d'usage 5 : Analyse d'images vidéo
Les VLM locaux peuvent analyser des vidéos en traitant des images individuelles — extraire des images avec ffmpeg, les traiter avec le modèle, puis résumer avec un LLM texte. Non temps réel : 1 image par 0,5–3 secondes.
- Extraction d'images :
ffmpeg -i video.mp4 -vf fps=1 frames/frame_%04d.jpg - Analyse image par image : Envoyer chaque image au modèle avec un prompt cohérent.
- Résumé global : Collecter toutes les descriptions et les envoyer à un LLM texte.
- Cas d'usage : Revue de caméras de sécurité, analyse d'enregistrements de cours, inspection qualité en fabrication.
- Meilleurs modèles : Llama 3.2 Vision 11B pour la qualité, LLaVA 1.6 7B pour la vitesse.
- Réalité des performances : Une vidéo de 10 minutes prend ~20–30 minutes à traiter complètement.
import base64
import subprocess
import os
import requests
def extract_frames(video_path: str, output_dir: str, fps: int = 1) -> list[str]:
os.makedirs(output_dir, exist_ok=True)
subprocess.run([
"ffmpeg", "-i", video_path,
"-vf", f"fps={fps}",
f"{output_dir}/frame_%04d.jpg",
"-y"
], check=True)
return sorted([
os.path.join(output_dir, f)
for f in os.listdir(output_dir)
if f.endswith(".jpg")
])
def analyze_frame(image_path: str, model: str = "llama3.2-vision") -> str:
with open(image_path, "rb") as f:
image_b64 = base64.b64encode(f.read()).decode("utf-8")
response = requests.post(
"http://localhost:11434/api/generate",
json={
"model": model,
"prompt": "Describe what is happening in this frame in one sentence.",
"images": [image_b64],
"stream": False,
},
)
return response.json()["response"]
frames = extract_frames("cours.mp4", "frames/", fps=1)
descriptions = [analyze_frame(f) for f in frames]
print("\n".join(f"[{i+1}s] {d}" for i, d in enumerate(descriptions)))VRAM et réalité des performances
Les VLM locaux ajoutent un encodeur visuel au LLM de base, augmentant à la fois les besoins en VRAM et le temps d'inférence.
| Modèle | VRAM (Q4) | Tokens/sec (RTX 4070) | Tokens/sec (M5 Pro 36 Go) | Utilisable en production ? |
|---|---|---|---|---|
| Moondream 2 (1,9B) | ~2 Go | ~25–35 | ~30–40 | Oui — tâches simples |
| LLaVA 1.6 7B | ~6 Go | ~15–20 | ~18–25 | Oui — usage général |
| MiniCPM-V 2.6 (8B) | ~6 Go | ~12–18 | ~15–20 | Oui — OCR et documents |
| Llama 3.2 Vision 11B | ~8 Go | ~10–14 | ~12–16 | Oui — meilleure qualité |
| LLaVA 1.6 13B | ~10 Go | ~8–12 | ~10–14 | Oui — avec GPU 12 Go |
| Llama 3.2 Vision 90B | ~64 Go | N/A (multi-GPU ou M-Max) | N/A (M5 Max 128 Go+) | Apple Silicon haut de gamme uniquement |
📌Note: La vitesse de génération de tokens est plus lente que pour les modèles texte seul de même taille, car l'encodeur visuel ajoute une surcharge sur le premier token image.
📌Note: La mémoire unifiée Apple Silicon permet d'exécuter des modèles plus grands (jusqu'à 90B sur M5 Max 128 Go) qui ne tiendraient pas en VRAM GPU discret. Légèrement plus lent qu'un GPU NVIDIA équivalent, mais sans limitation de VRAM.
Modèles de vision locaux vs GPT-4o Vision
Les VLM locaux ont considérablement réduit l'écart sur les documents structurés, mais restent en retrait sur les tâches complexes.
- Documents structurés (factures, formulaires) : Modèles locaux à 80–90 % de la qualité GPT-4o — suffisant pour la production.
- Scènes complexes, images ambiguës : Modèles locaux à 50–70 % de GPT-4o — écart de qualité notable.
- Reconnaissance de l'écriture manuscrite : Modèles locaux nettement plus faibles, surtout pour le cursif.
- Extraction de données de graphiques : Peu fiable sur les deux, mais GPT-4o plus précis sur les valeurs numériques.
- Coût : GPT-4o Vision à 0,01–0,03 $ par image vs 0 $ en local. 10 000 images/mois = 100–300 $ économisés.
- Confidentialité : Traitement local — aucune image n'est envoyée aux serveurs OpenAI. La CNIL recommande le traitement local pour les données professionnelles sensibles.
- Vitesse : Modèles locaux à 10–20 tokens/sec vs GPT-4o à 30–80 tokens/sec, mais sans latence réseau pour le traitement par lots.
📌Note: Pour le traitement de factures avec une entrée propre, les VLM locaux (Llama 3.2 Vision 11B, Qwen2-VL 7B) peuvent remplacer GPT-4o Vision à coût zéro.
LLaVA en détail
LLaVA (Large Language and Vision Assistant) est l'architecture VLM open-source fondatrice. Publiée par l'Université du Wisconsin-Madison et Microsoft Research en 2023.
- Architecture : Encodeur visuel CLIP ViT-L/14 + décodeur texte Llama-2 ou Mistral, reliés par une couche de projection linéaire.
- LLaVA 1.5 vs 1.6 : La version 1.6 (début 2024) a ajouté le support haute résolution via le découpage dynamique, améliorant significativement l'OCR et la lecture de graphiques.
- Entraînement : Instruction-tuning sur LLaVA-Instruct-150K — conversations visuelles générées à partir de légendes d'images.
- Points forts : Large base de connaissances, bien documenté, grande communauté, intégration Ollama étendue.
- Points faibles : OCR moins précis que MiniCPM-V 2.6, analyse UI moins bonne qu'InternVL 2.5.
- Pourquoi toujours recommandé : La plus grande communauté, le plus de tutoriels et d'exemples de prompts de tous les VLM locaux.
Qwen2-VL — Meilleure OCR multilingue
Qwen2-VL est le modèle vision-langage d'Alibaba et la meilleure option open-source sur les benchmarks documentaires en 2026.
- Architecture : Résolution dynamique jusqu'à 4096×4096 — bien supérieure à LLaVA 1.6 (672×672) ou Llama 3.2 Vision (1120×1120).
- OCR multilingue : Meilleure classe pour le chinois, japonais, coréen et anglais. Données d'entraînement multilingues étendues.
- 7B vs 72B : Le 7B tient dans ~6 Go de VRAM (Q4), compétitif avec Llama 3.2 Vision 11B. Le 72B (~48 Go) domine les benchmarks open-source.
- Installation Ollama :
ollama pull qwen2-vl:7b - Multi-images : Jusqu'à 8 images par requête — capacité maximale de cette comparaison.
- Page du modèle : Qwen2-VL 7B sur Hugging Face
Choisir son modèle de vision
Arbre de décision basé sur le VRAM disponible :
📍 En une phrase
Choisir d'abord par VRAM (2→4→6→8→16 Go), puis affiner par cas d'usage (OCR, UI, Q&A général, qualité maximale).
💬 En termes simples
Moins de 4 Go : Moondream uniquement. 6 Go : MiniCPM-V pour les documents, LLaVA 7B pour les photos. 8–16 Go : Llama 3.2 Vision 11B pour presque tout. 64+ Go : Llama 3.2 Vision 90B pour la meilleure qualité.
- Moins de 4 Go de VRAM : Moondream 2 (1,9B) à 2 Go. PaliGemma 2 (3B) et SmolVLM (2,2B) comme alternatives — PaliGemma 2 avec une meilleure compréhension documentaire (~3 Go). Aucun adapté à l'OCR de texte dense.
- 6 Go de VRAM : MiniCPM-V 2.6 pour l'OCR de documents. LLaVA 1.6 7B pour les questions-réponses générales sur photos. Qwen2-VL 7B pour l'OCR multilingue.
- 8–16 Go de VRAM : Llama 3.2 Vision 11B — recommandation claire, meilleure qualité globale, large support Ollama.
- 16+ Go de VRAM : LLaVA 1.6 13B pour les scènes complexes. InternVL 2.5 8B pour les captures d'écran UI/code.
- 64+ Go de mémoire unifiée : Llama 3.2 Vision 90B pour la meilleure qualité locale. Qwen2-VL 72B comme alternative avec les meilleurs scores de benchmarks.
- Toujours vérifier les chiffres : Croiser toute valeur numérique extraite de graphiques avec les données source.
FAQ
Puis-je utiliser LLaVA ou Llama 3.2 Vision sans Ollama ?
Oui. Les deux peuvent être exécutés directement via llama.cpp (avec support vision), la bibliothèque transformers, ou LM Studio. Ollama est recommandé pour sa simplicité.
Llama 3.2 Vision supporte-t-il l'entrée PDF directe ?
Aucun VLM local n'accepte les PDF directement. Il faut d'abord convertir les pages PDF en images (pdf2image, pypdfium2) et envoyer chaque page comme requête séparée.
Comment les VLM locaux se comparent-ils à GPT-4o Vision ?
GPT-4o Vision reste nettement meilleur sur les scènes ambiguës, l'écriture manuscrite et les infographies complexes. Llama 3.2 Vision 11B s'approche de GPT-4o sur les documents structurés. Voir la comparaison complète (coût, confidentialité, vitesse) ci-dessus.
Quelle résolution d'image supportent les VLM locaux ?
LLaVA 1.6 jusqu'à 672×672 (découpage dynamique). MiniCPM-V 2.6 jusqu'à 1792×1792. Llama 3.2 Vision jusqu'à 1120×1120. Pour un meilleur OCR, envoyer des documents à 150+ DPI.
Puis-je affiner un VLM local sur mes propres images ?
Oui, mais plus exigeant en ressources que le fine-tuning de LLM texte. LLaVA est bien documenté pour le fine-tuning. MiniCPM-V via les scripts officiels sur Hugging Face. Pour la plupart des cas, le prompt engineering suffit.
Quel est le meilleur modèle de vision local pour 8 Go de VRAM ?
Llama 3.2 Vision 11B (Q4 tient dans ~8 Go) pour l'usage général. Qwen2-VL 7B si l'OCR multilingue est le besoin principal. Les deux disponibles via Ollama.
LLaVA vs MiniCPM-V — lequel est meilleur pour l'OCR ?
MiniCPM-V 2.6 est plus précis sur l'OCR de documents, notamment les tableaux denses et les scans haute résolution. LLaVA est mieux documenté. Pour la précision OCR : MiniCPM-V. Pour les ressources communautaires : LLaVA.
Les VLM locaux peuvent-ils lire l'écriture manuscrite ?
Écriture en lettres d'imprimerie : oui, avec une précision modérée. Écriture cursive : peu fiable sur tous les modèles locaux. GPT-4o Vision est nettement meilleur pour le cursif.
Sources
- Page du projet LLaVA — Fiches modèles LLaVA 1.5 et 1.6, détails d'architecture et description du jeu de données.
- Llama 3.2 Vision sur Hugging Face — Fiche modèle officielle Meta et benchmarks.
- MiniCPM-V 2.6 sur Hugging Face — Fiche modèle OpenBMB, benchmarks OCR et instructions de fine-tuning.
- Moondream sur GitHub — Description de l'architecture et scripts d'inférence.
- InternVL 2.5 sur Hugging Face — Fiche modèle OpenGVLab et benchmarks UI.
- Documentation Ollama — Support des modèles vision, référence API et bibliothèque de modèles.
- Qwen2-VL sur Hugging Face — Fiche modèle Qwen2-VL d'Alibaba et benchmarks OCR multilingues.
- PaliGemma 2 sur Hugging Face — Fiche modèle PaliGemma 2 3B de Google.
- SmolVLM sur Hugging Face — Fiche modèle SmolVLM de HuggingFace.