Ollama已经正式支持Llama 3.2视觉模型了,这对本地运行多模态大模型来说是个好消息。下面直接进入实测环节,看看它的表现究竟如何——同时还会分享一个将视觉模型与RAG系统结合起来的实战方案。
先看更新本身:
现在,你只需要把图片拖进命令行,模型就能读取并识别人物、场景、文字内容。Ollama对Llama 3.2 Vision的支持目前覆盖了两个版本:参数规模11B和90B。90B的模型文件大小约55GB,日常使用11B就已经够用,当然也有量化版本可以选择。

硬件方面,11B模型最低要求8GB显存,90B则需要64GB显存。安装前需要更新Ollama——我们这里用Docker安装的Ollama来演示,旧版本拉取这个视觉模型会失败。所以要先把容器删掉,再拉取最新版。

更新完成后,直接执行拉取操作。

如果你用的是Linux版本,可能因为网络问题下载不成功——这种情况下,可以检索一下Ollama配合Huggingface模型的快速下载方案,网上的资料已经很多了。
跑个测试:用Python调用Ollama库,传入本地图像路径,然后问“这张图片是什么”。


模型快速返回结果,描述中间出现了“日落、袋鼠和一群鸟,太阳位于画面中央,但被云遮挡”——完全符合图片实际内容。

如果换一张城市街景图,问“这是什么城市?”,模型会给出推测:“我猜是日本的城市,可能是东京或大阪。”当然,这种开放式问答存在不确定性,但整体识别和推理能力已经足够惊艳。
再看看其他典型场景:
手写内容识别

光学字符识别 (OCR)

图表和表格

图片问答

整体来说,11B模型已经具备了相当实用的多模态理解能力。
接下来进入正题——如何把它融入一套完整的视觉RAG系统。
一个视觉RAG系统 + Llama 3.2 Vision
LocalGPT-Vision是一个基于视觉的检索增强生成系统,核心思路是:用视觉语言模型实现端到端RAG,让用户可以与PDF文档在视觉层面进行对话。

这项工作依赖Colqwen或ColPali这类视觉检索模型,先对PDF页面进行视觉信息抽取,然后把检索到的高相关页面传递给视觉语言模型(即Llama 3.2 Vision模块),最终生成响应。

安装该系统的步骤非常常规:先克隆代码仓库,接着创建一个新的Python虚拟环境(推荐用conda),然后运行pip install -r requirements.txt安装所有依赖包。

启动主应用执行python app.py即可,Flask服务器会在本地URL上提供服务。在浏览器中打开后,就看到LocalGPT-Vision的主界面。进入模型列表,可以选择检索模型——我们这次选定Colqwen,是目前表现最稳定的一个。

对于生成模型,有好几个选项。我们选择Ollama Llama Vision,

然后保存配置。
接下来是演示环节。我们将一篇关于Light RAG的PDF论文作为RAG对象——Light RAG是一种结合知识库和密集向量检索的轻量级检索增强方法,特别适用于处理实体间具有复杂关系的场景。


开始运行系统:点击上传文档按钮,选择相应的PDF文件,然后点击“开始索引”。

后台会使用Colqwen模型为PDF中的每一页生成多维向量表示——把页面转换成图像并计算嵌入,这个过程依赖poppler库。
(注意:安装索引步骤前,务必确保poppler库已正确安装——很多人在这一环节遇到问题,主要是poppler版本兼容性导致的。)
索引完成后,点击“确定”,然后开始与刚才创建的文档知识库进行交互。
首先,用最基础的提示测一下:“这篇论文的标题是什么?”

系统给出了答案:论文标题是《Light RAG: Simple and Fast Retrieval Augmented Generation》。和原文标题完全一致。
接下来,测试它对图像细节的理解能力。问:“你能详细解释图1吗?”

图1是论文中的一幅框架插图,展示了Light RAG的索引和检索流程。系统回复说:“该图像展示了Light RAG框架的全面概述,旨在提升信息检索系统的性能和效率。”之后它讨论了数据索引器和数据检索器两大组件。这些信息来源于图像及其所在页面的上下文。
坦白讲,回答还能再深入一些——用90B模型效果应该会更好。
补充系统后续回答的截图:

另外,这套视觉开源大模型的能力不仅限于图像,用在视频帧分析场景同样可行——比如对视频关键帧做场景理解、OCR或内容摘要。
