综合介绍
Qwen2.5-VL 是阿里巴巴云(Alibaba Cloud)Qwen 团队开发的开源多模态大模型。它能同时处理文本、图像、视频和文档,是 Qwen2-VL 的升级版,基于 Qwen2.5 语言模型构建。官方称,它在文档解析、视频理解和智能代理功能上大幅提升,支持 3B、7B、32B 和 72B 四种参数规模,满足从个人电脑到服务器的多种需求。项目托管在 GitHub,采用 Apache 2.0 许可证,免费开放源码。Qwen2.5-VL 在多个测试中表现优异,部分指标超过闭源模型,适合开发者打造智能工具,如文档提取器、视频分析器或设备操作助手。
功能列表
- 识别图像中的物体、文字和布局,支持自然场景和多语言。
- 理解超长视频(超过一小时),定位秒级事件片段。
- 解析复杂文档,提取手写文字、表格、图表和化学公式。
- 通过视觉和文字指令控制电脑或手机,执行智能代理任务。
- 输出结构化数据,如 JSON 格式的坐标或属性信息。
- 支持动态分辨率和帧率调整,优化视频处理效率。
使用帮助
安装流程
要在本地运行 Qwen2.5-VL,需准备软件环境。以下是详细步骤:
- 检查基础环境
需要 Python 3.8+ 和 Git。终端输入以下命令检查:
python --version
git --version
未安装可从 Python 官网 和 Git 官网 下载。
- 下载代码
在终端运行以下命令克隆 GitHub 仓库:
git clone https://github.com/QwenLM/Qwen2.5-VL.git
cd Qwen2.5-VL
- 安装依赖
项目需要特定 Python 库,运行以下命令安装:
pip install git+https://github.com/huggingface/transformers@f3f6c86582611976e72be054675e2bf0abb5f775
pip install accelerate
pip install qwen-vl-utils[decord]
pip install 'vllm>0.7.2'
如果有 GPU,安装支持 CUDA 的 PyTorch:
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu124
注:decord
用于加速视频加载,非 Linux 用户可从 decord GitHub 源码安装。
- 启动模型
下载并运行模型,例如 7B 版本:
vllm serve Qwen/Qwen2.5-VL-7B-Instruct --port 8000 --host 0.0.0.0 --dtype bfloat16
模型会自动从 Hugging Face 下载并启动本地服务。
如何使用主要功能
安装后,可通过代码或 Web 界面操作 Qwen2.5-VL。
图像识别
想让模型描述图片?新建 image_test.py
,输入以下代码:
from transformers import Qwen2VLForConditionalGeneration, AutoProcessor
from qwen_vl_utils import process_vision_info
from PIL import Image
model = Qwen2VLForConditionalGeneration.from_pretrained("Qwen/Qwen2.5-VL-7B-Instruct", torch_dtype="auto", device_map="auto")
processor = AutoProcessor.from_pretrained("Qwen/Qwen2.5-VL-7B-Instruct")
messages = [{"role": "user", "content": [{"type": "image", "image": "图片路径或URL"}, {"type": "text", "text": "描述这张图片"}]}]
text = processor.apply_chat_template(messages, tokenize=False)
inputs = processor(text=[text], images=[Image.open("图片路径或URL")], padding=True, return_tensors="pt").to("cuda")
generated_ids = model.generate(**inputs, max_new_tokens=128)
output = processor.batch_decode(generated_ids, skip_special_tokens=True)[0]
print(output)
运行后,模型会输出描述,例如:“图片里有一只猫坐在窗台上。”
视频理解
分析视频需准备本地文件(如 video.mp4
)。用以下代码:
messages = [{"role": "user", "content": [{"type": "video", "video": "video.mp4"}, {"type": "text", "text": "总结视频内容"}]}]
text = processor.apply_chat_template(messages, tokenize=False)
inputs = processor(text=[text], videos=[processor.process_video("video.mp4")], padding=True, return_tensors="pt").to("cuda")
generated_ids = model.generate(**inputs, max_new_tokens=128)
output = processor.batch_decode(generated_ids, skip_special_tokens=True)[0]
print(output)
输出可能是:“视频展示了一场烹饪比赛,选手制作了披萨。”
文档解析
上传 PDF 或图片,用类似图像识别的代码,改提示为“提取表格数据”,模型会返回结构化结果,如:
[{"列1": "值1", "列2": "值2"}]
智能代理
想控制设备?用 cookbooks/computer_use.ipynb
示例。运行后,输入“打开记事本并输入‘你好’”,模型会模拟操作并返回结果。
Web 界面使用
运行 web_demo_mm.py
启动 Web 界面:
python web_demo_mm.py
浏览器访问 http://127.0.0.1:7860
,上传文件或输入指令,模型会直接处理。
优化性能
- Flash Attention 2:加速推理,安装后用:
pip install -U flash-attn --no-build-isolation python web_demo_mm.py --flash-attn2
- 分辨率调整:设置
min_pixels
和max_pixels
控制图像大小,如 256-1280 范围,平衡速度和内存。
应用场景
- 学术研究
学生上传论文图片,模型提取公式和数据,生成分析报告。 - 视频剪辑
创作者输入长视频,模型提取关键片段,生成摘要。 - 企业文档管理
员工上传合同扫描件,模型提取条款,输出表格。 - 智能助手
用户用图片和语音指令,让模型查询手机上的航班信息。
QA
- 支持哪些语言?
支持中文、英文及多种语言(如法语、德语),能识别多语言文字和手写内容。 - 硬件要求是什么?
3B 模型需 8GB 显存,7B 需 16GB,32B 和 72B 建议 24GB+ 显存的专业设备。 - 如何处理超长视频?
模型用动态帧率采样,能理解数小时视频,精确定位秒级事件。