mobile wallpaper 1mobile wallpaper 2mobile wallpaper 3mobile wallpaper 4mobile wallpaper 5mobile wallpaper 6mobile wallpaper 7
5119 字
15 分钟
Qwen2-VL:不切图也赢麻
2026-07-23

Qwen2-VL 论文解读:别再切图了,“Naive” 一点反而赢麻了#

论文:Qwen2-VL: Enhancing Vision-Language Model’s Perception of the World at Any Resolution 作者:Peng Wang, Shuai Bai, Sinan Tan, Shijie Wang, Zhihao Fan 等 19 人(阿里通义团队,Junyang Lin、Jingren Zhou 领衔),2024 年 9 月发布于 arXiv(v2 修订于 10 月) 如果你跟过 2023 到 2024 年的开源多模态大模型,就知道当时的通病:图片进模型之前先被强行缩放到固定分辨率,要么拉伸变形,要么切成一堆小方块。Qwen2-VL 就干了两件事:让模型任意分辨率(any resolution)地”吃”原图(Naive Dynamic Resolution),再用一套位置编码(M-RoPE)把文本、图像、视频的位置信息全部统一。就靠这两个看起来不起眼的改动,72B 版本在一大票 benchmark 上站到了 GPT-4o 和 Claude 3.5 Sonnet 旁边,OCR 和文档理解干脆直接反超。这篇论文可能是那两年”性价比”最高的开源多模态论文,没有之一。

一、先把问题说清楚:多模态模型其实一直没”看清”过图片#

先聊聊背景。2024 年之前的视觉语言模型(VLM, Vision-Language Model)处理图片,基本就两条路,而且都不怎么体面:

第一条路:固定分辨率(fixed resolution)。以 LLaVA-1.5 为代表,不管你原图是 4000×3000 的证件照扫描件还是 200×200 的表情包,统统 resize 成 336×336 再进 ViT。结果就是:小图被强行放大糊成一团,大图被压成一张邮票,合同里的关键条款变成几个像素点。你问模型”这行小字写的什么”,它只能一本正经地胡说八道。

第二条路:切图(tiling / dynamic tiling)。InternVL 系列为代表,把大图按网格切成若干 448×448 的小块,分别编码再拼起来。这招确实缓解了分辨率问题,但引入了新的麻烦:切分规则复杂、跨块边界的信息被切断、token 数量随规则跳变,工程上一堆补丁。

还有第二个老大难问题:位置编码。文本是一维序列,用 1D-RoPE 没问题;但图像是二维的,视频是三维的(时间+空间),三种模态混在一个序列里,位置信息到底怎么编?当时主流做法是打补丁——Qwen-VL 用的是二维绝对位置编码,图像和视频的时间维度基本没人认真处理。

Qwen2-VL 的回答很直接:第一个问题用 Naive Dynamic Resolution(朴素动态分辨率)解决,第二个问题用 M-RoPEMultimodal Rotary Position Embedding,多模态旋转位置编码)解决。注意这个”Naive”,是作者自己起的名字,意思就是”不玩任何花活”。后面我们会看到,这种朴素恰恰是它最厉害的地方。

二、Naive Dynamic Resolution:最优雅的解法往往最朴素#

1. 它到底”Naive”在哪#

一句话:图片是什么分辨率,就用什么分辨率编码,输出多少个 token 就是多少个 token,不插任何手

没有分辨率桶(bucket),没有切图规则,没有 aspect ratio 对齐表。ViT 直接接受任意尺寸、任意长宽比的输入,出来多少视觉 token 就送多少进 LLM。训练时把不同分辨率的图像打包进同一个序列(packing),控制打包总长度不撑爆显存就行。

你可能会问:ViT 不是只能吃固定尺寸吗?这就是 Qwen2-VL 对视觉编码器动的第一刀:把 ViT 里的绝对位置嵌入整个拿掉,换成 2D-RoPE(二维旋转位置编码)。旋转位置编码天生不依赖绝对位置,换成二维版本后,ViT 就能自然处理任意分辨率输入了。

2. 几个关键数字#

  • patch_size = 14:ViT 的切块粒度是 14×14 像素。
  • 2×2 压缩:ViT 后面接一个 MLP,把相邻 2×2 的 token 合并成 1 个。所以进 LLM 的 token 粒度实际是 28×28 像素。论文里举的例子:一张 224×224 的图,最终只有 66 个 token 进语言模型。
  • 像素上下限:推理时用 min_pixels = 100×28×28max_pixels = 16384×28×28 控制每张图的 token 预算,既保证小图不被压死,又防止巨图把上下文撑爆。
  • 平均消耗:动态分辨率下每张图平均 1924 个 token。

3. 消融实验:动态分辨率是真能打,不是玄学#

论文给了一个特别干净的对照实验(Qwen2-VL-7B):

方案平均 token 数InfoVQARealWorldQAOCRBenchMMMU
固定 64 tokens6428.8556.4757253.33
固定 576 tokens57665.7265.8882852.78
固定 1600 tokens160074.9969.5482452.89
固定 3136 tokens313677.2770.5978653.44
动态分辨率192475.8970.0786653.44

三个结论值得细品:

  1. 没有任何一个固定分辨率是全能的。OCR 类任务吃分辨率(64 token 时 OCRBench 只有 572,3136 token 时 786),但固定 3136 token 反而不如动态的 866——因为把小图强行放大会引入分布外(OOD)样本。
  2. 动态方案用平均 1924 个 token(比 3136 少 39%)拿到了全面领先的结果。省 token 就是省推理成本,这就是真金白银。
  3. MMMU 对所有分辨率方案几乎无感(都在 53 上下)。作者判断 MMMU 的瓶颈是推理能力而不是视觉分辨率——这个判断非常诚实,也解释了为什么后面 72B 在 MMMU 上还是追不上 GPT-4o。

还有一个细节:min_pixels 调太高,OCRBench 反而暴跌,因为小图被过度放大后变得分布外;而 MMMU 几乎不受影响。这种”哪个超参数管哪个任务”的细致消融,是这篇论文工程含金量的体现。

三、M-RoPE:一套位置编码,把时间、高度、宽度全管了#

1. 解决什么问题#

文本是一维的,图像是二维的,视频是三维的。三种模态混进同一个 Transformer 序列,位置编码怎么办?以前的做法是打补丁:文本用 1D,图像单独用 2D 绝对位置编码,视频……再说吧。结果就是位置信息表达不统一,而且图像视频占用的位置 ID 数值巨大,外推到长序列时直接崩。

2. 怎么做的#

M-RoPE 的核心思想:把原来一维的位置 ID 分解成三个独立分量——时间(temporal)、高度(height)、宽度(width),每个分量各自做 RoPE,然后拼起来。

分配规则简洁得有点过分:

  • 纯文本:三个分量取完全相同的 ID。这时候 M-RoPE 数学上严格退化成普通 1D-RoPE,文本能力一点不损失。
  • 图像:时间分量固定为常数,高度和宽度分量按 token 在二维网格里的位置赋值。
  • 视频:时间分量逐帧递增,高度宽度分量跟图像一样。
  • 模态切换:下一个模态的 ID 从上一个模态的最大 ID + 1 开始接着编。

这套设计带来一个被很多人忽略但极其重要的收益:图像和视频的位置 ID 数值被大幅压缩了。原来一张大图要占用几千个一维位置 ID,现在在高度/宽度分量里只需要网格的行列数。位置 ID 小了,RoPE 的外推区间就宽了——论文实测,视频训练时 token 上限只有 16K,推理时拉到 80K token 依然稳定,没有崩。

3. 消融:M-RoPE 到底值不值#

在 Qwen2-1.5B + ViT-L 的小模型上对比 1D-RoPE 和 M-RoPE:

基准1D-RoPEM-RoPE
MathVista39.243.4
MMBench58.660.6
DocVQA82.582.8
TextVQA71.371.8
NextQA(视频)43.946.0
STAR(视频)55.557.9
PerceptionTest(视频)46.647.4

