在当前AI飞速发展的浪潮中,多模态大模型成为了人工智能领域的一个重要突破口。InternVL2 和 Qwen2-VL 两款模型,分别由上海人工智能实验室和阿里巴巴达摩院推出,代表了多模态大模型的最新进展。它们不仅展示了在图像、文本理解上的卓越性能,还为科研人员、开发者提供了更强大的工具和框架。而VLMEvalKit[1]作为一款评估多模态大模型性能的开源工具包,为这些模型的全面评测提供了不可或缺的支持。
本期,我们一起来使用 VLMEvalKit 评测 InternVL2和Qwen2-VL两款模型。
一、InternVL2简介
InternVL2是由上海人工智能实验室 OpenGVLab 发布的一款多模态大模型,其中文名称为“书生·万象
”。该模型在多学科问答(MMMU)任务上表现出色,成为国内首个在该任务上性能突破60的模型,被誉为开源多模态大模型性能的新标杆。
InternVL2官方性能评测结果,来源:https://github.com/OpenGVLab/InternVL
InternVL2主要功能
InternVL 2.0 具有各种指令调整模型,范围从 10 亿到 1080 亿个参数。与最先进的开源多模态大型语言模型相比,InternVL 2.0 超越了大多数开源模型。它在各种功能上展示了与专有商业模式相当的竞争性能,包括文档和图表理解、信息图表 QA、场景文本理解和 OCR 任务、科学和数学问题解决,以及文化理解和集成多模式功能。
InternVL 2.0 使用 8k 上下文窗口进行训练,并利用由长文本、多张图像、医疗数据和视频组成的训练数据,与 InternVL 1.5 相比,它显着提高了处理这些类型输入的能力。
如图所示,InternVL2 采用与 InternVL 1.5 相同的架构,特别是各种现有研究中引用的 ViT-MLP-LLM
配置。
InternVL2模型在多个基准测试中表现优异,例如在中文多模态大模型SuperCLUE-V基准测试中,InternVL2-40B模型获得了70.59分,排名第二。这表明该模型在处理多模态数据和跨学科问题方面具有较高的能力。
其使用方法可以参考:Welcome to InternVL’s tutorials! — internvl[2]
二、Qwen2VL简介
Qwen2-VL是阿里巴巴达摩院开源的视觉多模态 AI 模型,具备高级图像和视频理解能力。Qwen2-VL支持多种语言,能处理不同分辨率和长宽比的图片,实时分析动态视频内容。Qwen2-VL在多语言文本理解、文档理解等任务上表现卓越,适用于多模态应用开发,推动了AI在视觉理解和内容生成领域的进步。
Qwen2-VL 官方评测结果,图源: https://qwenlm.github.io/zh/blog/qwen2-vl/
Qwen2-VL主要增强功能
-
SoTA 理解各种分辨率和比例的图像:Qwen2-VL 在视觉理解基准上实现了先进的性能,包括 MathVista、DocVQA、RealWorldQA、MTVQA 等。
-
理解20分钟以上的视频:借助在线流媒体功能,Qwen2-VL可以通过基于高质量视频的问答、对话、内容创作等来理解20分钟以上的视频。
-
可以操作手机、机器人等的智能体:Qwen2-VL具有复杂的推理和决策能力,可以与手机、机器人等设备集成,基于视觉环境和文本指令进行自动操作。
-
多语言支持:为了服务全球用户,除了英语和中文之外,Qwen2-VL现在支持图像内不同语言文本的理解,包括大多数欧洲语言、日语、韩语、阿拉伯语、越南语等。
通义千问团队以 Apache 2.0 协议开源了 Qwen2-VL-2B 和 Qwen2-VL-7B,并发布了 Qwen2-VL-72B 的 API。开源代码已集成到 Hugging Face Transformers、vLLM 和其他第三方框架中。
其使用方法可以参考:Qwen2-VL: 更清晰地看世界[3]
三、VLMEvalKit简介
VLMEvalKit
是一个专为大型视觉语言模型评测设计的开源工具包。它支持在各种基准测试上对大型视觉语言模型进行一键评估,无需进行繁重的数据准备工作,使评估过程更加简便。VLMEvalKit适用于图文多模态模型的评测,支持单对图文输入或是任意数量的图文交错输入。它通过实现70多个基准测试,覆盖了多种任务,包括但不限于图像描述、视觉问答、图像字幕生成等。
图源:https://github.com/open-compass/VLMEvalKit
VLMEvalKit
的主要用途包括以下几个方面:
-
多模态模型评估:VLMEvalKit旨在为研究人员和开发人员提供一个用户友好且全面的框架,以评估现有的多模态模型并发布可重复的评估结果。它支持多种多模态模型和评测集,包括闭源和开源模型,以及多个多模态基准数据集。
-
模型性能比较:通过VLMEvalKit,用户可以轻松比较不同多模态模型在各种任务上的性能。该工具包提供了详细的评测结果,并支持将结果发布在OpenCompass的多模态整体榜单上。
-
便捷的一站式评测:VLMEvalKit支持一键式评测,无需手动进行数据预处理。用户只需一条命令即可完成对多个多模态模型和评测集的评测。
-
易于扩展:VLMEvalKit框架支持轻松添加新的多模态模型和评测集。用户可以根据需要添加新的模型或评测集,并确保原有的评测集和模型仍然适用于新的模型或评测集。
-
支持多种模型和评测集:VLMEvalKit支持超过三十个开源多模态模型和十余个开源多模态评测集,包括GPT-4v、GeminiPro、QwenVLPlus等主流模型和MME、MMBench、SEEDBench等评测集。
-
提供定量与定性结果:VLMEvalKit不仅提供定量评测结果,还支持对模型的定性分析,帮助用户了解模型在特定任务上的表现和不足之处。
四、使用 VLMEvalKit 评测 InternVL2 及 Qwen2VL
使用VLMEvalKit
进行评测需要进行以下步骤:
1. 环境准备用以下命令安装依赖:
# 基于conda环境 conda create -n vlmeval python=3.10 conda activate vlmeval conda install pytorch==2.0.1 torchvision==0.15.2 torchaudio==2.0.2 pytorch-cuda=11.7 -c pytorch -c nvidia -y git clone https://github.com/open-compass/VLMEvalKit.git cd VLMEvalKit pip install -e .
注意:
某些 VLM 可能无法在某些特定的 transformers 版本下运行,参考以下设置来评估对应的VLM:
请用
transformers==4.33.0
来运行:Qwen series
,Monkey series
,InternLM-XComposer Series
,mPLUG-Owl2
,OpenFlamingo v2
,IDEFICS series
,VisualGLM
,MMAlaya
,ShareCaptioner
,MiniGPT-4 series
,InstructBLIP series
,PandaGPT
,VXVERSE
.请用
transformers==4.37.0
来运行:LLaVA series
,ShareGPT4V series
,TransCore-M
,LLaVA (XTuner)
,CogVLM Series
,EMU2 Series
,Yi-VL Series
,MiniCPM-[V1/V2]
,OmniLMM-12B
,DeepSeek-VL series
,InternVL series
,Cambrian Series
,VILA Series
,Llama-3-MixSenseV1_1
,Parrot-7B
,PLLaVA Series
.请用
transformers==4.40.0
来运行:IDEFICS2
,Bunny-Llama3
,MiniCPM-Llama3-V2.5
,360VL-70B
,Phi-3-Vision
,WeMM
.请用
transformers==latest
来运行:LLaVA-Next series
,PaliGemma-3B
,Chame``3``leon series
,Video-LLaVA-7B-HF
,Ovis series
,Mantis series
,MiniCPM-V2.6
,OmChat-v2.0-13B-sinlge-beta
,Idefics-3
,GLM-4v-9B
,VideoChat2-HD
.
2. 修改文件
在$VLMEvalKit/vlmeval/config.py
文件中设置在 VLMEvalKit 中支持的 VLM 名称,以及模型路径。
如果你的电脑上面没有该模型的模型文件,则需要自己下载,然后更改模型路径,也可以不修改,在运行模型评测命令的时候会自动下载模型文件。
注:默认下载使用的是Huggingface,需要进行科学上网,也可以使用 modelscope[4] 将模型下载到本地,然后更改路径。
将所要评测的模型路径设置好以后就可以开始评测了。
3. 模型评测
模型评测时可以使用 python
或 torchrun
来运行脚本,使用 python
运行时,只实例化一个 VLM,并且它可能使用多个 GPU。使用 torchrun
运行时,每个 GPU 上实例化一个 VLM 实例,这可以加快推理速度。
这里我们在 MME
上对 InternVL2-2B[5] 和 Qwen2-VL-2B-Instruct[6] 进行推理和评估。
MME
涵盖了感知和认知能力的考察。除了OCR外,感知包括对粗粒度和细粒度对象的识别。前者识别对象的存在、数量、位置和颜色。后者识别电影海报、名人、场景、地标和艺术作品。认知包括常识推理、数值计算、文本翻译和代码推理。总共有14个子任务。
使用以下命令开始推理和评估:
torchrun --nproc-per-node=2 run.py --data MME --model qwen2vl --verbose
torchrun --nproc-per-node=2 run.py --data MME --model InternVL2-2B --verbose
参数解释:
-
--data (list[str])
: 设置在 VLMEvalKit 中支持的数据集名称(在vlmeval/utils/dataset_config.py
中定义) -
--model (list[str])
: 设置在 VLMEvalKit 中支持的 VLM 名称(在vlmeval/config.py
中的supported_VLM
中定义) -
--mode (str, 默认值为 'all', 可选值为 ['all', 'infer'])
:当 mode 设置为 “all” 时,将执行推理和评估;当设置为 “infer” 时,只执行推理 -
--nproc (int, 默认值为 4)
: 调用 API 的线程数 -
--work-dir (str, default to '.')
: 存放测试结果的目录 -
--nframe (int, default to 8)
: 从视频中采样的帧数,仅对视频多模态评测集适用 -
--pack (bool, store_true)
: 一个视频可能关联多个问题,如pack==True
,将会在一次询问中提问所有问题
命令运行以后大约需要半小时的时间完成评测,评估结果将作为日志打印出来。此外,结果文件也会在目录 $YOUR_WORKING_DIRECTORY/{model_name}
中生成。以 .csv
结尾的文件包含评估的指标。
Qwen2VL
的MME
数据集的评估结果如下:
感知 | 推理 | OCR | 艺术作品识别 | 名人识别 | 代码推理 | 颜色识别 | 常识推理 |
---|---|---|---|---|---|---|---|
1467.74 | 411.79 | 65 | 142 | 140.59 | 92.5 | 165 | 99.29 |
计数 | 对象识别 | 地标识别 | 数值计算 | 位置识别 | 海报识别 | 场景识别 | 文本翻译 |
135 | 190 | 171.25 | 50 | 138.33 | 161.56 | 159 | 170 |
InternVL2
的MME
数据集的评估结果如下:
感知 | 推理 | OCR | 艺术作品识别 | 名人识别 | 代码推理 | 颜色识别 | 常识推理 |
---|---|---|---|---|---|---|---|
1452.86 | 420.71 | 95 | 146.25 | 118.53 | 87.5 | 168.33 | 110.71 |
计数 | 对象识别 | 地标识别 | 数值计算 | 位置识别 | 海报识别 | 场景识别 | 文本翻译 |
143.33 | 200 | 155 | 45 | 145 | 128.91 | 152.5 | 177.5 |
4. 结果分析
通过对Qwen2-VL-2B-Instruct_MME_score.xlsx
和InternVL2-2B_MME_score.xlsx
两个表格中的大模型分数进行比较,我们可以观察到以下差异:
-
整体分数对比:两个模型在各项能力上的平均分数存在细微差异,但整体趋势相似,均表现出较高的综合能力。两个模型在多项能力上均表现出较高的水平,但在具体任务上各有侧重。
Qwen2-VL-2B-Instruct
在感知、名人识别和代码推理方面表现更佳,而InternVL2-2B
则在OCR、艺术作品识别和推理能力上有所领先。 -
具体能力项差异:
-
Perception(感知能力):
InternVL2-2B
的分数(1452.86)略低于Qwen2-VL-2B-Instruct
(1467.74),表明在图像或文本等基础信息的理解能力上,后者略胜一筹。 -
Reasoning(推理能力):
InternVL2-2B
的分数(420.71)略高于Qwen2-VL-2B-Instruct
(411.79),这可能意味着在处理复杂逻辑和关系推理时,InternVL2-2B
更具优势。 -
OCR(光学字符识别):
InternVL2-2B
的分数(95)明显高于Qwen2-VL-2B-Instruct
(65),显示出更强的文本识别和提取能力。 -
Artwork(艺术作品识别):
InternVL2-2B
的分数(146.25)略高于Qwen2-VL-2B-Instruct
(142),表明在艺术作品的识别和理解上,前者稍有优势。 -
Celebrity(名人识别):
Qwen2-VL-2B-Instruct
的分数(140.59)高于InternVL2-2B
(118.53),反映出在名人识别能力上,后者稍显不足。 -
Code Reasoning(代码推理):
Qwen2-VL-2B-Instruct
的分数(92.5)略高于InternVL2-2B
(87.5),显示出在处理代码和逻辑推断上的微弱优势。 -
其他能力项:如Commonsense Reasoning(常识推理)、Count(计数)、Existence(存在性判断)、Landmark(地标识别)、Numerical Calculation(数值计算)、Position(位置识别)、Posters(海报识别)、Scene(场景识别)和Text Translation(文本翻译)等,两个模型各有优势,但差异不大。
如何学习大模型 AI ?
由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。
但是具体到个人,只能说是:
“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。
这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。
我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。
我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。
第一阶段(10天):初阶应用
该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。
- 大模型 AI 能干什么?
- 大模型是怎样获得「智能」的?
- 用好 AI 的核心心法
- 大模型应用业务架构
- 大模型应用技术架构
- 代码示例:向 GPT-3.5 灌入新知识
- 提示工程的意义和核心思想
- Prompt 典型构成
- 指令调优方法论
- 思维链和思维树
- Prompt 攻击和防范
- …
第二阶段(30天):高阶应用
该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。
- 为什么要做 RAG
- 搭建一个简单的 ChatPDF
- 检索的基础概念
- 什么是向量表示(Embeddings)
- 向量数据库与向量检索
- 基于向量检索的 RAG
- 搭建 RAG 系统的扩展知识
- 混合检索与 RAG-Fusion 简介
- 向量模型本地部署
- …
第三阶段(30天):模型训练
恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。
到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?
- 为什么要做 RAG
- 什么是模型
- 什么是模型训练
- 求解器 & 损失函数简介
- 小实验2:手写一个简单的神经网络并训练它
- 什么是训练/预训练/微调/轻量化微调
- Transformer结构简介
- 轻量化微调
- 实验数据集的构建
- …
第四阶段(20天):商业闭环
对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。
- 硬件选型
- 带你了解全球大模型
- 使用国产大模型服务
- 搭建 OpenAI 代理
- 热身:基于阿里云 PAI 部署 Stable Diffusion
- 在本地计算机运行大模型
- 大模型的私有化部署
- 基于 vLLM 部署大模型
- 案例:如何优雅地在阿里云私有部署开源大模型
- 部署一套开源 LLM 项目
- 内容安全
- 互联网信息服务算法备案
- …
学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。
如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。