❤️ 如果你也关注 AI 的发展现状,且对 AI 应用开发非常感兴趣,我会每日分享大模型与 AI 领域的最新开源项目和应用,提供运行实例和实用教程,帮助你快速上手AI技术,欢迎关注我哦!
🥦 微信公众号|搜一搜:蚝油菜花 🥦
🚀 快速阅读
- 模型概述:QVQ-72B-Preview 是阿里云通义千问团队开源的多模态推理模型,专注于提升视觉推理能力。
- 功能亮点:支持复杂的图像理解和逐步推理,能够识别图片中的深层含义,如“梗图”内涵。
- 性能评测:在多个基准测试中表现出色,超越了 GPT-4 和其他同类模型。
QVQ-72B-Preview 是什么
QVQ-72B-Preview 是阿里云通义千问团队开源的多模态推理模型,专注于提升视觉推理能力。该模型在多个基准测试中表现出色,特别是在多模态理解和推理任务上展现了强大的能力。它能够准确理解图像内容,进行复杂的逐步推理,并支持从图片中推断物体的高度、数量等具体信息,甚至能识别图片的深层含义,如“梗图”内涵。
QVQ-72B-Preview 的推出为多模态推理领域带来了新的突破,尤其是在教育、科研和多模态交互等应用场景中,提供了更高效、更智能的解决方案。
QVQ-72B-Preview 的主要功能
- 强大的视觉推理能力:QVQ-72B-Preview 能准确理解图像内容,进行复杂的逐步推理。支持从图片中推断物体的高度、数量等具体信息,能够识别图片的深层含义,如“梗图”内涵。
- 多模态处理:模型能同时处理图像和文本信息,进行深度推理。将语言信息与视觉信息无缝对接,让 AI 的推理进程更加高效。
- 科学级推理表现:QVQ-72B-Preview 在处理复杂的科学问题时表现出色,能够像科学家一样思考并给出准确答案。通过质疑假设和优化推理步骤,提供更可靠、更智能的结果。
QVQ-72B-Preview 的性能表现
- 多模态理解:在 Multimodal Massive Multi-task Understanding (MMMU) 基准测试中,QVQ-72B-Preview 取得了 70.3% 的成绩,展示了其在多学科理解和推理方面的强大能力。
- 数学推理:在 MathVision 基准测试中,QVQ-72B-Preview 取得了 35.9% 的成绩,显著优于其他模型,特别是在处理复杂的数学问题时表现出色。
- 挑战性任务:在 OlympiadBench 基准测试中,QVQ-72B-Preview 取得了 20.4% 的成绩,展示了其在解决高难度问题方面的潜力。
尽管 QVQ-72B-Preview 在多个基准测试中表现出色,但模型仍存在一些局限性:
- 语言混用:模型可能会偶尔混用不同语言,影响响应的清晰度。
- 递归推理循环:模型可能会陷入递归推理循环,导致响应过长且无法得出最终答案。
- 安全性和伦理问题:需要采取更严格的措施确保模型的安全性和可靠性。
- 性能限制:在多步视觉推理任务中,模型可能会逐渐失去对图像内容的聚焦,导致幻觉现象。此外,QVQ-72B-Preview 在基本识别任务(如识别人物、动物或植物)上并未显著优于 Qwen2-VL-72B。
如何运行 QVQ-72B-Preview
1. 安装依赖库
首先,你需要安装 qwen-vl-utils
库,以便更方便地处理各种类型的视觉输入(包括 base64、URL 和图像/视频)。
pip install qwen-vl-utils
AI 代码解读
2. 使用 transformers
和 qwen_vl_utils
进行推理
以下是一个完整的代码示例,展示如何使用 transformers
和 qwen_vl_utils
进行推理:
from transformers import Qwen2VLForConditionalGeneration, AutoTokenizer, AutoProcessor
from qwen_vl_utils import process_vision_info
# 加载模型
model = Qwen2VLForConditionalGeneration.from_pretrained(
"Qwen/QVQ-72B-Preview", torch_dtype="auto", device_map="auto"
)
# 加载处理器
processor = AutoProcessor.from_pretrained("Qwen/QVQ-72B-Preview")
# 消息示例
messages = [
{
"role": "system",
"content": [
{
"type": "text", "text": "你是一个乐于助人且无害的助手。你应该逐步思考。"}
],
},
{
"role": "user",
"content": [
{
"type": "image",
"image": "https://qianwen-res.oss-cn-beijing.aliyuncs.com/QVQ/demo.png",
},
{
"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",
)
inputs = inputs.to("cuda")
# 生成输出
generated_ids = model.generate(**inputs, max_new_tokens=8192)
generated_ids_trimmed = [
out_ids[len(in_ids) :] for in_ids, out_ids in zip(inputs.input_ids, generated_ids)
]
output_text = processor.batch_decode(
generated_ids_trimmed, skip_special_tokens=True, clean_up_tokenization_spaces=False
)
print(output_text)
AI 代码解读
资源
- Qwen Chat:https://chat.qwenlm.ai/
- 在线演示 Demo:https://modelscope.cn/studios/Qwen/QVQ-72B-preview
- HuggingFace 仓库:https://huggingface.co/Qwen/QVQ-72B-Preview
❤️ 如果你也关注 AI 的发展现状,且对 AI 应用开发非常感兴趣,我会每日分享大模型与 AI 领域的最新开源项目和应用,提供运行实例和实用教程,帮助你快速上手AI技术,欢迎关注我哦!
🥦 微信公众号|搜一搜:蚝油菜花 🥦