规律很明显:图像任务小幅提升,视频任务提升最大。这完全符合直觉——时间分量就是为视频设计的。MathVista 涨了 4.2 分倒有点意外,作者没展开解释,我猜跟几何题里图形的空间位置表达变好了有关。

四、视频理解:图像就是”两帧一样的视频”#

Qwen2-VL 在视频上做了一个特别漂亮的统一化处理:图片和视频用同一套编码管线,图像被视为”两张完全相同的帧”。这样模型不需要区分”我在看图”还是”我在看视频”,一套权重通吃。

具体配置:

  • 采样频率 2 fps,平衡时间覆盖和 token 消耗。
  • 深度为 2 的 3D 卷积:ViT 不再只处理 2D 图像块,而是处理时空管(spatiotemporal tube),相邻两帧在时间维上被卷积合并。效果是:同样的序列长度能塞进两倍的帧数
  • 每个视频的 token 预算封顶 16384:帧数多的时候自动降低每帧分辨率,帧数少就给每帧更高分辨率,动态平衡。
  • 评测 Video-MME 时每个视频最多抽 768 帧。

这套组合拳的效果:Qwen2-VL-72B 可以理解 超过 20 分钟 的长视频。这在 2024 年 9 月是相当能打的——当时大多数开源模型还在 1-2 分钟的视频上挣扎。

视频 benchmark 上,72B 的 EgoSchema 拿到 77.9,超过 GPT-4o 的 72.2;Video-MME 拿到 71.2(带字幕 77.8),跟 GPT-4o 的 71.9/77.2 基本打平。唯一明显压过它的是 Gemini 1.5 Pro(75.0/81.3)——毕竟人家靠超长上下文吃饭,视频是看家本领,这个差距不丢人。

五、训练配置:三个尺寸、三个阶段、1.4 万亿 token#

1. 模型家族#

Qwen2-VL 一口气发了三个尺寸,视觉编码器全部共用同一个 675M 的 ViT(不管 LLM 多大,视觉侧算力恒定,这个设计对部署很友好):

型号ViTLLM定位
Qwen2-VL-2B675M1.5B端侧部署
Qwen2-VL-7B675M7.6B性价比主力(总参数约 8B,所以摘要里也叫 8B)
Qwen2-VL-72B675M72B旗舰,推理和 Agent 能力最强

2. 三阶段训练#

  • 第一阶段(约 600B token):只训 ViT,做图文对齐、OCR、分类。ViT 从 DFN 预训练权重初始化,LLM 直接用 Qwen2。
  • 第二阶段(再加 800B token):全参数训练,加入交错图文(interleaved)、VQA、多任务数据。预训练总量 1.4T token(文本+图像 token 合计),且只对文本 token 算 loss。
  • 第三阶段:冻住 ViT,只做指令微调(SFT),用 ChatML 格式的多轮对话,覆盖图像问答、文档解析、多图对比、视频理解、流式对话和 Agent 交互。

数据知识截止到 2023 年 6 月。训练基建跑在阿里云 PAI 灵骏上,72B 用的 1F1B 流水线调度(作者还特意提了一句:interleaved 1F1B 实测更慢,这种踩坑细节一般论文都不写)。

3. Scaling Law#

论文专门探讨了大视觉语言模型(LVLM, Large Vision-Language Model)的 scaling law:模型从 2B 到 72B,各类能力普遍提升,其中数学能力对参数量最敏感,而 OCR 类任务连 2B 小模型都能保持不错水平(OCRBench 2B 也有 809 分)。二阶段预训练里数据量增加普遍带来收益,AI2D 和 InfoVQA 随图文数据量稳步上升。这部分更像定性观察,没有给出拟合公式,但方向性结论对后来者很有参考价值。

六、成绩单时间:72B 跟 GPT-4o 掰手腕,有赢有输#

直接上 72B 的核心战绩,对比 GPT-4o 和 Claude 3.5 Sonnet:

