Qwen2.5-VL是阿里通义千问于2025年1月28日开源的视觉语言模型,属于Qwen模型家族的旗舰产品。
该模型推出了3B、7B和72B三个尺寸版本,其中72B版本在13项权威评测中视觉理解能力全面超越GPT-4o与Claude3.5 。Qwen2.5-VL具备多模态理解能力,能够精准解析图像中的物体、文本、图表等元素,并支持超过1小时的长视频内容理解及事件定位 。此外,该模型无需微调即可作为视觉智能体操控设备,执行多步骤复杂任务 。其结构化输出功能适用于金融、商业等领域的数据处理。Qwen2.5-VL-7B-Instruct在多个任务中表现优于GPT-4o-mini,而3B版本作为端侧模型超越此前7B版本性能 。截至2025年1月,Qwen2.5-VL-72B-Instruct在13项权威评测中夺得视觉理解冠军,全面超越GPT-4o与Claude3.5 。
与Qwen2-VL相比,Qwen2.5-VL增强了时间和空间尺度感知能力,简化网络结构以提升效率 。阿里通义千问计划进一步提升模型的问题解决与推理能力,整合更多模态,打造处理多种输入的综合全能模型 。
硬件设备
| 设备型号 | NPU配置 |
|---|---|
| Atlas 800I A2 | 8*64G |
| Atlas 800T A2 | 8*64G |
软件版本配置表
| 软件配套 | 版本 |
|---|---|
| python | 3.11 |
| torch | 2.8.0 |
| torch_npu | 2.8.0 |
| transformers | 4.57.3 |
| vllm_ascend | v0.13.0rc1 |
| CANN | 8.3.rc2 |
| HDK | 25.2.3 |
docker pull quay.io/ascend/vllm-ascend:v0.13.0rc1docker run -itd --name qwen2.5-vl-7b \
--net=host \
--privileged=true \
--shm-size=1g \
--device=/dev/davinci0 \
--device=/dev/davinci_manager \
--device=/dev/devmm_svm \
--device=/dev/hisi_hdc \
-v /usr/local/Ascend/driver:/usr/local/Ascend/driver \
-v /usr/local/Ascend/add-ons/:/usr/local/Ascend/add-ons/ \
-v /usr/local/sbin/:/usr/local/sbin/ \
-v /var/log/npu/slog/:/var/log/npu/slog \
-v /var/log/npu/profiling/:/var/log/npu/profiling \
-v /var/log/npu/dump/:/var/log/npu/dump \
-v /var/log/npu/:/usr/slog \
-v /models:/models \
-v /etc/hccn.conf:/etc/hccn.conf \
-p 8000:8000 \
镜像ID /bin/bashdocker exec -it qwen2.5-vl-7b bashhttps://modelscope.cn/models/Eco-Tech/Qwen2.5-VL-7B-Instruct-w8a8/fileshttps://modelscope.cn/models/Qwen/Qwen2.5-VL-7B-Instruct/filespip install modelscope
modelscope download --model Eco-Tech/Qwen2.5-VL-7B-Instruct-w8a8 --local_dir ./Qwen2.5-VL-7B-Instruct-w8a8安装必备python依赖
pip install qwen_vl_utils triton如需使用脚本验证,需安装python依赖包
pip install accelerate使用python脚本验证模型【如果使用量化模型,需要添加quantization="ascend"参数】
from transformers import AutoProcessor
from vllm import LLM, SamplingParams
from qwen_vl_utils import process_vision_info
MODEL_PATH = "Qwen2.5-VL-7B-Instruct-w8a8"
llm = LLM(
model=MODEL_PATH,
max_model_len=16384,
limit_mm_per_prompt={"image": 10},
quantization="ascend"
)
sampling_params = SamplingParams(max_tokens=512)
image_messages = [
{"role": "system", "content": "你是一个智能助手."},
{
"role": "user",
"content": [
{
"type": "image",
"image": "https://modelscope.oss-cn-beijing.aliyuncs.com/resource/qwen.png",
"min_pixels": 224 * 224,
"max_pixels": 1280 * 28 * 28,
},
{"type": "text", "text": "请描述一下这张图片的内容"},
],
},
]
messages = image_messages
processor = AutoProcessor.from_pretrained(MODEL_PATH)
prompt = processor.apply_chat_template(
messages,
tokenize=False,
add_generation_prompt=True,
)
image_inputs, _, _ = process_vision_info(messages, return_video_kwargs=True)
mm_data = {}
if image_inputs is not None:
mm_data["image"] = image_inputs
llm_inputs = {
"prompt": prompt,
"multi_modal_data": mm_data,
}
outputs = llm.generate([llm_inputs], sampling_params=sampling_params)
generated_text = outputs[0].outputs[0].text
print(generated_text)使用vllm-ascend部署模型服务化【如果使用量化模型,需要添加--quantization ascend参数】
export PYTORCH_NPU_ALLOC_CONF=max_split_size_mb:256
vllm serve Qwen2.5-VL-7B-Instruct-w8a8 --quantization ascend验证服务化部署
curl http://localhost:8000/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "Qwen2.5-VL-7B-Instruct-w8a8",
"messages": [
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": [
{"type": "image_url", "image_url": {"url": "https://qianwen-res.oss-cn-beijing.aliyuncs.com/Qwen-VL/assets/demo.jpeg"}},
{"type": "text", "text": "请描述一下这张图片"}
]}
]
}'