date
Mar 4, 2026
slug
2026-03-04-the-test-and-deployment-workflow-on-Qwen3VL
status
Published
tags
LLM
summary
本文对阿里于2025年9月份发布的Qwen3-VL视觉语言模型进行了简单介绍,并对其预训练模型进行了本地推理测试以及在生产环境中使用vLLM进行部署的流程进行了总结。
type
Post
category
AI
AI summary
本文对阿里于2025年9月份发布的Qwen3-VL视觉语言模型进行了简单介绍,并对其预训练模型进行了本地推理测试以及在生产环境中使用vLLM进行部署的流程进行了总结。
QWen3-VL模型简介
阿里在 2025 年 9 月推出了Qwen3-VL 系列视觉语言模型。相较于其前代产品(如 Qwen2-VL),Qwen3-VL 的发布标志着多模态大模型从简单的视觉感知正式跨越到了深层的逻辑推理与自主 Agent 交互的新阶段。Qwen3-VL 延续了阿里的开源精神,推出了涵盖从端侧到云端的多种规模模型。

在模型的总体设计架构上,Qwen3-VL 延续了阿里一贯的Dense(稠密)+ MoE(混合专家)双线并行的策略,参数量从2B到235B不等。
- Dense:该模型中所有的参数在处理每一个 Token 时都会被全部激活并参与计算。
- 其代表版本是Qwen3-VL-2B / 8B / 32B。
- 优点是在同等总参数量下,知识密度最高,部署相对简单。但缺点则是当参数量变大时,计算的开销线性增长,推理会变得非常缓慢。
- 所以适用于参数量不是很大的应用场景。
- MoE:该模型结构在包含很多专家(Experts)子模型,在处理特定输入时,会由门控网络(Gating)动态挑选其中的一小部分参与计算,大部分参数是不需要激活的。
- 其代表版本是:Qwen3-VL-30B-A3B (表示总参数30B,激活参数3B);Qwen3-VL-235B-A22B (表示总参数235B,激活参数22B)。
- 优点是拥有超大规模模型的知识库,但推理速度和计算开销却像小模型一样快。缺点则是对显存的要求仍然很高,虽然计算时只激活一小部分,但推理时必须将全部参数加载进显存。
此外,Qwen3-VL首次引入了 Thinking 版本:当面对复杂的 STEM、数学题或深层因果分析,模型不再是快思考直接给出直觉答案,而是通过强化学习(RL)生成的推理链,逐步拆解图像细节。因此 Qwen3-VL模型支持两种交互范式:Instruct和Thinking。
- Instruct (指令微调版):快思考,接收指令后直接生成并给出最终结果。
- 其特点是低延迟、生成速度快、输出简洁。
- 适用场景为日常对话、简单的图片描述、基础 OCR、实时 UI 操控等对实时性要求高的任务。
- Thinking (推理增强版):慢思考,在给出最终答案前,模型会先生成一段不可见的(或可展开的)思维链 (Chain-of-Thought, CoT)。
- 其特点是准确率更高(尤其在 STEM、数学、逻辑推理的复杂任务中),但生成时间长,会消耗更多 Token。
- 适用场景是复杂的数学几何题、逻辑推理、长视频的因果分析、需要严谨证明的场景。
QWen3-VL的推理测试
以下基于HuggingFace的Transformers下载
Qwen3-VL-4B-Instruct-FP8 这个版本的预训练模型文件,并在本机上做一些简单的推理测试。以下给出一个对手写文字图片进行OCR识别的推理测试。首先import必要的包并使用Transformer从Huggingface上下载预训练模型文件列表到本地,并加载进来:
以上代码会自动下载预训练模型文件到本地
HF-HOME 环境变量所指向的位置,模型权重文件比较大,下载需要比较长的时间。下载后的模型文件如下所示:
Qwen3VLForConditionalGeneration和AutoProcessor在每次启动加载模型文件的时候,都会对比本地下载的模型文件与HuggingFace Hub仓库中文件的文件的md5是否匹配,这个过程需要的时间会比较长,所以第一次下载模型文件完成后,可以通过以下代码设置HF Offline模式,避免每次加载的校验过程:
写一个接口函数用于对传入的图片进行OCR识别:
向上面的接口函数传入一张图片并打印出来OCR识别的结果:
这里传递了一张手写文字的图片:

最终OCR识别的结果如下:可以看到,在图片中字迹很潦草的情况下,模型的识别正确率仍然非常高。
QWen3-VL的vLLM生产环境部署
vLLM 是目前支持 Qwen 系列最好的引擎。它可以把 Transformers 模型包装成一个高性能的 OpenAI 兼容接口,后续直接使用HTTP协议来对模型进行访问。
首先安装vllm和qwen_vl_utils支持包。因为vllm的运行对于pytorch以及cuda的版本有要求,所以最好在一个独立的环境中安装和运行vllm:
注意,vllm在windows环境下的安装总是会报配置文件的错误,但是在Ubuntu下面没有这个问题,一般生产环境部署用的都是Linux,所以我也就没有追究这个问题了。
以上vllm包安装完成后,使用以下命令就可以一键启动QWen3-VL模型在vLLM的部署和运行了:
其中:
- -model参数用于指定模型文件所在的目录。
- -served-model-name:指定后续通过HTTP API访问模型的模型名称
- -trust-remote-code:必须加上,因为 Qwen3-VL 有自定义的视觉处理逻辑。
- -gpu-memory-utilization 0.75:告诉 vLLM 占用 75% 的显存,vLLM 会预先占满显存来管理PagedAttention。如果显卡显存少的话需要调低这个值。
- -max-model-len: 设置最大上下文长度。如果显存小,可以调小这个值。
- -limit-mm-per-prompt: 使用json格式限制一次对话最多传几张图。
如果有以下打印信息,就表示vLLM环境中部署的Qwen3-vl模型已经运行起来了:
使用下面的代码测试本机所部署的模型:

针对上面url参数所指定的图片,从模型得到的返回信息如下,模型部署测试验证OK: