
点击蓝字 关注我们

Ollama 于 5 月份推出的全新多模态引擎。新的多模态引擎,可突破旧架构的设计依赖限制,为本地部署的多模态 AI 模型提供更准确、可靠、灵活的运行环境,并严格确保推理过程符合模型的设计初衷(忠于原始模型,对模型原始意图的忠实执行)。本文介绍基于Ollama 多模态模型引擎的 Qwen 2.5 VL 模型部署及其应用,主要内容如下:
-
Ollama 全新多模态模型引擎介绍 -
Qwen 2.5 VL 模型介绍 -
Qwen 2.5 VL 模型本地部署及其应用实测

Ollama 多模态模型引擎
Ollama 推出了全新的多模态引擎,以解决原有架构的局限。基于多模态引擎,Ollama 可以支持运行能同时处理图像、文本的模型。新架构不仅解决当前多模态挑战,也为集成更复杂的能力(语音、生成等)和优化性能(更长上下文、更高并发)打下基础。
背景
问题
-
原有依赖瓶颈: Ollama 过去依赖 llama.cpp 支持模型,自身专注于易用性和可移植性。 -
多模态的挑战: 随着各模型供应商(如 Google, Meta, Alibaba)不断发布新的多模态模型(能同时处理图像、文本等),在 llama.cpp 基础上按 Ollama 期望的高标准支持这些模型变得极其困难且容易出错。
设计目标
Ollama 的多模态引擎的设计理念:忠于原始模型,严格遵循模型被训练的方式和原始设计规范。舍弃了旧架构的“通用引擎”的简洁性,但换来了更高的准确性、可靠性,对模型研发者意图的尊重,并为支持未来更复杂、更多样化的模型奠定了坚实基础。
-
提高本地推理的可靠性和准确性。 -
为支持语音、图像/视频生成、更长上下文、更好的工具调用等未来模态和能力奠定基础。
模型模块化
-
问题:旧架构中,多模态模型的文本解码器与视觉编码器被拆分为独立模型并分别运行。将视觉模型的图像嵌入传递给文本模型时,需要在编排层针对特定模型设计特定的处理逻辑,这可能会破坏某些模型的实现,违反了原始模型的设计意图。 -
解决方案: 让每个模型完全自包含。允许每个模型完全独立,模型可以自带其专属的、与训练完全一致的多模态处理逻辑。模型内部包含其视觉编码器、文本解码器以及关键的投影层(负责将视觉特征映射到文本模型理解的表示)。确保推理过程与该模型的训练方式保持一致。 -
好处: -
隔离性/可靠性: 一个模型的修改或问题不会影响其他模型(“限制爆炸半径”)。 -
简化开发: 模型创建者只需专注于自己模型的实现,无需理解全局共享的复杂投影逻辑或担心破坏其他模型,极大简化集成。 -
遵循设计: 确保推理过程忠实于模型的设计和训练方式。
准确性
-
问题:处理大图像会生成海量 Token,可能超出处理批次大小。如何正确分割图像进行分批处理(尤其在边界处)并保持位置信息,对输出质量至关重要。错误的处理方式会导致模型输出质量下降。 -
解决方案:Ollama 在处理图像时添加元数据来指导处理流程(如,是否启用因果注意力、如何根据模型要求和硬件能力智能地分割图像嵌入批次等)。 -
好处:通过精确控制处理细节,遵循模型的设计与训练方式,确保输出结果的准确性和可靠性。
内存管理优化
-
图像缓存: 缓存处理过的图像,可加速后续涉及同一图像的查询。缓存策略,可避免不必要的内存清理导致性能下降。 -
内存预估与 KV 缓存优化: -
硬件协作:精确检测硬件信息,优化内存预估和使用。 -
模型级细粒度控制:在单个模型级别配置关键参数(如因果注意力),而非全局统一配置,允许更精细的优化。 -
针对特定模型的优化
支持的模型
Ollama 通过全新多模态引擎支持的模型有:
-
Meta Llama 4 -
Google Gemma 3 -
Qwen 2.5 VL -
Mistral Small 3.1
Qwen 2.5 VL 模型介绍
Qwen2.5-VL,作为 Qwen 模型家族的旗舰视觉语言模型,对比此前发布的 Qwen2-VL 实现了巨大的飞跃。Qwen2.5-VL 的主要特点如下(https://qwenlm.github.io/zh/blog/qwen2.5-vl/):
-
感知更丰富的世界:Qwen2.5-VL 不仅擅长识别常见物体,如花、鸟、鱼和昆虫,还能够分析图像中的文本、图表、图标、图形和布局。 -
Agent:Qwen2.5-VL 直接作为一个视觉 Agent,可以推理并动态地使用工具,初步具备了使用电脑和使用手机的能力。 -
理解长视频和捕捉事件:Qwen2.5-VL 能够理解超过 1 小时的视频,并且这次它具备了通过精准定位相关视频片段来捕捉事件的新能力。 -
视觉定位:Qwen2.5-VL 可以通过生成 bounding boxes 或者 points 来准确定位图像中的物体,并能够为坐标和属性提供稳定的 JSON 输出。 -
结构化输出:对于发票、表单、表格等数据,Qwen2.5-VL 支持其内容的结构化输出,惠及金融、商业等领域的应用。

Qwen2.5-VL 的模型性能(在一系列涵盖多个领域和任务的基准测试中表现出色,包括大学水平的问题、数学、文档理解、视觉问答、视频理解和视觉 Agent):

Qwen2.5-VL 已上架 Ollama:https://ollama.com/library/qwen2.5vl,可基于 Ollama 的全新多模态引擎进行部署运行。

Qwen2.5-VL 部署及其应用实测
安装部署
ollama 的安装,可阅读前文:大模型本地部署开源框架 Ollama 介绍
运行命令:ollama pull qwen2.5vl:7b,下载 qwen2.5vl (7b 规格)到本地。
在终端运行命令:ollama run qwen2.5vl:7b,即可开启与模型的交互对话。
测试示例
1、介绍一下这张图片

>>> C:Usersyuan_Downloadsollama-car.png 介绍一下这张图片
Added image 'C:Usersyuan_Downloadsollama-car.png'
这是一张黑白插画,描绘了一只卡通风格的动物(看起来像是一只猫或狗)驾驶一辆复古风格的汽车。汽车的设计类似于经典的跑车
,车身上有“Ollama”这个标志。动物戴着墨镜,显得非常酷炫,车后方有几道白色的尾气线条,表示汽车正在快速行驶。整体风格
简洁,线条流畅,给人一种轻松愉快的感觉。
2、这张图片里,有什么动物?

>>> C:Usersyuan_Downloadsmulti-images.png 这张图片里,有什么动物?
Added image 'C:Usersyuan_Downloadsmulti-images.png'
这张图片里有几幅插画,每幅插画中都有不同的动物:
1. 第一幅插画中有一只戴着墨镜的羊驼,它正在驾驶一辆红色的汽车。
2. 第二幅插画中有一只戴着拳击手套的羊驼,它正在拳击一个蓝色的海豚。
3. 第三幅插画中有一只戴着墨镜的羊驼,它站在草地上。
4. 第四幅插画中有一只戴着墨镜的羊驼,它站在斑马线上,旁边有四个其他羊驼,它们看起来像是在排队过马路。
所以,这张图片里有羊驼。
模型的回答和图片内容有点出入(如,第三幅插画,羊驼是没有戴墨镜的;第四幅插图,一共是四只羊驼)
3、这是什么食物?介绍一下

>>> C:Usersyuan_Downloadsfood.jpg 这是什么食物?介绍一下
Added image 'C:Usersyuan_Downloadsfood.jpg'
这是一道中国菜,具体来说是烧麦。烧麦是一种传统的中式点心,通常在早餐或午餐时食用。以下是关于烧麦的一些详细介绍:
1. **外观**:烧麦的外皮是用面粉和水制成的,经过发酵后,再用蒸笼蒸熟。烧麦的形状通常是半圆形的,顶部有褶皱,底部平整
。
2. **馅料**:烧麦的馅料非常丰富,可以是猪肉、牛肉、鸡肉、虾仁、蔬菜等。馅料通常会加入葱、姜、蒜等调料,以增加风味。
烧麦的馅料可以根据个人口味进行调整。
3. **烹饪方法**:烧麦通常是蒸熟的,蒸的时间大约为10-15分钟。蒸熟后,烧麦会变得非常柔软,外皮酥脆,内馅鲜美。
4. **蘸酱**:烧麦通常会搭配一些蘸酱一起食用,常见的蘸酱有酱油、醋、蒜泥、辣椒油等。蘸酱可以根据个人口味进行调整。
5. **食用方法**:吃烧麦时,可以用筷子夹起烧麦,蘸上一些蘸酱,然后一口咬下,感受外皮的酥脆和内馅的鲜美。
烧麦不仅美味,而且营养丰富,是许多中国家庭早餐或午餐的首选。如果你喜欢尝试不同的中式点心,烧麦是一个不错的选择。
将广东肠粉识别为烧卖,准确度还是有待提高,哈哈。
4、 文字识别1:第20章的标题是什么,介绍了什么内容,由哪几个小节构成?

>>> C:Usersyuan_Downloadsbook_page.jpg 第20章的标题是什么,介绍了什么内容,由哪几个小节构成?
Added image 'C:Usersyuan_Downloadsbook_page.jpg'
第20章的标题是“资本成本:进阶主题”。
本章介绍了资本成本的评估方法,特别是对于非上市公司的权益资本成本的估计。具体内容包括:
1. **知识引导**:介绍了资本成本的重要性以及评估公司价值的关键因素之一。
2. **考点聚焦**:指出本章内容逻辑清晰,整体难度不高,但难点突出,公式较多。
3. **本章框架图**:详细列出了本章的内容结构,包括:
- **资本成本的影响因素**:分为自上而下的外部因素和自下而上的公司特有因素。
- **估计债务资本成本**:包括上市交易的债务、非上市交易的债务、银行借款、租赁等。
- **估计权益资本成本**:包括基于风险的模型、历史估计法、预期估计法等。
- **权益风险溢价(ERP)**:涉及历史估计法和预期估计法。
- **估计非上市公司的权益资本成本**:涉及基于风险的模型和历史估计法。
通过这些内容,读者可以全面了解资本成本的评估方法,特别是对于非上市公司的权益资本成本的估计。
准确地识别了图片上的文字,正确回答了第20章的标题,归纳总结了文字内容。
5、文字识别2:将这一页目录,翻译成中文

>>> C:Usersyuan_Downloadsbook_page2.jpg 将这一页目录,翻译成中文
Added image 'C:Usersyuan_Downloadsbook_page2.jpg'
第3章:设计良好的数据架构
3.1 数据架构是什么?
3.2 什么是企业架构?
3.3 数据架构定义
3.4 好的“数据架构”原则
3.5 原则1:明智地选择通用组件
3.6 原则2:计划失败
3.7 原则3:为可扩展性设计
3.8 原则4:架构是领导力
3.9 原则5:始终是架构师
3.10 原则6:始终是架构师
3.11 原则7:设计松耦合系统
3.12 原则8:优先考虑可逆的安全性
3.13 原则9:拥抱FinOps
3.14 主要架构概念
3.15 域和功能
3.16 分布式系统、可扩展性和设计失败
3.17 紧耦合与松耦合:层次、单体和微服务
3.18 绿地项目与现有项目
3.19 数据仓库
3.20 数据湖
3.21 Lambda架构
3.22 数据平台
3.23 数据湖与数据平台
3.24 数据湖与数据平台
3.25 数据湖与数据平台
3.26 数据湖与数据平台
翻译了部分英文,部分内容不能准确识别,有待提高。
python sdk 运行
这股票近期走势如何?

from ollama import Client
path = './images/k_line.png'
client = Client()
response = client.chat(
model='qwen2.5vl:7b',
messages=[
{
'role': 'user',
'content': '这股票近期走势如何?',
'images': [path],
}
],
)
print(response.message.content)
E:anaconda3envsllmpython.exe E:python_projectollamachatimage_parse.py
从图中可以看出,该股票近期的走势呈现出明显的上升趋势。具体来说:
1. **价格走势**:价格从35.84上涨到42.66,表明该股票在近期有显著的上涨。
2. **均线系统**:图中显示了多条均线,其中黄色、绿色和紫色的均线均呈上升趋势,表明短期和中期的均线都在支撑股价上涨。
3. **成交量**:虽然图中没有直接显示成交量,但结合价格走势和均线系统,可以推测成交量可能也在增加,因为价格在上涨,通常伴随着成交量的放大。
4. **技术指标**:图中没有显示技术指标,但根据价格走势和均线系统,可以推测该股票可能处于一个上升通道中,未来可能会继续上涨。
总体来看,该股票近期的走势是积极的,投资者可以考虑逢低买入,但需要注意市场风险,做好风险管理。
之前笔者测试了 llama3.2-vision:多模态大模型 llama3.2-vision 介绍及其应用。与 llama3.2-vision 相比,qwen2.5vl 的图片物体识别与描述更准确,图片中文识别能力更强。
欢迎关注我,后续介绍更多 Ollama、模型部署的相关内容