模型介绍
内容详情
替代品
模型简介
720亿参数的多模态视觉语言模型,支持图像理解、视频分析、多语言文本识别和智能体操作等功能。
模型特点
全分辨率图像理解
通过动态视觉token映射实现类人视觉处理体验,在MathVista、DocVQA等基准测试中达到最先进水平
超长视频理解
可解析20分钟以上视频内容,支持高质量视频问答、对话及创作
智能体操作系统
结合复杂推理与决策能力,可集成手机、机器人等设备实现视觉环境驱动的自动化操作
多语言图文理解
支持图像内多语种文本识别,涵盖主要欧洲语言、日语、韩语、阿拉伯语、越南语等
模型能力
图像理解
视频分析
多语言文本识别
智能体操作
复杂推理
决策支持
使用案例
文档处理
文档问答
解析文档图像并回答相关问题
在DocVQA测试集上达到96.5%准确率
教育
数学问题解答
解析数学图表并解答问题
在MathVista测试集上达到70.5%准确率
智能设备
安卓设备操作
通过视觉理解控制安卓设备
在AITZ基准测试中类型匹配准确率89.6%
license: other license_name: 通义千问 license_link: https://huggingface.co/Qwen/Qwen2-VL-72B-Instruct/blob/main/LICENSE language:
- zh pipeline_tag: 图像文本到文本 tags:
- 多模态 library_name: transformers base_model:
- Qwen/Qwen2-VL-72B
该预览模型采用LoRA训练1个周期。
完整训练版本检查点:https://huggingface.co/osunlp/UGround-V1-72B(在ScreenSpot-Pro和ScreenSpot基准上表现略优)
Qwen2-VL-72B-Instruct
模型介绍
我们隆重推出Qwen2-VL——这是Qwen-VL模型系列的最新迭代,凝聚了近一年的创新成果。
核心升级亮点
关键能力提升:
- 全分辨率图像理解新标杆:在MathVista、DocVQA、RealWorldQA、MTVQA等视觉理解基准测试中达到最先进水平
- 超长视频理解能力:可解析20分钟以上视频内容,支持高质量视频问答、对话及创作
- 智能体操作系统:结合复杂推理与决策能力,可集成手机、机器人等设备实现视觉环境驱动的自动化操作
- 多语言图文理解:除中英文外,新增支持图像内多语种文本识别(涵盖主要欧洲语言、日语、韩语、阿拉伯语、越南语等)
架构革新:
- 动态分辨率处理:突破固定分辨率限制,通过动态视觉token映射实现类人视觉处理体验
- 多模态旋转位置编码(M-ROPE):解耦位置嵌入为文本1D、视觉2D和视频3D分量,强化跨模态表征能力
我们提供20亿、80亿和720亿参数三个版本。本仓库为720亿参数的指令调优模型。更多信息请访问技术博客和GitHub。
性能评测
图像基准测试
测试集 | 开源SOTA | Claude-3.5 | GPT-4o | Qwen2-VL-72B |
---|---|---|---|---|
MMMU验证集 | 58.3 | 68.3 | 69.1 | 64.5 |
DocVQA测试集 | 94.1 | 95.2 | 92.8 | 96.5 |
InfoVQA测试集 | 82.0 | - | - | 84.5 |
ChartQA测试集 | 88.4 | 90.8 | 85.7 | 88.3 |
TextVQA验证集 | 84.4 | - | - | 85.5 |
OCRBench | 852 | 788 | 736 | 877 |
MTVQA | 17.3 | 25.7 | 27.8 | 30.9 |
VCR英文简单 | 84.67 | 63.85 | 91.55 | 91.93 |
VCR中文简单 | 22.09 | 1.0 | 14.87 | 65.37 |
RealWorldQA | 72.2 | 60.1 | 75.4 | 77.8 |
MME总分 | 2414.7 | 1920.0 | 2328.7 | 2482.7 |
MMBench-EN测试集 | 86.5 | 79.7 | 83.4 | 86.5 |
MMBench-CN测试集 | 86.3 | 80.7 | 82.1 | 86.6 |
MMBench-V1.1测试集 | 85.5 | 78.5 | 82.2 | 85.9 |
MMT-Bench | 63.4 | - | 65.5 | 71.7 |
MMStar | 67.1 | 62.2 | 63.9 | 68.3 |
MMVetGPT-4-Turbo | 65.7 | 66.0 | 69.1 | 74.0 |
HallBench平均 | 55.2 | 49.9 | 55.0 | 58.1 |
MathVista测试集 | 67.5 | 67.7 | 63.8 | 70.5 |
MathVision | 16.97 | - | 30.4 | 25.9 |
视频基准测试
测试集 | 开源SOTA | Gemini 1.5 | GPT-4o | Qwen2-VL-72B |
---|---|---|---|---|
MVBench | 69.6 | - | - | 73.6 |
PerceptionTest测试集 | 66.9 | - | - | 68.0 |
EgoSchema测试集 | 62.0 | 63.2 | 72.2 | 77.9 |
Video-MME (含/不含字幕) |
66.3/69.6 | 75.0/81.3 | 71.9/77.2 | 71.2/77.8 |
智能体基准测试
领域 | 测试集 | 指标 | 当前SOTA | GPT-4o | Qwen2-VL-72B |
---|---|---|---|---|---|
通用 | FnCall[1] | 类型匹配 | - | 90.2 | 93.1 |
精确匹配 | - | 50.0 | 53.2 | ||
游戏 | 数字线 | 成功率 | 89.4[2] | 91.5 | 100.0 |
二十一点 | 成功率 | 40.2[2] | 34.5 | 42.6 | |
EZPoint | 成功率 | 50.0[2] | 85.5 | 100.0 | |
24点 | 成功率 | 2.6[2] | 3.0 | 4.5 | |
安卓 | AITZ | 类型匹配 | 83.0[3] | 70.0 | 89.6 |
精确匹配 | 47.7[3] | 35.3 | 72.1 | ||
AI2THOR | ALFRED未见验证集 | 成功率 | 67.7[4] | - | 67.8 |
目标达成率 | 75.3[4] | - | 75.8 | ||
视觉导航 | R2R未见验证集 | 成功率 | 79.0 | 43.7[5] | 51.7 |
REVERIE未见验证集 | 成功率 | 61.0 | 31.6[5] | 31.0 |
注:SR=成功率,GC=目标达成率,TM=类型匹配,EM=精确匹配。ALFRED测试依赖SAM[6]实现。
- 通义团队自建函数调用基准
- 《通过强化学习微调视觉语言大模型作为决策智能体》
- 《动物园中的安卓:GUI智能体的行动思维链》
- 《ThinkBot:基于思维链推理的具身指令跟随》
- 《MapGPT:自适应路径规划的视觉语言导航》
- Segment Anything模型
多语言基准测试
模型 | 阿拉伯语 | 德语 | 法语 | 意大利语 | 日语 | 韩语 | 俄语 | 泰语 | 越南语 | 平均 |
---|---|---|---|---|---|---|---|---|---|---|
Qwen2-VL-72B | 20.7 | 36.5 | 44.1 | 42.8 | 21.6 | 37.4 | 15.6 | 17.7 | 41.6 | 30.9 |
GPT-4o | 20.2 | 34.2 | 41.2 | 32.7 | 20.0 | 33.9 | 11.5 | 22.5 | 34.2 | 27.8 |
Claude3 Opus | 15.1 | 33.4 | 40.6 | 34.4 | 19.4 | 27.2 | 13.0 | 19.5 | 29.1 | 25.7 |
Gemini Ultra | 14.7 | 32.3 | 40.0 | 31.8 | 12.3 | 17.2 | 11.8 | 20.3 | 28.6 | 23.2 |
环境要求
建议通过源码安装最新版Hugging Face transformers:
pip install git+https://github.com/huggingface/transformers
否则可能报错:
KeyError: 'qwen2_vl'
快速开始
安装视觉处理工具包:
pip install qwen-vl-utils
基础使用示例:
from transformers import Qwen2VLForConditionalGeneration, AutoTokenizer, AutoProcessor
from qwen_vl_utils import process_vision_info
# 默认加载到可用设备
model = Qwen2VLForConditionalGeneration.from_pretrained(
"Qwen/Qwen2-VL-72B-Instruct", torch_dtype="auto", device_map="auto"
)
# 推荐启用flash_attention_2加速(特别在多图/视频场景)
# model = Qwen2VLForConditionalGeneration.from_pretrained(
# "Qwen/Qwen2-VL-72B-Instruct",
# torch_dtype=torch.bfloat16,
# attn_implementation="flash_attention_2",
# device_map="auto",
# )
processor = AutoProcessor.from_pretrained("Qwen/Qwen2-VL-72B-Instruct")
# 可自定义视觉token数量范围(默认4-16384)
# min_pixels = 256*28*28
# max_pixels = 1280*28*28
# processor = AutoProcessor.from_pretrained("Qwen/Qwen2-VL-72B-Instruct", min_pixels=min_pixels, max_pixels=max_pixels)
messages = [
{
"role": "user",
"content": [
{"type": "image", "image": "https://qianwen-res.oss-cn-beijing.aliyuncs.com/Qwen-VL/assets/demo.jpeg"},
{"type": "text", "text": "描述这张图片"},
],
}
]
# 输入预处理
text = 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",
).to("cuda")
# 生成输出
generated_ids = model.generate(**inputs, max_new_tokens=128)
output_text = processor.batch_decode(
[out[len(inp):] for inp, out in zip(inputs.input_ids, generated_ids)],
skip_special_tokens=True
)
print(output_text)
不使用qwen_vl_utils
from PIL import Image
import requests
from transformers import Qwen2VLForConditionalGeneration, AutoProcessor
model = Qwen2VLForConditionalGeneration.from_pretrained(
"Qwen/Qwen2-VL-72B-Instruct", device_map="auto"
)
processor = AutoProcessor.from_pretrained("Qwen/Qwen2-VL-72B-Instruct")
url = "https://qianwen-res.oss-cn-beijing.aliyuncs.com/Qwen-VL/assets/demo.jpeg"
image = Image.open(requests.get(url, stream=True).raw)
inputs = processor(
text="<|im_start|>user\n<|vision_start|><|image_pad|><|vision_end|>描述图片<|im_end|>\n<|im_start|>assistant\n",
images=[image],
return_tensors="pt"
).to("cuda")
output_ids = model.generate(**inputs)
print(processor.decode(output_ids[0], skip_special_tokens=True))
多图推理
messages = [
{
"role": "user",
"content": [
{"type": "image", "image": "file:///path/to/image1.jpg"},
{"type": "image", "image": "file:///path/to/image2.jpg"},
{"type": "text", "text": "找出两图的共同点"},
],
}
]
# 预处理与单图流程相同
视频推理
# 帧序列输入
messages = [
{
"role": "user",
"content": [
{
"type": "video",
"video": [
"file:///path/to/frame1.jpg",
"file:///path/to/frame2.jpg",
"file:///path/to/frame3.jpg",
],
"fps": 1.0,
},
{"type": "text", "text": "描述视频内容"},
],
}
]
# 或直接输入视频文件
messages = [
{
"role": "user",
"content": [
{
"type": "video",
"video": "file:///path/to/video.mp4",
"max_pixels": 360*420,
"fps": 1.0,
},
{"type": "text", "text": "描述视频内容"},
],
}
]
批量推理
messages_batch = [
[{"role":"user", "content":[{"type":"image", "image":"path1.jpg"}, {"type":"text", "text":"问题1"}]}],
[{"role":"user", "content":[{"type":"image", "image":"path2.jpg"}, {"type":"text", "text":"问题2"}]}]
]
texts = [processor.apply_chat_template(m, tokenize=False) for m in messages_batch]
image_inputs, _ = process_vision_info(messages_batch)
inputs = processor(
text=texts,
images=image_inputs,
padding=True,
return_tensors="pt"
).to("cuda")
outputs = model.generate(**inputs)
使用技巧
输入类型支持
- 图像:本地路径(file://)、URL、Base64编码
- 视频:目前仅支持本地文件
# 本地文件
messages = [{"role":"user", "content":[
{"type":"image", "image":"file:///path/to/image.jpg"},
{"type":"text", "text":"描述图片"}
]}]
# 网络图片
messages = [{"role":"user", "content":[
{"type":"image", "image":"http://example.com/image.jpg"},
{"type":"text", "text":"描述图片"}
]}]
# Base64图片
messages = [{"role":"user", "content":[
{"type":"image", "image":"data:image;base64,/9j/..."},
{"type":"text", "text":"描述图片"}
]}]
分辨率优化
通过设置像素范围平衡性能与资源消耗:
processor = AutoProcessor.from_pretrained(
"Qwen/Qwen2-VL-72B-Instruct",
min_pixels=256*28*28, # 最小像素
max_pixels=1280*28*28 # 最大像素
)
支持两种精确控制方式:
- 动态调整:保持宽高比在[min_pixels, max_pixels]范围内
- 固定尺寸:直接指定resized_height和resized_width(自动对齐到28的倍数)
# 方式1:像素范围控制
messages = [{"role":"user", "content":[
{"type":"image", "image":"file:///image.jpg", "min_pixels":50176, "max_pixels":50176},
{"type":"text", "text":"描述图片"}
]}]
# 方式2:精确尺寸控制
messages = [{"role":"user", "content":[
{"type":"image", "image":"file:///image.jpg", "resized_height":280, "resized_width":420},
{"type":"text", "text":"描述图片"}
]}]
局限性
当前版本存在以下已知限制:
- 音频理解缺失:不支持视频中的音频信息处理
- 数据时效性:图像训练数据截至2023年6月
- 人物/IP识别局限:对特定名人和品牌的识别覆盖率有限
- 复杂指令处理:多步骤复杂指令的执行能力待提升
- 计数精度不足:复杂场景下的物体计数准确率较低
- 空间推理薄弱:三维空间中的物体位置关系判断能力较弱
这些是我们持续优化的重点方向。
引用
如果觉得我们的工作有帮助,欢迎引用:
@article{Qwen2VL,
title={Qwen2-VL:增强视觉语言模型的全分辨率世界感知},
author={王鹏、白帅等},
journal={arXiv预印本},
year={2024}
}
@article{Qwen-VL,
title={Qwen-VL:具备理解、定位、文本阅读等多功能的视觉语言模型},
author={白金泽、白帅等},
journal={arXiv预印本},
year={2023}
}
Clip Vit Large Patch14
CLIP是由OpenAI开发的视觉-语言模型,通过对比学习将图像和文本映射到共享的嵌入空间,支持零样本图像分类
图像生成文本
C
openai
44.7M
1,710
Clip Vit Base Patch32
CLIP是由OpenAI开发的多模态模型,能够理解图像和文本之间的关系,支持零样本图像分类任务。
图像生成文本
C
openai
14.0M
666
Siglip So400m Patch14 384
Apache-2.0
SigLIP是基于WebLi数据集预训练的视觉语言模型,采用改进的sigmoid损失函数,优化了图像-文本匹配任务。
图像生成文本
Transformers

S
google
6.1M
526
Clip Vit Base Patch16
CLIP是由OpenAI开发的多模态模型,通过对比学习将图像和文本映射到共享的嵌入空间,实现零样本图像分类能力。
图像生成文本
C
openai
4.6M
119
Blip Image Captioning Base
Bsd-3-clause
BLIP是一个先进的视觉-语言预训练模型,擅长图像描述生成任务,支持条件式和非条件式文本生成。
图像生成文本
Transformers

B
Salesforce
2.8M
688
Blip Image Captioning Large
Bsd-3-clause
BLIP是一个统一的视觉-语言预训练框架,擅长图像描述生成任务,支持条件式和无条件式图像描述生成。
图像生成文本
Transformers

B
Salesforce
2.5M
1,312
Openvla 7b
MIT
OpenVLA 7B是一个基于Open X-Embodiment数据集训练的开源视觉-语言-动作模型,能够根据语言指令和摄像头图像生成机器人动作。
图像生成文本
Transformers

英语
O
openvla
1.7M
108
Llava V1.5 7b
LLaVA 是一款开源多模态聊天机器人,基于 LLaMA/Vicuna 微调,支持图文交互。
图像生成文本
Transformers

L
liuhaotian
1.4M
448
Vit Gpt2 Image Captioning
Apache-2.0
这是一个基于ViT和GPT2架构的图像描述生成模型,能够为输入图像生成自然语言描述。
图像生成文本
Transformers

V
nlpconnect
939.88k
887
Blip2 Opt 2.7b
MIT
BLIP-2是一个视觉语言模型,结合了图像编码器和大型语言模型,用于图像到文本的生成任务。
图像生成文本
Transformers

英语
B
Salesforce
867.78k
359
精选推荐AI模型
Llama 3 Typhoon V1.5x 8b Instruct
专为泰语设计的80亿参数指令模型,性能媲美GPT-3.5-turbo,优化了应用场景、检索增强生成、受限生成和推理任务
大型语言模型
Transformers

支持多种语言
L
scb10x
3,269
16
Cadet Tiny
Openrail
Cadet-Tiny是一个基于SODA数据集训练的超小型对话模型,专为边缘设备推理设计,体积仅为Cosmo-3B模型的2%左右。
对话系统
Transformers

英语
C
ToddGoldfarb
2,691
6
Roberta Base Chinese Extractive Qa
基于RoBERTa架构的中文抽取式问答模型,适用于从给定文本中提取答案的任务。
问答系统
中文
R
uer
2,694
98
AIbase是一个专注于MCP服务的平台,为AI开发者提供高质量的模型上下文协议服务,助力AI应用开发。
简体中文