关键要点
- Llama 3.2 Vision 11B是大多数拥有8–16 GB VRAM的开发者的最佳本地视觉模型。 可处理照片、文档和混合内容,精度在同类中最高,可直接通过Ollama获取。
- MiniCPM-V 2.6(8B)是6 GB VRAM下文档OCR的首选。 训练数据包含高分辨率文档扫描,在表格、发票和密集文本处理上比LLaVA更精准。
- LLaVA 1.6 7B是文档最完善、社区测试最充分的本地VLM。 需要大量示例、教程和排错资源时的最安全通用选择。
- Moondream 2(1.9B)是4 GB VRAM以下唯一可用的实用选择。 速度快、体积小,但复杂场景、密集文本和精确图表读取能力有限。
- InternVL 2.5(8B)在代码截图和UI分析方面最强。 训练数据包含GitHub截图、UI原型图和代码执行输出。
- **所有模型均可通过Ollama单条
pull命令获取。** 无需模型转换、量化或Python环境配置,CLI和HTTP API开箱即用。 - 这些模型均未达到GPT-4o Vision的质量水平。 2026年的本地VLM是强有力的二线选择——对结构化文档和清晰照片表现出色,但对手写、模糊场景和复杂信息图表存在明显短板。
快速概览
- VLM的功能: 图像+文本输入 → 文本输出。不是图像生成器——这些是图像*理解*模型。
- Ollama支持: 本比较中所有模型截至2026年5月均有官方或社区Ollama集成。
- 最小可用模型: Moondream 2,1.9B参数,约2 GB VRAM。
- 最大实用本地模型: Llama 3.2 Vision 90B,约64 GB统一内存(Apple M系列或多GPU)。
- 图像输入格式: JPEG、PNG、WebP。最大分辨率因模型而异(通常1024×1024至4096×4096)。
- OCR强度: Qwen2-VL 7B ≈ MiniCPM-V 2.6 > Llama 3.2 Vision 11B > LLaVA 1.6 13B > LLaVA 1.6 7B > Moondream 2。
- 多模态≠高速: 视觉模型在LLM基础上增加视觉编码器——token生成速度比同参数量纯文本模型慢约30–60%。
什么是视觉语言模型(VLM)?
视觉语言模型(VLM)是同时处理图像和文本输入并生成文本输出的神经网络。标准架构将视觉编码器(通常为CLIP或SigLIP)与语言解码器(LLM)通过投影层连接,将图像特征映射到LLM理解的token空间。
- 与图像生成器的区别: Stable Diffusion、FLUX和DALL-E 3是文本生成图像的生成器。VLM是图像到文本的模型——它们描述、分析并回答关于图像的问题。
- 与纯OCR工具的区别: 传统OCR(Tesseract)通过模式识别提取文本。VLM理解上下文——可解释表格含义、回答图表问题或识别照片中的对象。
- 为何在本地运行: 私密文档(医疗记录、法律扫描件、财务报表)、专有截图,或因合规要求不能将图像发送到云端API的工作流。
- 不能做的事: 生成图像、执行截图中的代码或访问互联网。VLM仅根据图像中可见内容生成文本输出。
可用本地视觉模型——对比表
2026年5月可通过Ollama或直接推理使用的主要本地视觉模型比较。VRAM数据为4位量化(Q4)版本,除非另有说明。
📍 简单一句话
6–8 GB VRAM:文档OCR选MiniCPM-V 2.6,通用图像问答选Llama 3.2 Vision 11B——均可通过Ollama本地运行。
💬 简单来说
Moondream:随处可运行的轻量选项;LLaVA:安全的通用选择;MiniCPM-V:OCR专家;Llama 3.2 Vision:整体最优;InternVL:UI/代码截图专家。
| 模型 | 参数量 | VRAM (Q4) | 图像类型 | 质量 | 支持Ollama? |
|---|---|---|---|---|---|
| Moondream 2 | 1.9B | 约2 GB | 简单照片 | 基础 | 是 |
| LLaVA 1.6 7B | 7B | 约6 GB | 照片、文档、图表 | 良好 | 是 |
| LLaVA 1.6 13B | 13B | 约10 GB | 照片、文档、图表 | 非常好 | 是 |
| MiniCPM-V 2.6 | 8B | 约6 GB | 照片、文档、OCR | 非常好 | 是 |
| Llama 3.2 Vision 11B | 11B | 约8 GB | 照片、文档 | 优秀 | 是 |
| Llama 3.2 Vision 90B | 90B | 约64 GB | 照片、文档、复杂 | 本地最强 | 是 |
| InternVL 2.5 8B | 8B | 约8 GB | 文档、图表、UI、代码 | 优秀(UI/图表) | 社区支持 |
| Qwen2-VL 7B | 7B | 约6 GB | 照片、文档、OCR、多语言 | 优秀 | 是 |
| Qwen2-VL 72B | 72B | 约48 GB | 照片、文档、复杂 | 开源最强 | 是 |
| PaliGemma 2 3B | 3B | 约3 GB | 照片、文档 | 良好 | 社区支持 |
| SmolVLM 2.2B | 2.2B | 约2 GB | 简单照片、图注 | 基础+ | 社区支持 |
实际精度测试:发票提取
本地视觉模型在结构化文档提取任务上的精度对比。测试:从同一样本发票中提取5个字段(供应商名称、日期、总金额、税额、行项目数量)。
| 模型 | 供应商 | 日期 | 总金额 | 税额 | 行项目 | 得分 |
|---|---|---|---|---|---|---|
| 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: 结果来自单份测试发票。实际精度因文档质量、字体和布局复杂度而异。始终将提取的数字与原始文档核对。
多图像支持
并非所有本地视觉模型都支持单次请求中的多张图像。多图像支持对多页PDF文档处理和视觉对比任务至关重要。
- MiniCPM-V 2.6每次提示最多接受4张图像;Qwen2-VL最多支持8张。LLaVA和Moondream每次请求只接受单张图像。
- 多图像的重要场景: 发送多页PDF的所有页面进行完整文档提取;并排比较两张产品照片;在单个提示中分析前后截图对比。
| 功能 | Moondream | LLaVA 7B | MiniCPM-V | Qwen2-VL | LLaVA 13B | Llama 3.2 Vision | InternVL |
|---|---|---|---|---|---|---|---|
| 多图像输入 | 不支持 | 不支持 | 支持(最多4张) | 支持(最多8张) | 不支持 | 支持(多页) | 支持 |
Ollama配置——逐步说明
Ollama是运行本地视觉模型最简单的方式。安装后,视觉模型通过单条pull命令即可使用,支持CLI和HTTP API。
- 步骤1——安装Ollama: 从ollama.com下载macOS、Linux或Windows版本。安装时间不超过2分钟。
- 步骤2——拉取视觉模型:
ollama pull llama3.2-vision(11B,约8 GB下载)或低VRAM时选ollama pull moondream(1.9B,约2 GB)。 - 步骤3——通过CLI使用:
ollama run llama3.2-vision "这张图片里有什么?" --image /path/to/photo.jpg - 步骤4——使用HTTP API: POST到
http://localhost:11434/api/generate,在images数组中包含Base64编码的图像。 - 步骤5——Python示例: 使用
requests库进行Base64编码——见下方代码块。
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"]
# 示例用法
result = ask_vision_model("invoice.png", "从这张发票中提取所有行项目和总金额。")
print(result)用例1:文档OCR与提取
VLM在半结构化文档上优于传统OCR ——发票、收据、合同和表格中,布局与文本同样重要。传统OCR(Tesseract)提取字符;VLM理解这些字符在上下文中的含义。
- 效果好的场景: 扫描发票、PDF截图、印刷体手写(非草书)、边框清晰的表格、名片。
- 效果较差的场景: 草书手写、低于150 DPI的扫描件、高压缩JPEG、重叠文本。
- OCR最佳模型: MiniCPM-V 2.6(6 GB级别中OCR精度最高),Llama 3.2 Vision 11B(混合文档类型最优)。
- OCR提示工程: "请完整提取此文档中的所有文本,保留换行符。"或"请以JSON格式返回此发票内容,字段包括:供应商、日期、行项目[]、总金额。"
- 与传统OCR对比: VLM速度较慢但语义理解更强。干净文档的纯文本提取用Tesseract更快。需要结构化数据提取时使用VLM。
用例2:图像问答与描述
通用场景理解、产品描述和视觉问答推荐使用Llama 3.2 Vision 11B。 该模型可生成自然、详细的描述,并处理关于照片内容的细微问题。
- 场景描述: "这张照片里有什么?"——物体、人物、活动、环境、氛围。
- 产品目录化: 用提示模板处理产品照片:"描述此产品:颜色、形状、材质、状态。"适用于无需云端API的电商库存管理。
- 无障碍访问: 大规模为图像生成alt文本。
- 最佳模型: LLaVA 1.6 13B或Llama 3.2 Vision 11B(通用照片问答);LLaVA 1.6 7B(速度优先的大批量处理)。
- 速度参考: 6 GB GPU上,Llama 3.2 Vision 11B Q4生成约8–12 token/秒——处理100张图像约需2–5分钟。
用例3:截图与UI分析
分析应用截图、错误消息和仪表板,InternVL 2.5是最强的本地模型——其训练数据着重强调软件UI、GitHub截图和代码执行输出。
- 开发者工作流: 将错误消息截图发给模型:"这个截图中哪里有问题,如何修复?"
- Bug报告生成: 用结构化提示从截图自动生成Bug描述。
- 仪表板监控: 分析监控仪表板截图以检测异常——"这个Grafana截图中是否有警告级别的指标?"
- 无障碍测试: 对比UI改动前后的截图以验证视觉无障碍属性。
- 最佳模型: InternVL 2.5 8B(UI理解最强),MiniCPM-V 2.6(次优,支持Ollama)。
用例4:图表与图形读取
从条形图、折线图和表格中提取数据是可行的,但需要精心设计提示。 所有本地VLM在图表读取上都弱于照片描述——始终将从图表提取的数字与原始数据核对。
- 效果好的场景: 读取坐标轴标签、识别趋势、比较相对柱高、读取字体清晰的表格值。
- 不可靠的场景: 从连续图表精确提取数值(如"Q3柱子是43.7单位")、无显式标签的饼图百分比。
- 提示策略: "描述折线图中显示的趋势"比"2026年3月的精确值是多少"效果更好。
- 图表最佳模型: InternVL 2.5(图表理解最佳),Llama 3.2 Vision 11B(标注清晰的图表表现良好)。
- 限制说明: 2026年任何本地VLM都无法可靠地从视觉复杂的图表中提取精确数字。
用例5:视频帧分析
本地视觉模型可通过处理单帧来分析视频——用ffmpeg提取帧,逐帧发给视觉模型,再用文本LLM跨帧汇总。非实时:根据模型和硬件,每帧需0.5–3秒。
- 帧提取: 使用ffmpeg以1fps提取:
ffmpeg -i video.mp4 -vf fps=1 frames/frame_%04d.jpg - 逐帧分析: 用统一提示将每帧发给视觉模型(例如:"用一句话描述这帧中发生的事情")。
- 跨帧汇总: 收集所有帧描述,配合汇总提示发给文本LLM。
- 应用场景: 安防摄像头审查(标记异常活动帧)、讲座录制分析(生成逐幻灯片笔记)、制造业质量检验(标记出现缺陷的帧)。
- 视频帧最佳模型: Llama 3.2 Vision 11B(质量),LLaVA 1.6 7B(速度,帧处理吞吐量更高)。
- 速度现实: RTX 4070上每帧推理约1秒,10分钟视频完整处理约需20–30分钟。
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("lecture.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与性能实测
本地视觉模型在基础LLM上增加视觉编码器,与纯文本模型相比,VRAM需求和推理时间均会增加。
| 模型 | VRAM (Q4) | token/秒 (RTX 4070) | token/秒 (M5 Pro 36GB) | 适合生产? |
|---|---|---|---|---|
| Moondream 2 (1.9B) | 约2 GB | 约25–35 | 约30–40 | 是——适合简单任务 |
| LLaVA 1.6 7B | 约6 GB | 约15–20 | 约18–25 | 是——通用 |
| MiniCPM-V 2.6 (8B) | 约6 GB | 约12–18 | 约15–20 | 是——OCR和文档 |
| Llama 3.2 Vision 11B | 约8 GB | 约10–14 | 约12–16 | 是——最佳综合质量 |
| LLaVA 1.6 13B | 约10 GB | 约8–12 | 约10–14 | 是——需12 GB GPU |
| Llama 3.2 Vision 90B | 约64 GB | N/A(需多GPU或M-Max) | N/A(需M5 Max 128GB+) | 仅高端Apple Silicon |
📌Note: 视觉模型的token生成速度比同尺寸纯文本模型慢,因为视觉编码器在处理第一个图像token时会产生大量计算开销。后续文本token的生成速度接近正常水平。
📌Note: Apple Silicon统一内存可运行更大的模型(M5 Max 128GB最高支持90B),这些模型无法放入独立GPU的VRAM中。速度略慢于同等NVIDIA GPU,但无VRAM限制。
本地VLM与GPT-4o Vision对比
本地VLM在结构化文档上已大幅缩小差距,但在复杂和模糊任务上仍落后于GPT-4o Vision。
- 结构化文档(发票、表单): 本地模型达到GPT-4o质量的80–90%——对格式规范的文档已足够用于生产。
- 复杂场景、模糊图像: 本地模型达到GPT-4o的50–70%——在异常上下文、光线或模糊内容方面存在明显质量差距。
- 手写识别: 本地模型明显较弱,尤其是草书体。GPT-4o Vision在手写处理上大幅领先。
- 图表数据提取: 本地模型和GPT-4o均不可靠,但GPT-4o在精确数值方面更准确。
- 成本: GPT-4o Vision每张图像$0.01–$0.03,本地为$0。每月10,000张图像节省$100–$300。
- 隐私: 本地模型在设备上处理图像——数据不会离开本机。GPT-4o将图像发送至OpenAI服务器。
- 速度: 本地模型10–20 token/秒,GPT-4o 30–80 token/秒,但本地批处理无网络延迟。
📌Note: 对于输入规范的发票和表单处理,本地VLM(Llama 3.2 Vision 11B、Qwen2-VL 7B)可以零成本替代GPT-4o Vision。涉及手写、复杂场景分析或模糊内容时,GPT-4o仍占优势。
LLaVA深度解析
LLaVA(Large Language and Vision Assistant)是基础性的开源VLM架构。 由威斯康星大学麦迪逊分校和微软研究院于2023年发布,确立了大多数现代本地VLM所遵循的CLIP编码器+LLM解码器模式。
- 架构: CLIP ViT-L/14视觉编码器 + Llama-2或Mistral文本解码器,通过简单线性投影层连接。
- LLaVA 1.5 vs 1.6: 1.6版本(2024年初发布)通过动态分块增加了高分辨率输入支持,显著提升了OCR和图表读取精度。
- 训练: 在LLaVA-Instruct-150K上进行指令微调——从图像描述和目标检测标注生成的视觉对话数据集。
- 优势: 广泛的通用知识、文档完善、社区庞大、Ollama集成丰富。
- 劣势: OCR弱于MiniCPM-V 2.6,UI分析弱于InternVL 2.5,质量基准测试中整体被Llama 3.2 Vision 11B超越。
- 仍被推荐的原因: 在所有本地VLM中拥有最大社区、最多教程和最多提示示例。遇到问题时更容易找到帮助。
Qwen2-VL——最强多语言OCR
Qwen2-VL是阿里巴巴的视觉语言模型,是2026年文档基准测试中最强的开源选择。 7B版本在更低VRAM下与Llama 3.2 Vision 11B竞争力相当,72B版本领跑大多数开源VLM排行榜。
- 架构: 支持高达4096×4096的动态分辨率——远高于LLaVA 1.6(672×672)或Llama 3.2 Vision(1120×1120)。可读取高DPI扫描件而无需下采样。
- 多语言OCR: 中文、日文、韩文和英文OCR达到同类最佳。训练数据包含大规模多语言文档语料库——在非英文文档处理上相对LLaVA和Llama 3.2 Vision具有显著优势。
- 7B vs 72B: 7B版本(Q4量化)约需6 GB VRAM,在大多数文档任务上与Llama 3.2 Vision 11B竞争力相当。72B版本约需48 GB,领跑大多数开源基准测试。
- Ollama安装:
ollama pull qwen2-vl:7b——可直接从Ollama模型库获取。 - 多图像支持: 每次请求最多接受8张图像——本比较中多图像容量最高。
- 模型页面: Hugging Face上的Qwen2-VL 7B
如何选择视觉模型
以VRAM为首要标准的本地视觉模型选择决策树:
📍 简单一句话
首先按VRAM选择(2→4→6→8→16 GB),再按用例细化(OCR、UI、通用问答或最高质量)。
💬 简单来说
4 GB以下:仅Moondream。6 GB:文档选MiniCPM-V,照片选LLaVA 7B。8–16 GB:几乎所有场景选Llama 3.2 Vision 11B。64 GB以上:最高质量选Llama 3.2 Vision 90B。
- 4 GB以下VRAM: 2 GB时只有Moondream 2(1.9B)。PaliGemma 2(3B)和SmolVLM(2.2B)也是可选方案——PaliGemma 2文档理解略优于Moondream,VRAM需求略高(约3 GB)。SmolVLM以牺牲质量换取极致效率。均不适合密集文本OCR。
- 6 GB VRAM: 文档OCR和发票处理选MiniCPM-V 2.6。注重社区支持的通用照片问答选LLaVA 1.6 7B。多语言OCR或追求最高OCR精度时选Qwen2-VL 7B。
- 8–16 GB VRAM: Llama 3.2 Vision 11B是明确推荐——该VRAM级别综合质量最佳,Ollama支持广泛。
- 16 GB以上VRAM: LLaVA 1.6 13B相比7B版本有更强的复杂场景理解能力。主要用例为UI或代码截图时选InternVL 2.5 8B。
- 64 GB以上统一内存(Apple M-Max/Ultra、多GPU): Llama 3.2 Vision 90B提供最佳本地VLM质量,文档任务接近云端水平。Qwen2-VL 72B是拥有顶级开源基准得分的备选方案。
- 始终验证数字: 无论使用何种模型,从图表或表格提取的任何数值都应与源数据交叉核对。本地VLM会对视觉图表中的精确数字产生幻觉。
常见问题
可以不使用Ollama直接运行LLaVA或Llama 3.2 Vision吗?
可以。两者都可以通过llama.cpp(支持视觉)、transformers库(使用相应模型卡)或LM Studio(提供视觉模型GUI)直接运行。Ollama推荐是因为其简便性——自动处理模型下载、量化选择和API托管。
Llama 3.2 Vision支持直接输入PDF吗?
没有任何本地VLM直接接受PDF输入。需要先将PDF页面转换为图像(使用pdf2image、pypdfium2等),然后将每页作为独立图像请求发送。10页PDF需发送10个独立图像请求并合并汇总结果。
本地视觉模型与GPT-4o Vision相比如何?
GPT-4o Vision在模糊场景、手写、复杂信息图表以及需要结合世界知识的视觉理解任务上仍明显更强。Llama 3.2 Vision 11B在结构化文档(发票、表单、清晰照片)上接近GPT-4o,但在模糊图像推理上有差距。成本、隐私和速度的详细对比见上文。
本地VLM支持什么图像分辨率?
LLaVA 1.6支持最高672×672有效分辨率(动态分块)。MiniCPM-V 2.6支持最高1792×1792——这也是其在高DPI文档扫描上优于LLaVA的原因之一。Llama 3.2 Vision支持最高1120×1120的可变分辨率。最佳OCR效果请以150+ DPI发送文档图像。
可以用自己的图像对本地视觉模型进行微调吗?
可以,但VLM微调比纯文本LLM微调更消耗资源——图像和文本训练对都需要完整前向传播处理。LLaVA微调使用原始训练代码库,文档完善。MiniCPM-V通过Hugging Face官方训练脚本支持微调。大多数用例仅靠提示工程即可,无需微调。
8 GB VRAM的最佳本地视觉模型是什么?
Llama 3.2 Vision 11B(Q4量化可放入约8 GB)适合通用使用。若主要需求是多语言OCR,则选Qwen2-VL 7B。两者均可通过Ollama单条命令获取。
LLaVA与MiniCPM-V——哪个OCR效果更好?
MiniCPM-V 2.6在文档OCR上更精准,尤其是密集表格和高DPI扫描件。LLaVA 1.6文档更完善,社区支持更好。追求纯OCR精度选MiniCPM-V;需要社区资源和排错支持选LLaVA。
本地视觉模型能识别手写吗?
印刷体手写(块状字母):Llama 3.2 Vision 11B和MiniCPM-V 2.6可以中等精度识别。草书手写:所有本地模型均不可靠。GPT-4o Vision在草书方面大幅领先。生产环境中的草书文档手写OCR仍建议使用云端API。
参考来源
- LLaVA项目页面 — LLaVA 1.5和1.6模型卡、架构详情及训练数据集描述。
- Hugging Face上的Llama 3.2 Vision — Meta官方模型发布、模型卡和基准数据。
- Hugging Face上的MiniCPM-V 2.6 — OpenBMB模型卡、OCR基准及微调说明。
- GitHub上的Moondream — 架构描述、推理脚本和模型下载。
- Hugging Face上的InternVL 2.5 — OpenGVLab模型卡及文档和UI任务基准得分。
- Ollama文档 — 视觉模型支持、API参考和模型库。
- Hugging Face上的Qwen2-VL — 阿里巴巴Qwen2-VL模型卡、架构详情和多语言OCR基准。
- Hugging Face上的PaliGemma 2 — Google PaliGemma 2 3B模型卡。
- Hugging Face上的SmolVLM — HuggingFace SmolVLM模型卡及推理说明。