最小VL视觉语言模型OmniVision-968M

魔塔链接:omnivision-968M

https://github.com/NexaAI/nexa-sdk?tab=readme-ov-file#install-option-1-executable-installer

介绍:

OmniVLM 是一个紧凑的、亚十亿(968M)参数的多模态模型,用于处理视觉和文本输入,并针对边缘设备进行了优化。在 LLaVA 架构的基础上进行了改进,它具有以下特点:

  • 9倍令牌减少 :将图像令牌从 729 减少到 81,大幅降低了延迟和计算成本。请注意,视觉编码器和投影部分的计算保持不变,但由于图像令牌跨度缩短了9倍,语言模型骨干的计算量减少了。
  • 可靠的结果 :使用来自可信数据的 DPO 训练来减少幻觉。

模型架构:

OmniVLM的架构由三个关键组件组成:

  • 基础语言模型:Qwen2.5-0.5B-Instruct作为处理文本输入的基础模型
  • 视觉编码器:SigLIP-400M以384分辨率和14×14的补丁大小工作,生成图像嵌入
  • 投影层:多层感知机(MLP)将视觉编码器的嵌入与语言模型的令牌空间对齐。与原始Llava架构相比,我们设计了一个减少9倍图像令牌的投影器。

视觉编码器首先将输入图像转换为嵌入,然后通过投影层处理以匹配Qwen2.5-0.5B-Instruct的令牌空间,从而实现端到端的视觉-语言理解。

模型训练:

我们通过三阶段训练管道开发了OmniVLM:

预训练:

初始阶段侧重于使用图像-标题对建立基本的视觉-语言对齐关系,在此期间仅解冻投影层参数来学习这些基本关系。

监督微调(SFT):

我们使用基于图像的问题回答数据集增强模型的上下文理解能力。这一阶段涉及在包含图像的结构化聊天历史记录上进行训练,使模型能够生成更加符合上下文的回答。

直接偏好优化(DPO):

最后阶段通过首先使用基础模型生成对图像的响应来实现DPO。然后,一个教师模型在保持与原始响应高度语义相似的同时,产生最小编辑的修正,特别关注准确性关键元素。这些原始输出和修正后的输出形成选择-拒绝配对。微调针对的是对模型输出进行必要的改进,而不改变模型的核心响应特性。

模型安装:

步骤1:安装所需的依赖项

复制代码
pip install torch torchvision torchaudio einops timm pillow
pip install git+https://github.com/huggingface/transformers
pip install git+https://github.com/huggingface/accelerate
pip install git+https://github.com/huggingface/diffusers
pip install huggingface_hubpip install sentencepiece bitsandbytes protobuf record

步骤2:安装Nexa-SDK(本地设备推理框架)

Nexa-SDK是一个开源的、支持文本生成、图像生成、视觉-语言模型(VLM)、音频-语言模型、语音转文字(ASR)和文字转语音(TTS)功能的本地设备推理框架。可以通过Python包或可执行安装程序进行安装。

复制代码
# 安装支持GPU的Nexa SDK
CMAKE_ARGS="-DGGML_CUDA=ON -DSD_CUBLAS=ON" pip install nexaai --prefer-binary --index-url https://nexaai.github.io/nexa-sdk/whl/cu124  --extra-index-url https://pypi.org/simple  --no-cache-dir

步骤3:运行OmniVision-968M模型

复制代码
nexa run omnivision

步骤4:使用OmniVision分析图像

假设有一张位于/home/user/images/horses.png的图像,我们可以运行OmniVision-968M来生成对内容的描述。将图像放置在指定路径并运行以下命令:

复制代码
>> /home/user/images/horses.png
>> Describe the image

模型回复:"图像展示了三匹马站在草地上,靠近水体。它们似乎正在从位于背景中的池塘中饮水。马匹彼此靠近,一匹马位于图像的左侧,另一匹在中心,第三匹马在右侧。场景传达出一种平和宁静的氛围,马匹享受着靠近水源的时光。"

预期使用场景:

OmniVLM 适用于 视觉问答 (回答关于图像的问题)和 图像字幕生成(描述照片中的场景),使其非常适合于设备端应用。

示例演示: 在 M4 Pro Macbook 上为一张 1046×1568 的图片生成字幕仅需 < 2 秒处理时间,并且只需要 988 MB RAM 和 948 MB 存储空间。

基准测试:

下面我们将展示一个图表,以说明 OmniVLM 与 nanollava 的性能对比。在所有任务中,OmniVLM 的表现都超过了之前世界上最小的视觉-语言模型。

我们在基准数据集上进行了一系列实验,包括 MM-VET、ChartQA、MMMU、ScienceQA、POPE 来评估 OmniVLM 的性能。

基准测试 Nexa AI OmniVLM v2 Nexa AI OmniVLM v1 nanoLLAVA
ScienceQA (评估) 71.0 62.2 59.0
ScienceQA (测试) 71.0 64.5 59.0
POPE 93.3 89.4 84.1
MM-VET 30.9 27.5 23.9
ChartQA (测试) 61.9 59.2 NA
MMMU (测试) 42.1 41.8 28.6
MMMU (评估) 40.0 39.9 30.4
相关推荐
TechubNews2 分钟前
香港数字资产交易市场蓬勃发展,监管与创新并驾齐驱
人工智能·区块链
DogDaoDao1 小时前
用PyTorch实现多类图像分类:从原理到实际操作
图像处理·人工智能·pytorch·python·深度学习·分类·图像分类
小和尚同志1 小时前
450 star 的神级提示词管理工具 AI-Gist,让提示词不再吃灰
人工智能·aigc
金井PRATHAMA2 小时前
大脑的藏宝图——神经科学如何为自然语言处理(NLP)的深度语义理解绘制新航线
人工智能·自然语言处理
大学生毕业题目2 小时前
毕业项目推荐:28-基于yolov8/yolov5/yolo11的电塔危险物品检测识别系统(Python+卷积神经网络)
人工智能·python·yolo·cnn·pyqt·电塔·危险物品
星期天要睡觉3 小时前
深度学习——卷积神经网络CNN(原理:基本结构流程、卷积层、池化层、全连接层等)
人工智能·深度学习·cnn
哈基鑫3 小时前
支持向量机(SVM)学习笔记
人工智能·机器学习·支持向量机
fsnine3 小时前
深度学习——优化函数
人工智能·深度学习·cnn
2501_924877214 小时前
强逆光干扰漏检率↓78%!陌讯多模态融合算法在光伏巡检的实战优化
大数据·人工智能·算法·计算机视觉·目标跟踪
算家计算5 小时前
多模态融合新纪元:Ovis2.5 本地部署教程,实现文本、图像与代码的深度协同推理
人工智能·开源