基准Qwen2-VL-72BGPT-4oClaude 3.5 Sonnet
DocVQA96.592.895.2
InfoVQA84.5
ChartQA88.385.790.8
OCRBench877736788
TextVQA85.5
MathVista70.563.867.7
MMMU64.569.168.3
MMMU-Pro46.251.951.5
MMVet74.069.166.0
HallBench58.155.049.9
RealWorldQA77.875.460.1
MME(sum)2482.72328.71920.0

几个判断:

赢的地方:文档理解和 OCR 是全面碾压。OCRBench 877 对 GPT-4o 的 736,领先 19%;中文视觉指代消解 VCR-zh 上更夸张,Qwen2-VL 拿 65.4,GPT-4o 只有 14.9,Claude 3.5 干脆只有 1.0——中文图文理解这块,开源模型第一次把闭源旗舰按在地上摩擦。多语言 OCR 内部测试里,除了阿拉伯语,日韩法德意俄越全部超过 GPT-4o。数学推理 MathVista 70.5 也是全场最高。

输的地方:MMMU 64.5 对 69.1,MMMU-Pro 46.2 对 51.9,学院派知识推理还是差一口气。结合第二节的消融(MMMU 对分辨率不敏感),说明这块的差距不在”看”,而在”想”——差距在 LLM 侧的推理能力和多模态知识密度上。这个短板要到 Qwen2.5-VL 才被真正补上。

值得一提的 2B 和 7B:7B 的 OCRBench 866、DocVQA 94.5,基本贴着 72B 的屁股;2B 也有 DocVQA 90.1、OCRBench 809。小模型的 OCR 能力没怎么缩水,这对端侧落地太重要了。

七、Visual Grounding 和 Agent:从”看懂”到”动手”#

1. Visual Grounding:坐标归一化到 [0, 1000)#

定位任务的输出格式很简单:bounding box 坐标归一化到 [0, 1000) 区间,用左上角+右下角两个点表示,配特殊分隔符把短语和框绑起来。RefCOCO 三件套上,72B 的 RefCOCO val 拿到 93.2,超过 InternVL2-76B 的 92.2,也压过了 ONE-PEACE、UNINEXT-H 这些专用 grounding 模型。一个通用 VLM 的 grounding 能力打赢专用模型,这在当时是个标志性信号。

2. Visual Agent:给模型装上手脚#

这是 Qwen2-VL 埋的一颗大种子。论文把 Agent 任务统一建模成”观察→推理→行动→接收结果→循环”的决策链,定义了 tap、input、swipe 等 UI 动作和函数调用格式。成绩相当能打:

  • 手机 UI 操作(AITZ):精确匹配率 72.1,GPT-4o 只有 35.3,之前的 SoTA 是 47.7。
  • 机器人操作(ALFRED):成功率 67.8,追平专用模型 SoTA(67.7),配合 SAM 做精细操作。
  • 函数调用:精确匹配 53.2 超过 GPT-4o 的 50.0。
  • 导航(R2R/REVERIE):诚实地承认落后于专用模型——纯靠图像建模 3D 地图还是太难了。

作者分析 GPT-4o 输在 UI 任务上的原因:工具调用偏保守、中文 OCR 弱。这个观察挺有意思,说明 Agent 能力的天花板很大程度由视觉感知(尤其 OCR)决定,而这恰恰是 Qwen2-VL 的长板。

收尾:我的一点看法#

先说”Naive”这个命名,我是真喜欢。 切图派把工程复杂度越堆越高的时候,Qwen2-VL 说”我什么都不切,ViT 你自己消化”,然后靠 2D-RoPE 改造 ViT 把路走通了。回头看,所有后续的主流方案(包括 Qwen2.5-VL 自己)都收敛到了这条路上。真正好的设计不是加出来的,是删出来的——把分辨率桶删掉、把绝对位置嵌入删掉,模型反而更强了。

M-RoPE 的价值被普遍低估了。 大部分人只盯着它统一了多模态位置编码,其实更关键的是它把位置 ID 数值压缩下来,换来了 80K token 的外推能力。没有这个,后面 Qwen2.5-VL 做长视频流式理解、Qwen3-VL 做超长上下文,地基都不存在。一个位置编码的改动撬动了整条产品线的演进空间,这就是典型的”架构层投资”。

