Ivy-VL重磅发布:3B参数制霸端侧视觉AI,超越Qwen/InternVL等主流模型
6 min read
AI Safeguard联合CMU与斯坦福大学共同开发的轻量级多模态模型Ivy-VL正式发布,该模型以其精简的参数量和出色的性能引起业界关注。
背景介绍
随着人工智能的快速发展,多模态大模型(MLLMs)在计算机视觉、自然语言处理和多模态任务中扮演着重要角色。然而,受限于硬件资源和能效需求,将这些模型部署到移动设备和边缘设备上一直是一个巨大挑战。在这一背景下,Ivy-VL凭借卓越的性能,成为面向移动端多模态模型的新标杆。
核心特点
Ivy-VL具备以下显著优势:
- 极致轻量化:仅使用3B参数,远低于7B到几十B的主流多模态模型,可高效运行于AI眼镜、智能手机等资源受限设备
- 卓越性能:在OpenCompass榜单上实现4B以下开源模型第一,超越Qwen2-VL-2B、InternVL2-2B、InternVL2.5-2B、SmolVLM-Instruct等顶尖端侧模型
- 低延迟响应:3B的模型大小确保实时推理能力,在生成速度、能效比和准确率之间达到完美平衡
- 强大跨模态理解:在视觉问答、图像描述、复杂推理等任务中表现优异
技术架构
Ivy-VL采用先进的技术方案:
- 基础架构:基于LLaVA-One-Vision
- 语言模型:使用Qwen/Qwen2.5-3B-Instruct
- 视觉编码器:采用google/siglip-so400m-patch14-384
- 训练优化:针对性能和效率进行特殊优化
应用场景
该模型特别适用于以下场景:
- 智能穿戴设备:支持AI眼镜实现实时视觉问答,辅助增强现实(AR)体验
- 手机端智能助手:提供更智能的多模态交互能力,实现自然AI服务
- 物联网设备:助力智能家居和IoT场景实现高效的多模态数据处理
- 移动端教育与娱乐:增强教育软件的图像理解与交互能力,推动移动学习与沉浸式娱乐体验
性能评测
在多个权威评测中,Ivy-VL展现出优异表现:
- 在OpenCompass榜单上获得4B以下开源模型第一
- 超越多个顶尖端侧SOTA模型:
- Qwen2-VL-2B
- InternVL2-2B
- InternVL2.5-2B
- SmolVLM-Instruct
- Aquila-VL-2B
- PaliGemma 3B
开源与获取
模型已在Hugging Face平台开放获取:
- 完整开源代码和权重
- Apache 2.0许可证
- 支持学术研究和商业应用
- 提供详细的部署文档
未来规划
开发团队计划在以下方向持续优化:
- 推出不同规模的模型版本
- 加强视频模态处理能力
- 扩展更多应用场景支持
- 优化模型部署效率
使用方法
1. 安装
通过pip安装模型:
pip install git+https://github.com/LLaVA-VL/LLaVA-NeXT.git
2. Python代码示例
基础使用示例:
from llava.model.builder import load_pretrained_model
from llava.mm_utils import process_images, tokenizer_image_token
from llava.constants import IMAGE_TOKEN_INDEX, DEFAULT_IMAGE_TOKEN
from llava.conversation import conv_templates
from PIL import Image
import requests
import copy
import torch
import warnings
warnings.filterwarnings("ignore")
# 加载预训练模型
pretrained = "AI-Safeguard/Ivy-VL-llava"
model_name = "llava_qwen"
device = "cuda"
device_map = "auto"
# 初始化模型和tokenizer
tokenizer, model, image_processor, max_length = load_pretrained_model(
pretrained,
None,
model_name,
device_map=device_map
)
model.eval()
# 加载图片(支持URL或本地图片)
# 方式1:从URL加载
url = "https://example.com/image.jpg"
image = Image.open(requests.get(url, stream=True).raw)
# 方式2:从本地加载
# image = Image.open("./local_image.jpg")
# 处理图片
image_tensor = process_images([image], image_processor, model.config)
image_tensor = [_image.to(dtype=torch.float16, device=device) for _image in image_tensor]
# 设置对话模板和问题
conv_template = "qwen_1_5"
question = DEFAULT_IMAGE_TOKEN + "\n请描述这张图片的内容"
conv = copy.deepcopy(conv_templates[conv_template])
conv.append_message(conv.roles[0], question)
conv.append_message(conv.roles[1], None)
prompt_question = conv.get_prompt()
# 生成回答
input_ids = tokenizer_image_token(
prompt_question,
tokenizer,
IMAGE_TOKEN_INDEX,
return_tensors="pt"
).unsqueeze(0).to(device)
image_sizes = [image.size]
response = model.generate(
input_ids,
images=image_tensor,
image_sizes=image_sizes,
do_sample=False,
temperature=0,
max_new_tokens=4096,
)
# 解码输出
output_text = tokenizer.batch_decode(response, skip_special_tokens=True)
print(output_text)
3. 重要参数说明
# 模型配置参数
model_args = {
"device_map": "auto", # 设备映射方式
"dtype": torch.float16, # 模型精度
"max_length": 4096, # 最大token长度
}
# 生成参数
generate_args = {
"do_sample": False, # 是否使用采样
"temperature": 0, # 生成温度
"max_new_tokens": 4096, # 最大新token数
}
4. 注意事项
- 需要CUDA环境支持
- 建议使用16GB以上显存的GPU
- 支持的图片格式:jpg、png、webp
- 建议图片分辨率:224x224 到 1024x1024
- 支持批量处理多张图片
- 确保网络环境稳定以下载模型权重
获取方式
- Hugging Face平台开放下载:@AI-Safeguard/Ivy-VL-llava
- ModelScope平台地址:AI-Safeguard/Ivy-VL-llava
开发者可以通过pip安装并快速开始使用,详细使用说明请参考官方文档。如有技术问题,可联系开发团队获取支持。
未来展望
Ivy-VL的诞生标志着轻量级多模态模型在端侧设备上的重要突破。AI Safeguard计划在以下方向持续优化:
- 进一步提升视频模态任务表现
- 探索更多行业应用场景
- 优化模型部署效率
- 推动移动设备AI应用普及