OpenVINO2025+QWen2.5-VL多模态大模型应用演示

模型下载与转换

QWen-VL是主要是由QWen LLM、Vision Encoder、MLP-based Vision-Language Merger 三个组件组合完成的架构,完整的QWen-VL的架构图示如下:

图片

当前支持Qwen/Qwen2.5-VL-3B-Instruct与Qwen/Qwen2.5-VL-7B-Instruct两个模型可供下载

huggingface-cli download "Qwen/Qwen2.5-VL-3B-Instruct" --local-dir qwen2.5_3b

图片

下载完成以后需要使用optimum-cli工具把模型转换为OpenVINO支持格式,命令行格式如下:

optimum-cli export openvino --model <model_id_or_path> --task <task> <output_dir>

需要安装一下NNCF这个工具,

pip install nncf -i https://pypi.tuna.tsinghua.edu.cn/simple

帮助把大模型压缩量化支持INT8、INT4模式文件。转换的命令行如下:

optimum-cli export openvino --model ./qwen2.5_3b qwen2.5_3b/INT4 --task image-text-to-text --weight-format int4

官方文档给出转换命令行 没有--task参数会导致转换时候报错,错误提示就是必须指定--task参数,QWen2.5-VL模型支持的task参数如下:

--task image-text-to-text

表示多模态输入支持图像与文本。

图片

转换之后生成INT4格式的qwen2.5-openvino格式文件

图片

推理SDK与演示

首先需要安装QWen API工具支持包

pip install qwen-vl-utils[decord]

安装好以后,然后通过optimum openvino的插件OVModelForVisualCausalLM 加载模型,基于QWen API函数构建输入预处理与输出后处理,最终实现的代码如下:

import cv2 as cvfrom transformers import AutoProcessor, AutoTokenizerfrom qwen_vl_utils import process_vision_infofrom transformers import TextStreamerfrom optimum.intel.openvino import OVModelForVisualCausalLMmin_pixels = 256 * 28 * 28max_pixels = 1280 * 28 * 28model_dir = "D:/LLMs/qwen2.5_3b/INT4"processor = AutoProcessor.from_pretrained(model_dir, min_pixels=min_pixels, max_pixels=max_pixels)model = OVModelForVisualCausalLM.from_pretrained(model_dir, device="CPU")if processor.chat_template is None:    tok = AutoTokenizer.from_pretrained("D:/LLMs/qwen2.5_3b")    processor.chat_template = tok.chat_templateimage = cv.imread("D:/pedestrian.png")question = "how many persons in the image?"messages = [    {        "role": "user",        "content": [            {                "type": "image",                "image": "D:/pedestrian.png",            },            {"type": "text", "text": question},        ],    }]# Preparation for inferencetext = processor.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)image_inputs, video_inputs = process_vision_info(messages)inputs = processor(    text=[text],    images=image_inputs,    videos=video_inputs,    padding=True,    return_tensors="pt",)

QWen2.5-VL 零样本的图像分类与内容检测演示

图片

QWen2.5-VL OCR识别演示

图片

OpenVINO+QWen2.5-VL大模型部署真香。

---------------------------------------

*OpenVINO and the OpenVINO logo are trademarks of Intel Corporation or its subsidiaries.

-----------------------------

 OpenVINO 中文社区 

微信号 : openvinodev

“开放、开源、共创”

致力于通过定期举办线上与线下的沙龙、动手实践及开发者交流大会等活动,促进人工智能开发者之间的交流学习。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值