论文Qwen2.5-VL Technical ReportarXiv:2502.13923Qwen Team, Alibaba Group2025年2月代码仓库https://github.com/QwenLM/Qwen2.5-VL模型权重https://huggingface.co/Qwen目录一、前言Qwen 视觉语言模型的演进脉络二、整体架构纵览三、视觉编码器的深度重设计3.1 从零训练原生动态分辨率 ViT3.2 Window Attention从 O(N²) 到 O(N)3.3 架构对齐 LLMSwiGLU 和 RMSNorm3.4 视频的 3D Patch 分区四、MLP 视觉-语言合并器五、MRoPE多模态旋转位置编码5.1 标准 RoPE 回顾5.2 MRoPE三维分解5.3 Qwen2.5-VL 的改进时间维度与绝对时间对齐5.4 MRoPE 与其他方案的对比六、动态分辨率与动态帧率6.1 空间维度Native Dynamic Resolution6.2 时间维度Dynamic FPS Sampling七、LLM 主干Qwen2.5 的多模态适配八、预训练数据工程的系统性努力8.1 数据规模的大幅扩展8.2 交错图文数据的质量控制8.3 绝对坐标的 Grounding 数据8.4 文档全解析数据与 QwenVL HTML 格式8.5 OCR 与视频数据九、后训练SFT 与 RLHF9.1 指令微调SFT9.2 强化学习对齐十、关键能力详解10.1 精准目标定位10.2 超长视频理解10.3 计算机与手机智能体十一、基准测试表现十二、模型规模系列的设计哲学十三、工程实践推理与微调13.1 快速上手推理13.2 使用 Flash Attention 2 加速13.3 参数高效微调LoRA13.4 量化部署十四、与 Qwen2-VL 的系统性对比十五、局限性与未来方向十六、总结参考资料一、前言Qwen 视觉语言模型的演进脉络Qwen 系列视觉语言模型的演进是一条清晰的技术升级路线。2023年8月发布的 Qwen-VL 首次将视觉编码器集成到 Qwen 语言模型上支持 448×448 分辨率具备基本的视觉问答与 OCR 能力。2024年9月Qwen2-VL 带来了关键性突破引入了能处理任意分辨率的动态分辨率机制以及支持多模态位置编码的 MRoPE模型规模扩展至 2B/8B/72B。2025年1月Qwen2.5-VL 正式发布在此基础上做出了若干直击痛点的系统性改进。Qwen2.5-VL 的技术贡献可归纳为四点在视觉编码器中引入 Window Attention 以优化推理效率引入动态帧率采样Dynamic FPS Sampling将动态分辨率扩展到时间维度将 MRoPE 的时间维度与绝对时间对齐以及大幅扩展预训练数据规模从 1.2 万亿 token 增加到约 4.1 万亿 token。本文将逐一拆解这些技术改进背后的原理并深入探讨模型架构、位置编码设计、数据工程以及训练流程的每一个细节。二、整体架构纵览Qwen2.5-VL 的整体架构继承了当前大视觉语言模型LVLM的主流范式一个视觉编码器、一个跨模态投影层Vision-Language Merger、以及一个大语言模型解码器。具体而言整个架构由三大组件构成以 Qwen2.5 LLM 为底座的语言模型、经过彻底重设计的 ViT 视觉编码器、以及基于 MLP 的视觉-语言合并器。下表是三个规模模型的详细配置来自原论文 Table 1值得注意的几点ViT 部分在三个规模上完全共享同一套参数配置32层1280维16头三个模型的差异主要体现在 LLM 主干上3B 模型使用了 Embedding Tying输入输出 embedding 共享而 7B 和 72B 没有三个模型均在 4.1T token 上进行了预训练。三、视觉编码器的深度重设计3.1 从零训练原生动态分辨率 ViT传统视觉语言模型大多直接复用 CLIP 预训练的 ViT例如 LLaVA 系列基于 CLIP ViT-L/14。这类方案有一个根本限制CLIP 的预训练使用固定分辨率通常 224×224 或 336×336在高分辨率图像或比例差异较大的输入上表现有限。Qwen2.5-VL 选择从头训练一个能够原生处理任意分辨率的 ViT。在训练和推理阶段输入图像的高度和宽度都被调整为28的倍数然后以步长14切分成 patch生成一组图像特征。这意味着一张 448×448 的图像会产生 (448/14)×(448/14) 32×32 1024 个 patch一张 1120×840 的图像会产生 80×60 4800 个 patch图像的长宽比完整保留不发生失真整个 ViT 的训练分为多个阶段首先进行 CLIP 风格的视觉-语言对比预训练随后进行视觉-语言对齐最后进行端到端微调。在训练过程中图像按照原始比例随机采样使模型能够泛化到各种分辨率输入。3.2 Window Attention从 O(N²) 到 O(N)这是 Qwen2.5-VL 在工程效率上最重要的改进之一。标准 Transformer 的 Self-Attention 计算复杂度为 O(N²)其中 N 是 patch 数量。对于高分辨率图像N 可能达到数千使得计算开销极为可观。为了缓解这一问题引入了 Window Attention在大多数层中计算复杂度从二次方降为与 patch 数量成线性关系。在架构设计上只有四层使用全局 Self-Attention其余层使用最大窗口大小为 112×112对应 8×8 个 patch的 Window Attention。小于 112×112 的区域直接处理不进行填充保留原始分辨率。具体来说窗口注意力的工作方式是将图像分割成若干 112×112 的窗口在每个窗口内部独立计算自注意力不同窗口之间不互相注意。这样每个窗口最多处理 8×8 64 个 patch计算量恒定。全局注意力层第7、15、23、31层共4层则负责跨窗口的信息聚合提供全局上下文。为什么选择这四个位置放置全局注意力这与 ViT 中信息聚合的规律相关靠近中间和末尾的层更倾向于整合高层语义信息需要全局视野而底层特征提取层的局部计算通常已经足够。这种局部注意力 稀疏全局注意力的混合策略与 Longformer 等长序列模型的设计哲学一脉相承。3.3 架构对齐 LLMSwiGLU 和 RMSNorm为了精简网络结构、与 LLM 的设计原则保持一致ViT 采用 RMSNorm 进行归一化用 SwiGLU 作为激活函数。这一选择在工程上有着深远意义。传统 ViT 使用 LayerNorm GELU而现代 LLM包括 Qwen2.5普遍采用 RMSNorm SwiGLU。让 ViT 与 LLM 使用同构的计算单元不仅能提升硬件利用率相同算子融合更高效还能减少跨模态对齐的语义鸿沟。SwiGLU 的计算公式为其中 Swish(x) x · σ(x)相比 GELU 在门控机制上更灵活。RMSNorm 的计算公式为其中相比 LayerNorm 省去了均值计算既快又节省显存。3.4 视频的 3D Patch 分区对于视频输入使用了 3D patch 分区策略以 14×14 的图像 patch 作为基本单元与静态图像一致对于视频数据将相邻两帧合并为一组显著减少了输入语言模型的 token 数量。这意味着对于视频每两帧在时间维度上被打包成一个视觉块token 数量减半。这一设计在保持时序信息的同时大幅降低了序列长度是 Qwen2.5-VL 能够处理超长视频数小时的关键之一。四、MLP 视觉-语言合并器ViT 产生的 patch 特征数量非常庞大直接送入 LLM 代价极高。Qwen2.5-VL 采用了一种简单但有效的压缩方案将空间上相邻的 4 个 patch 特征组成一组拼接后通过一个两层 MLP 投影到与 LLM 文本 embedding 对齐的维度上。这个方法不仅降低了计算开销还提供了一种灵活的方式来动态压缩不同长度的图像特征序列。具体而言如果 ViT 输出 N 个 1280 维的 patch 特征Merger 将相邻 2×2 的 patch 拼接为 4×1280 5120 维的向量通过 MLP 投影为 LLM 隐层维度3B 为 20487B 为 358472B 为 8192最终得到 N/4 个 LLM token。这种 2×2 空间下采样在概念上类似于 PixelShuffle 操作保留了局部结构信息的同时压缩了序列长度。实际效果是一张 1120×1120 的高清图像ViT 会产生 6400 个 patch经 Merger 压缩后只有 1600 个 token 进入 LLM降低了 75% 的序列长度。五、MRoPE多模态旋转位置编码MRoPEMultimodal Rotary Position Embedding是 Qwen2-VL 引入的核心位置编码方案在 Qwen2.5-VL 中得到了重要升级。要理解 MRoPE需要先从标准 RoPE 说起。5.1 标准 RoPE 回顾RoPERotary Position Embedding由苏剑林提出其核心思想是将位置信息编码为旋转矩阵使得 query 和 key 的内积自然包含相对位置信息对于 d 维向量RoPE 将其分为 d/2 个二维旋转组第 i 个组的旋转角度为位置 m 处的旋转角为。这样内积只依赖于相对位置 (n-m)天然支持位置外推。5.2 MRoPE三维分解对于多模态输入文本 token 是一维的只有时间/序列维度而图像 token 是二维的高、宽视频 token 是三维的时间、高、宽。如何用统一的位置编码处理这三种数据MRoPE 将位置 embedding 分解为三个独立的组件时间temporal、高度height、宽度width。对于文本输入三个组件使用相同的位置 ID使 MRoPE 功能上等价于标准的 1D RoPE。对于图像时间 ID 在所有视觉 token 中保持不变常数而高度和宽度组件根据每个 token 在图像中的空间位置分配唯一 ID。对于视频时间 ID 随帧递增高度和宽度组件的分配方式与静态图像相同。设总维度为 dMRoPE 将维度三等分前 d/3 维负责时间维度中间 d/3 维负责高度后 d/3 维负责宽度。具体的 ID 分配如下文本 token位置为 ptemporal ID pheight ID pwidth ID p图像 token在图中位置为 (h, w)图像索引为 ttemporal ID t常数height ID hwidth ID w视频 token第 f 帧位置 (h, w)temporal ID f随帧增加height ID hwidth ID w这种设计的精妙之处在于文本 token 接受完整的 1D RoPE 语义三个维度的 ID 相同等价于标准 RoPE图像 token 的空间位置由 (h, w) 精确表达视频 token 同时编码了空间位置和帧序信息。相关源码实现class Qwen2_5_VLRotaryEmbedding(nn.Module): def __init__(self, dim, theta10000, deviceNone): super().__init__() self.dim dim self.theta theta # 预计算频率基础值 inv_freq # 这里的 dim 通常是 head_dim (例如 128) inv_freq 1.0 / (self.theta ** (torch.arange(0, dim, 2, dtypetorch.float32, devicedevice) / dim)) self.register_buffer(inv_freq, inv_freq, persistentFalse) def _get_cos_sin(self, inv_freq, position_ids, mrope_section, device, dtype): 核心逻辑根据 mrope_section 切分维度并计算 mrope_section 示例: [16, 24, 24] - 分别对应 T, H, W 的维度占比 # 1. 将 inv_freq 按照配置切分为三段对应 时间(T)、高度(H)、宽度(W) # 注意sum(mrope_section) dim // 2 inv_freq_sections torch.split(inv_freq, mrope_section) cos_list, sin_list [], [] # 2. 分别处理 T, H, W 三个维度的 position_id # position_ids 形状: [3, batch, seq_len] for i, section_inv_freq in enumerate(inv_freq_sections): p_ids position_ids[i].float() # [batch, seq_len] # 计算旋转角度: θ pos * inv_freq # 使用 einsum 或 outer product: [batch, seq_len] [section_dim] - [batch, seq_len, section_dim] freqs torch.einsum(bi,j-bij, p_ids, section_inv_freq) # RoPE 的标准做法将频率对称拼接以便后续进行 (x, -y) 旋转 emb torch.cat((freqs, freqs), dim-1) cos_list.append(emb.cos()) sin_list.append(emb.sin()) # 3. 将 T, H, W 的结果在维度上重新拼接成完整的 head_dim cos torch.cat(cos_list, dim-1) # [batch, seq_len, head_dim] sin torch.cat(sin_list, dim-1) return cos.to(dtype), sin.to(dtype) def forward(self, x, position_ids, mrope_section): # x: [batch, seq_len, num_heads, head_dim] # mrope_section: 每个维度的切分长度例如 [16, 24, 24] cos, sin self._get_cos_sin( self.inv_freq, position_ids, mrope_section, x.device, x.dtype ) # 增加 head 维度以便广播: [batch, seq_len, 1, head_dim] return cos.unsqueeze(2), sin.unsqueeze(2) # --- 应用函数 (用于旋转 Q 和 K) --- def apply_multimodal_rotary_pos_emb(q, k, cos, sin): # 标准的 RoPE 旋转变换 # q, k: [batch, seq_len, num_heads, head_dim] # cos, sin: [batch, seq_len, 1, head_dim] def rotate_half(x): x1 x[..., : x.shape[-1] // 2] x2 x[..., x.shape[-1] // 2 :] return torch.cat((-x2, x1), dim-1) q_embed (q * cos) (rotate_half(q) * sin) k_embed (k * cos) (rotate_half(k) * sin) return q_embed, k_embed5.3 Qwen2.5-VL 的改进时间维度与绝对时间对齐Qwen2-VL 的 MRoPE 存在一个根本性缺陷时间维度的位置 ID 与输入帧数绑定没有考虑内容变化的速度或视频中事件的绝对时间。举一个具体例子假设有两段视频视频 A 以 1 FPS 采样采样了 30 帧视频 B 以 30 FPS 采样也采样了 30 帧。在 Qwen2-VL 的 MRoPE 中两段视频都会分配时间 ID 0 到 29但实际上视频 A 跨越了 30 秒视频 B 只跨越了 1 秒。模型无从区分这一差异也无法理解事件发生在第几秒这类时间定位问题。Qwen2.5-VL 的解决方案是将时间 ID 直接对应到时间戳秒数而非帧索引。具体实现若某帧对应视频时刻 t 秒则其时间维度 ID 设为 round(t × scale_factor)。相邻帧之间的 ID 差值反映了真实的时间间隔。这样以 1 FPS 采样的视频相邻帧的时间 ID 差为约 1.0秒而以 30 FPS 采样的视频相邻帧的时间 ID 差为约 0.033约 1/30 秒。通过 MRoPE IDs 与时间戳的直接对齐模型可以通过时间维度 ID 之间的间隔来学习时间序列和速度最终获得定位特定时刻的能力而无需任何额外的计算开销。这个设计有三个深远的影响第一模型在训练时见到了不同 FPS 的视频但由于时间 ID 是绝对时间不同 FPS 的视频能够共享一套一致的时序表示。第二模型能够从 ID 差值中推断这两帧之间过了多久进而理解快动作vs慢动作、近期事件vs远期事件。第三MRoPE 本身对序列长度的 ID 消耗比 1D RoPE 更为经济。对于长视频输入由于 MRoPE 本身对 ID 更为经济max_position_embeddings 可以直接修改为更大的值例如 64k。5.4 MRoPE 与其他方案的对比在位置编码设计的文献中存在多种处理多模态输入的方案。与 Vanilla RoPE直接将图像 token 序列化后拼接文本相比MRoPE 的空间编码精度要高得多图像的二维结构被显式保留。与 V2PE 等方案相比MRoPE 不需要额外的位置嵌入参数。与 RoPE-tie 相比MRoPE 在高度和宽度上使用独立的频率组避免了高宽信息的混叠。六、动态分辨率与动态帧率6.1 空间维度Native Dynamic Resolution传统方法如早期的 LLaVA将所有输入图像缩放到固定分辨率如 336×336这会导致两个问题高分辨率文档或图表细节丢失长宽比失真导致空间语义偏移。后续出现的动态分辨率方案如 LLaVA-HD、InternVL 的 Dynamic High Resolution通常是将图像切分成多个固定大小的子图分别送入 ViT然后拼接。这类方案虽然能处理更高分辨率但引入了人工的切分边界且序列长度急剧增加。Qwen2.5-VL 的原生动态分辨率方案更为干净图像被动态地转换为对应长度的 token 序列。与归一化坐标的传统方法不同模型直接使用输入图像的真实尺寸来表示边界框、点和其他空间特征使模型能够天然地学习到尺度信息。实现细节上训练时对图像的 token 数量设置了下界min_pixels 256 tokens约对应 224×224和上界max_pixels 16384 tokens约对应 1792×1792 或更高在这个范围内保持原始比例。推理时可通过设置min_pixels和max_pixels参数灵活控制精度与效率的权衡。6.2 时间维度Dynamic FPS Sampling在视频理解中帧率FPS的选择历来是个权衡问题低 FPS 节省计算但可能错过快速动作高 FPS 保留细节但导致 token 爆炸。Qwen2.5-VL 将动态分辨率的思想迁移到时间维度上提出动态 FPS 采样通过适应可变帧率模型能够更好地捕获视频内容的时序动态。训练时使用不同 FPS 的视频低至 1 FPS高至原始帧率使模型适应各种采样密度。配合时间维度绝对时间对齐的 MRoPE无论以何种 FPS 采样模型都能理解事件发生的真实时间节点。这套机制使 Qwen2.5-VL 能够处理超过一小时的超长视频并能进行秒级的事件定位如视频第 43:27 处发生了什么。七、LLM 主干Qwen2.5 的多模态适配Qwen2.5-VL 的语言模型主干直接使用 Qwen2.5 系列的预训练权重初始化这保证了语言能力的传承。在多模态适配上主要的改动是将标准 1D RoPE 替换为上文介绍的 MRoPE。LLM 部分采用了现代 LLM 的标准配置Grouped Query AttentionGQA3B 的 KV 头数为27B 为472B 为8全局注意力头数均多于 KV 头数大幅降低 KV Cache 显存需求。RMSNorm Pre-Normalization在每个子层前做归一化训练更稳定。SwiGLU FFN与 ViT 保持一致的激活函数选择。词表大小 151646包含 Qwen 系列的扩展 token包括工具调用相关 token。一个值得关注的设计决策是3B 模型使用了Embedding Tying即输入 embedding 矩阵和输出 LM Head 共享权重。这在小模型上能有效减少参数量词表 151646 × 2048 ~3 亿参数而大模型7B/72B则不使用 tying让模型有更大的表达自由度。八、预训练数据工程的系统性努力8.1 数据规模的大幅扩展与 Qwen2-VL 相比预训练数据量从 1.2 万亿 token 大幅扩展至约 4 万亿 token。预训练数据集通过多种方法构建包括清洗原始网络数据、合成数据等涵盖图像标题、交错图文数据、OCR 数据、视觉知识、多模态学术问题、定位数据、文档解析数据、视频描述、视频定位和智能体交互数据。8.2 交错图文数据的质量控制简单的图文配对数据如 alt-text 图片质量参差不齐大量网页图片与文本之间的关联是装饰性的而非语义性的。Qwen2.5-VL 开发了专门的四阶段打分系统来筛选高质量交错图文数据文本质量评估文本本身的质量。图文相关性较高分数意味着图像能有意义地补充、解释或拓展文本而非仅起装饰作用。信息互补性较高分数反映图像和文本之间更大的互补信息量各自提供独特细节共同构成完整叙事。信息密度均衡性较高分数意味着图像和文本之间信息分布更加均衡避免一方信息过多。8.3 绝对坐标的 Grounding 数据这是 Qwen2.5-VL 能够准确定位目标的关键数据工程决策。传统 LVLM 训练中bounding box 坐标通常归一化到 [0, 1]相对坐标。Qwen2.5-VL 转而使用绝对坐标直接使用图像的真实像素尺寸来表示边界框和点。这样做的好处是模型能够从绝对尺寸中学习到物体的真实比例信息输出可以直接用于下游任务无需反归一化配合原生动态分辨率不同分辨率图像的空间关系得以准确保留。为了增强泛化能力训练数据集扩展到超过 10000 个目标类别并合成了查询中不存在的目标类别以及包含每种目标多个实例的图像数据。grounding 数据支持多种格式输出包括 XML、JSON 以及自定义格式。8.4 文档全解析数据与 QwenVL HTML 格式文档理解是 Qwen2.5-VL 的一大亮点。传统文档解析依赖版面分析、文字提取、图表解读等多个独立模型的流水线。Qwen2.5-VL 的目标是用一个统一的通用模型完成整个流程。为此团队构建了一套QwenVL HTML 格式将文档中的各类元素段落、表格、图表、公式、图像、乐谱、化学式统一表示为带有 bbox 坐标的 HTML 结构。例如htmlbody !-- 段落带坐标 -- p />十二、模型规模系列的设计哲学Qwen2.5-VL 的 3B/7B/72B 三个规模体现了一种明确的产品矩阵逻辑3BEdge AI面向移动端、边缘设备使用 Embedding Tying 进一步压缩参数。LLM 层数最多36层但隐层维度最小2048尝试以深而窄的架构在小参数量下保持能力。7B均衡部署适合中等算力的服务端部署单卡 A100 40G 可运行 BF16 版本在性能和效率之间取得较好平衡是社区最广泛使用的规模。72B旗舰性能追求极致性能与闭源旗舰模型GPT-4o、Claude 3.5 Sonnet对标。需要多卡部署。三个规模共享同一个 ViT1280 hidden32 层差异完全在 LLM 主干这意味着视觉感知能力在三个规模上是一致的规模带来的增益主要来自更强的语言推理与知识能力。十三、工程实践推理与微调13.1 快速上手推理安装依赖需要 Transformers ≥ 4.49.0pip install githttps://github.com/huggingface/transformers accelerate pip install qwen-vl-utils[decord]标准推理代码来自 HuggingFace 官方页面from transformers import Qwen2_5_VLForConditionalGeneration, AutoProcessor from qwen_vl_utils import process_vision_info model Qwen2_5_VLForConditionalGeneration.from_pretrained( Qwen/Qwen2.5-VL-7B-Instruct, torch_dtypeauto, device_mapauto ) processor AutoProcessor.from_pretrained(Qwen/Qwen2.5-VL-7B-Instruct) # 构建消息支持图像、视频、文本混合 messages [ { role: user, content: [ {type: image, image: https://example.com/image.jpg}, {type: text, text: 描述这张图片}, ], } ] # 预处理 text processor.apply_chat_template( messages, tokenizeFalse, add_generation_promptTrue ) image_inputs, video_inputs process_vision_info(messages) inputs processor( text[text], imagesimage_inputs, videosvideo_inputs, paddingTrue, return_tensorspt, ).to(cuda) # 生成 generated_ids model.generate(**inputs, max_new_tokens512) output_text processor.batch_decode( generated_ids[:, inputs.input_ids.shape[1]:], skip_special_tokensTrue )[0] print(output_text)控制 token 数量精度/效率权衡# 减少 token 数量提升推理速度 processor AutoProcessor.from_pretrained( Qwen/Qwen2.5-VL-7B-Instruct, min_pixels256 * 28 * 28, # 最小约 200K 像素 max_pixels1280 * 28 * 28 # 最大约 1M 像素默认 )视频推理示例包含动态帧率采样配置messages [ { role: user, content: [ { type: video, video: /path/to/video.mp4, max_pixels: 360 * 420, # 每帧分辨率 fps: 1.0, # 动态帧率 }, {type: text, text: 这段视频在 2 分 30 秒处发生了什么}, ], } ]13.2 使用 Flash Attention 2 加速对于多图像和视频场景强烈建议启用 Flash Attention 2model Qwen2_5_VLForConditionalGeneration.from_pretrained( Qwen/Qwen2.5-VL-7B-Instruct, torch_dtypetorch.bfloat16, attn_implementationflash_attention_2, device_mapauto, )Flash Attention 2 通过分块计算和 IO 感知的内存访问模式将注意力计算的显存开销从 O(N²) 降至 O(N)在长序列下效果尤为显著。13.3 参数高效微调LoRA对于下游任务微调LoRA 是最常用的参数高效方法。推荐配置from peft import LoraConfig, get_peft_model lora_config LoraConfig( r64, lora_alpha128, target_modules[ q_proj, v_proj, k_proj, o_proj, gate_proj, up_proj, down_proj ], lora_dropout0.05, biasnone, task_typeCAUSAL_LM )是否微调 ViT 视觉编码器是一个重要选择。对于领域偏移较大的任务如医学图像、卫星图像建议解冻 ViT 顶部若干层对于文档、通用图像任务通常只微调 LLM 部分即可。视觉编码器的学习率建议设为 LLM 学习率的 1/5 到 1/10。13.4 量化部署官方提供 AWQ 量化版本INT4显存需求大幅降低# 使用 AWQ-INT4 量化版本 model Qwen2_5_VLForConditionalGeneration.from_pretrained( Qwen/Qwen2.5-VL-7B-Instruct-AWQ, torch_dtypetorch.float16, device_mapauto )7B AWQ 版本约需 8GB 显存可在单张 RTX 3080 上运行。也可使用bitsandbytes进行 4bit 量化from transformers import BitsAndBytesConfig bnb_config BitsAndBytesConfig( load_in_4bitTrue, bnb_4bit_use_double_quantTrue, bnb_4bit_quant_typenf4, bnb_4bit_compute_dtypetorch.bfloat16 ) model Qwen2_5_VLForConditionalGeneration.from_pretrained( Qwen/Qwen2.5-VL-7B-Instruct, quantization_configbnb_config, device_mapauto )十四、与 Qwen2-VL 的系统性对比维度Qwen2-VLQwen2.5-VLViT 设计标准 Full Attention ViTWindow Attention 稀疏 Full Attention注意力复杂度O(N²)接近 O(N)归一化LayerNormRMSNorm激活函数GELUSwiGLU时间位置编码帧索引递增绝对时间戳对齐动态帧率训练否是预训练数据量1.2T tokens4.1T tokens坐标表示相对坐标绝对坐标文档解析基础 OCR全要素 HTML 格式解析视频最大时长约30分钟超过1小时参数规格2B/8B/72B3B/7B/32B/72B十五、局限性与未来方向尽管 Qwen2.5-VL 在多个方面取得了显著进步仍存在若干值得关注的局限细粒度时序理解的天花板虽然绝对时间对齐的 MRoPE 能够进行秒级定位但对于需要毫秒级精度的任务如动作识别的精确边界仍有提升空间。超长上下文的信息遗忘处理一小时视频时仍然面临 Transformer 长程依赖的挑战。当前的解决方案主要是通过低帧率采样减少 token 数量这不可避免地丢失了部分细节。MRoPE 的频率分配问题Qwen3-VL 的技术报告后来指出将 embedding 维度分块为时间t、水平h和垂直w组会导致频率谱不均衡影响长视频理解并在 Qwen3-VL 中通过交错式 MRoPEInterleaved MRoPE加以改进。这说明 Qwen2.5-VL 的 MRoPE 设计仍有进一步优化的空间。幻觉问题与所有当前的大视觉语言模型一样Qwen2.5-VL 在某些场景下仍会产生视觉幻觉声称图像中存在实际不存在的内容在细节丰富或低质量图像上尤为明显。开放词汇检测的泛化对于训练集中未见过的目标类别精准定位的准确率仍有下降。后续的 Qwen3-VL 在 Qwen2.5-VL 基础上引入了 DeepStack 跨层融合机制、交错式 MRoPE、以及显式时间戳 token进一步弥补了这些短板。十六、总结完整数据流向从输入到输出输入阶段文本直接 token 化生成文本 Token 序列图像按14×14切分为 Patch生成视觉 Token 序列视频逐帧切分为 Patch生成时序视觉 Token 序列视觉编码阶段图像 / 视频 Patch 输入视觉编码器通过分层 Window Attention 提取视觉特征视觉特征经空间合并 MLP 投影映射到 LLM 语义空间多模态融合阶段文本 Token 与视觉 Token 拼接生成统一的多模态输入序列为每个 Token 分配 MRoPE 三维位置 ID文本(p,p,p)、图像(t,h,w)、视频(f,h,w)LLM 解码阶段多模态序列输入 Qwen2.5 LLM通过 MRoPE 编码位置信息自注意力计算 前馈层处理生成文本回答总而言之Qwen2.5-VL 是一个兼顾理论深度和工程落地的高质量开源多模态大模型。其技术贡献可以归纳为两个维度效率维度Window Attention 将 ViT 计算复杂度从二次方降为线性使高分辨率图像处理成为可能2×2 MLP Merger 以 75% 的 token 压缩率在效率和信息保留之间取得平衡3B/7B/72B 的模型矩阵覆盖了从边缘 AI 到高算力平台的全场景需求。能力维度时间维度绝对时间对齐的 MRoPE 赋予模型真正的时序理解能力原生动态分辨率和动态 FPS 使模型能够以最自然的方式感知视觉世界绝对坐标的 Grounding 数据 HTML 格式文档解析数据使精准定位和文档全解析成为模型的核心内置能力。对于工程师和研究者来说Qwen2.5-VL 提供了一个优秀的多模态基础模型起点其开放的权重、成熟的工具链HuggingFace Transformers、vLLM、LMDeploy 均有完整支持和丰富的社区生态使其成为 2025 年多模态 AI 应用开发的重要基石。参考资料Bai et al.,Qwen2.5-VL Technical Report, arXiv:2502.13923, 2025Wang et al.,Qwen2-VL: Enhancing Vision-Language Models Perception of the World at Any Resolution, arXiv:2409.12191, 2024Su et al.,RoFormer: Enhanced Transformer with Rotary Position Embedding, 2024QwenLM GitHub: https://github.com/QwenLM/Qwen2.5-VLQwen2.5-VL HuggingFace Hub: https://huggingface.co/Qwen/Qwen2.5-VL-72B-InstructQwen Team Blog: https://qwenlm.github.io/blog/qwen2.5-vl/