当然,短板也摆在那。 MMMU 输 GPT-4o 4.6 分,说明”看得清”不等于”想得明白”;视频上跟 Gemini 1.5 Pro 还有 4 分差距;Agent 评测里不少是内部数据集,可复现性要打问号。另外论文主表里没有直接对比 LLaVA 系列的数字,竞品对比的完整性上留了点小心思。

放回 Qwen 多模态的演进线里看,Qwen2-VL 是分水岭。 Qwen-VL(2023)验证了”ViT + LLM 能干活”,但固定分辨率+二维绝对位置编码处处受限;Qwen2-VL 把骨架换成了动态分辨率 + M-RoPE + 图像视频统一范式,从此 Qwen 系多模态的底层格局定型;Qwen2.5-VL 在这个骨架上做加法——窗口注意力、原生动态分辨率工程化、更强的 grounding 和 Agent;到 Qwen3-VL 则是全面堆料加推理能力补课。可以说,没有 Qwen2-VL 这两个”朴素”的决定,就没有后面两代的顺风顺水。这篇论文不一定最惊艳,但它是整条线上承上启下的关键一棒

附:核心数据速查#

架构与训练参数

项目数值
模型规模2B / 7B / 72B(LLM 分别为 1.5B / 7.6B / 72B)
视觉编码器675M ViT,全系列共用,patch_size=14
ViT 位置编码去掉绝对位置嵌入,改用 2D-RoPE
token 压缩MLP 将 2×2 token 合并为 1,有效粒度 28×28 像素
动态分辨率上下限min_pixels = 100×28×28,max_pixels = 16384×28×28
平均图像 token 数1924
视频采样2 fps,深度 2 的 3D 卷积,单视频 token 上限 16384
长视频能力20 分钟以上,训练 16K 上下文外推至 80K
预训练数据三阶段合计约 1.4T token(600B + 800B),仅文本 token 算 loss
LLM / ViT 初始化Qwen2 / DFN 预训练 ViT
知识截止2023 年 6 月

核心 Benchmark(Qwen2-VL-72B)

基准72B7B2BGPT-4o
DocVQA96.594.590.192.8
OCRBench877866809736
ChartQA88.383.073.585.7
TextVQA85.584.379.7
MathVista70.558.243.063.8
MMMU64.554.141.169.1
Video-MME(无字幕)71.263.355.671.9
EgoSchema77.966.754.972.2
RefCOCO val93.291.787.6
AITZ 精确匹配72.135.3

关键概念清单

  • Naive Dynamic Resolution(朴素动态分辨率):不预设分辨率、不切图,ViT 直接处理任意尺寸图像,输出可变数量视觉 token。
  • M-RoPE(Multimodal Rotary Position Embedding):将位置 ID 分解为时间、高度、宽度三个分量,统一编码文本/图像/视频的位置;文本时退化为 1D-RoPE。
  • 2D-RoPE:ViT 内部的二维旋转位置编码,替代绝对位置嵌入,是任意分辨率输入的前提。
  • 3D 卷积(深度 2):视频处理中沿时间维合并相邻帧,同序列长度容纳双倍帧数。
  • Packing(序列打包):训练时把不同分辨率的图像打包进同一序列,控制总长度以节省显存。
  • 图像即双帧视频:图像被视为两张相同帧,实现图像/视频编码管线统一。
  • Visual Grounding(视觉定位):输出归一化到 [0,1000) 的 bounding box 坐标,RefCOCO 系列超越专用模型。
  • Visual Agent(视觉智能体):观察-行动循环范式,覆盖手机 UI 操作、机器人控制、导航等任务。
分享

如果这篇文章对你有帮助,欢迎分享给更多人!

Qwen2-VL:不切图也赢麻
https://mizuki-eaf.pages.dev/posts/qwen/qwen2-vl不切图也赢麻/
作者
无名之子
发布于
2026-07-23
许可协议
CC BY-NC-SA 4.0

部分信息可能已经过时

目录