跳到主要内容编程语言AI算法
Qwen3-VL 模型架构与训练流程
Qwen3-VL 模型提供稠密型和混合专家型两种变体,原生支持 256K token 交错序列,适用于长文档、图像序列和视频推理。架构创新包括增强的交错 MRoPE 位置编码、SigLIP-2 视觉编码器、显式文本时间戳及 DeepStack 视觉 - 语言融合机制。训练涵盖预训练四阶段及后训练策略,数据包含高质量图文、OCR 及长文档。评测显示其在视觉问答、多模态推理、文档理解及视频理解等任务中表现优异,尤其在长上下文和细粒度感知方面有显著提升。
时间旅人18 浏览 速读:Qwen3-VL
模型家族包含密集型(2B/4B/8B/32B)与混合专家(Mixture-of-Experts, MoE)两种架构(30B-A3B/235B-A22B),以适应不同延迟 - 质量权衡需求。
1、快速介绍
Qwen3-VL-4B/8B 发布,Qwen3-VL 系列小参数模型,共提供 4B 与 8B 两种参数规模,每种规模均发布 Instruct 与 Thinking 两个版本。
主要特点为模型原生上下文 256K,可扩展至 1M,支持小时级视频逐秒索引;新增 Interleaved-MRoPE、DeepStack 与 Text–Timestamp Alignment 三项结构改进,分别用于长视频时序建模、多尺度 ViT 特征融合和事件定位。OCR 语种从 19 种增至 32 种,低光、模糊、倾斜场景下的鲁棒性提升,可解析古籍与专业术语。视觉 Agent 可直接操作 PC 与移动 GUI,完成元素识别、工具调用与任务闭环;视觉编码增强功能可根据图像或视频生成 Draw.io、HTML、CSS、JS 代码;空间感知支持 2D Grounding 与 3D Grounding,可判断物体位置、视角与遮挡关系。
2、模型应用
这些 Cookbook 围绕真实场景设计,覆盖高精度文档解析、多语言自然场景 OCR、长视频理解、3D 物体定位、空间关系推理,以及面向移动端和计算机操作的智能体控制等核心能力,全面展现 Qwen3-VL 在复杂视觉语言任务中的强大表现。
一、研究背景
- 研究问题:这篇文章要解决的问题是如何构建一个能力更强的视觉语言模型(VL 模型),以在多模态基准测试中取得卓越的表现。具体来说,该模型需要支持高达 256K token 的交错上下文,无缝集成文本、图像和视频。
- 研究难点:该问题的研究难点包括:如何在保持文本理解能力的同时,增强长上下文理解能力;如何有效地进行跨模态推理;如何在多模态学习目标之间平衡文本和模态数据的贡献。
- 相关工作:该问题的研究相关工作包括早期的视觉语言模型(如 CLIP 和 ALIGN)以及最近的多模态模型(如 Llama 系列和 Gemini 系列)。这些模型在视觉感知、长上下文理解和多模态推理方面取得了一定的进展,但在处理长视频和复杂任务时仍存在不足。
二、Qwen3-VL 模型架构
相关模型列表:
Qwen3-VL 以三种密集型变体(Qwen3-VL-2B/4B/8B/32B)和两种 MoE(Mixture of Experts)变体(Qwen3-VL-30B-A3B、Qwen3-VL-235B-A22B)实现,均基于 Qwen3 Backbone 构建。旗舰模型 Qwen3-VL-235B-A22B 拥有总计 2350 亿参数,每 token 激活 220 亿参数。该模型在广泛的多模态任务中表现优于大多数视觉语言模型(Visual Language Model, VLM),并在多数语言基准测试中超越其纯文本对应模型。
1、增强的交错 MRoPE 位置编码
1、前置知识回顾:
(1)复数 e^{i\theta} 的模长为 1,是一个只旋转、不变长短的算子:
z = e^{i\theta} = \cos\theta + i\sin\theta
模长(长度)公式:
|z| = \sqrt{\cos^2\theta + \sin^2\theta}
因为三角恒等式:
\cos^2\theta + \sin^2\theta = 1
所以:
|e^{i\theta}| = \sqrt{1} = 1
(2)ROPE 的本质:RoPE 做的事只有一件事,对每个 token/像素,给一个旋转角度:\theta_m = m \cdot \theta_i
- m = 位置(第几个像素/第几帧)
- \theta_i = 基底频率(决定转得快还是慢)
然后用这个角度做旋转:
(q, m) \rightarrow q \cdot e^{im\theta_i}
(3)这里的旋转是在复数平面上的旋转。每两个维度作为一组,当做一个平面向量,然后按位置角度旋转。比如在 (x, y) 点,绕原点转 \theta 角,二维平面上的旋转公式:在 (x, y) 点,绕原点转 \theta 角,新坐标 (x', y') 是:
\left{\begin{array}{l} x' = x \cdot \cos\theta - y \cdot \sin\theta \ y' = x \cdot \sin\theta + y \cdot \cos\theta \end{array}\right.
(4)RoPE 中第 i 维的角度:\theta_i = \frac{1}{10000^{\frac{2i}{d}}},其中 i 表示维度序号,d 表示总维度。
(5)RoPE 旋转位置编码的高低频含义:
- 低频:\theta_i 很小 → 转得很慢,擅长远距离位置区分(长序列、大图、长视频等)
- 高频(维度越低的时候):\theta_i 很大 → 转得极快,转得快,位置稍微一变,角度就剧变,擅长近距离精细区分(小区域、局部细节)
2、传统的 MRoPE 和当前交错 MRoPE 的对比:
- 传统的 MRoPE(在 qwen2.5 VL 中):
- 将嵌入维度划分为时间(t)、水平(h)和垂直(w)子空间,导致频谱不平衡。
交错 MRoPE 通过在低频和高频带中均匀分布 t、h 和 w 分量,解决了这一问题,时间 t 只有高频,如果距离一长,模型就认不出长时间序列;空间 h/w 只有低频,局部精细位置区分变差为了增强图像和视频的空间 - 时间建模能力,Qwen3-VL 采用了交错 MRoPE,作者采取如下优化方法:
- 将 t、h、w 分量在嵌入维度上交错分布
- 每个时空轴在低高频带均匀表示
- 显著改善长距离视频位置建模
传统 MRoPE (Qwen2-VL): 维度:[t,t,t,t, h,h,h,h, w,w,w,w](分组排列) └─低频─┘ └─中频─┘ └─高频─┘ 问题:t 只在低频,w 只在高频 → 谱不平衡
Qwen3-VL Interleaved MRoPE: 维度:[t,h,w,t, h,w,t,h, w,t,h,w](交错排列) └── 每个轴均匀分布所有频段 ──┘
2、视觉编码器
作者采用 SigLIP-2 架构作为视觉编码器,并基于官方预训练权重进行初始化,继续以动态输入分辨率进行训练。为有效适应动态分辨率,作者采用 2D-RoPE(Rotary Position Embedding),并根据输入尺寸对绝对位置嵌入进行插值,遵循 CoMP 的方法。具体而言,作者默认使用 SigLIP2-SO-400M 变体,并在小规模 LLM(2B 和 4B)中采用 SigLIP2-Large(300M)。
3、显式视频时间戳
- 在 Qwen2.5-VL 中,采用了一种时间同步的 MRoPE 变体,以赋予模型时间感知能力。然而,作者发现该方法存在两个关键局限性:
- 通过将时间位置 ID 直接绑定到绝对时间,该方法在处理长视频时会产生过大且 Sparse 的时间位置 ID,从而削弱模型对长时序上下文的理解能力。
- 在该方案下实现有效学习需要在多种帧率(fps)下进行广泛且均匀的采样,显著增加了训练数据构建的成本。
- 显式视频时间戳:
- 为了更有效地表示时间信息,Qwen3-VL 采用了基于文本的时间戳,而不是绝对时间对齐。
- 每个视频时间片段都带有格式化的文本字符串(例如,
<3.0 秒>),并在训练中使用秒和 HMS 格式生成时间戳,以确保模型能够有效学习和解释多样的时间码表示。
| Qwen2.5-VL | Qwen3-VL |
|---|
| 方案 | T-RoPE (绝对时间位置编码) | 文本时间戳 (Text-based Timestamp) |
| 实现方式 | 通过 MRoPE 位置编码直接嵌入绝对时间信息 | 用格式化文本字符串如 <3.0 seconds> 作为 token 输入 |
| 状态 | ❌ 被弃用 | ✅ 当前 qwen3 vl 采用 |
4、视觉 - 语言融合:DeepStack 集成
- DeepStack 集成:为了加强视觉 - 语言对齐,Qwen3-VL 引入了 DeepStack 机制。该机制通过将视觉编码器的不同层的视觉标记通过轻量级残差连接路由到相应的 LLM 层,增强了多级融合,而不会引入额外的上下文长度。
- 作者受到 DeepStack 的启发,将视觉 Token(visual tokens)注入到大语言模型(LLM)的多个层级中。与原始的 DeepStack 方法不同,后者将多尺度视觉输入的 Token 进行堆叠,作者将其扩展为从视觉 Transformer(Vision Transformer, ViT)的中间层提取视觉 Token。这种设计能够保留从 Low-Level 到 High-Level 的丰富视觉信息。
- 具体而言,如图 1 所示,作者从视觉编码器的三个不同层级中选取特征。随后,专用的视觉 - 语言融合模块将这些多层级特征投影为视觉 Token(visual tokens),并直接添加到前三个大语言模型(LLM)层的对应隐藏状态中。
视觉编码器层 1 ──→ Merger ──┐
视觉编码器层 2 ──→ Merger ──┼→ 分别注入 LLM 的对应层
视觉编码器层 3 ──→ Merger ──┘
- 保留从低级到高级的多层次视觉信息
- 通过残差连接,不增加序列长度
- 增强细粒度视觉理解 (InfoVQA +2.3, DocVQA +1.6)
| 特性 | 说明 |
|---|
| 每个 Merger 的结构 | 仍然是 2 层 MLP(与 Qwen2.5-VL 相同) |
| Merger 数量 | 3 个(对应选取的 3 个 ViT 层) |
| 输出到哪里 | 分别加到 LLM 的第 1/2/3 层的 hidden states(通过残差连接) |
def _deepstack_process(self, hidden_states: torch.Tensor, visual_pos_masks: torch.Tensor, visual_embeds: torch.Tensor):
if visual_pos_masks is None:
return hidden_states + visual_embeds.mean() * 0
visual_pos_masks = visual_pos_masks.to(hidden_states.device)
visual_embeds = visual_embeds.to(hidden_states.device, hidden_states.dtype)
local_this = hidden_states[visual_pos_masks, :].clone() + visual_embeds
hidden_states[visual_pos_masks, :] = local_this
return hidden_states
5、其他
作者从每样本损失(per-sample loss)转向平方根归一化的每 token 损失(square-root-normalized per-token loss),该方法在训练过程中能更好地平衡文本与多模态数据的贡献。
三、模型训练
- 数据收集:Qwen3-VL 的训练数据集包括高质量的图像 - 字幕对、交错文本 - 图像序列、知识世界数据、OCR 数据、文档解析数据和长文档理解数据。具体来说,图像 - 字幕对来自网络资源,交错文本 - 图像序列来自中国和其他英语网站,知识世界数据涵盖了超过 12 个语义类别,OCR 数据包括 3000 万个内部收集的样本,文档解析数据包括 300 万个 PDF 文件,长文档理解数据包括合成和实际的长文档数据。
- 预训练阶段:预训练分为四个阶段:初始对齐阶段、多模态预训练阶段、长上下文预训练阶段和超长短上下文适应阶段。每个阶段的训练目标和数据混合比例有所不同,以确保模型逐步建立从基本对齐到长上下文理解的能力。
- S0 阶段:仅训练 MLP 融合层,实现视觉 - 语言基础对齐
- S1 阶段:全参数多模态预训练,序列长度 8K
- S2 阶段:长上下文预训练,序列长度扩展至 32K
- S3 阶段:超长上下文适应,支持 256K 令牌上下文窗口
- 后训练阶段包括三个阶段:
- 长链式思维数据的有监督微调、
- 从更强教师模型的知识蒸馏
- 强化学习
- 每个阶段的数据和方法都有所不同,以提高模型的指令遵循能力、推理能力和与人类偏好的对齐。
Stage 0: 视觉 - 语言对齐 (Vision-Language Alignment)
├── 仅训练 MLP merger
├── 视觉编码器和 LLM 冻结
├── 67B tokens, 8K 序列长度
└── 数据:高质量图像 - 标题对、OCR 数据
Stage 1: 多模态预训练 (Multimodal Pre-Training)
├── 全参数训练
├── ~1T tokens, 8K 序列长度
├── 混合 VL 数据 + 纯文本数据
└── 新增:交错图文、视觉定位、STEM、视频
Stage 2: 长上下文预训练 (Long-Context)
├── ~1T tokens, 32K 序列长度
├── 增加纯文本比例 (长文本理解)
└── 大量视频和 agent 数据
Stage 3: 超长上下文适应 (Ultra-Long-Context)
├── 100B tokens, 262K 序列长度
└── 专注:长视频、长文档理解
| 数据类型 | 关键改进 |
|---|
| 图像标题 | 用 Qwen2.5-VL-32B 重新生成高质量描述,语义去重 |
| 交错图文 | 支持长达 256K tokens 的书籍级文档 |
| OCR | 扩展至39 种语言 (Qwen2.5-VL 仅 10 种) |
| 文档解析 | QwenVL-HTML/Markdown 双格式,支持复杂布局 |
| grounding | 归一化坐标 [0,1000],支持 2D/3D 定位、计数 |
| 空间理解 | 关系推理、affordance、动作规划 |
| 代码 | UI→HTML/CSS、图像→SVG、视觉编程 |
| 视频 | 时间戳交错描述、时空定位、长度自适应采样 |
| STEM | 6000 万 K-12/大学题目,1200 万长 CoT 推理 |
| Agent | GUI 感知 + 决策、函数调用、搜索能力 |
四、模型评测分析
qwen3-VL-235B-A22B 模型和主流多模态图生文模型的效果对比:
对于几个小参数的 qwen3 vl 模型,效果比 a22b 模型差,也是能理解的,毕竟参数量摆在这里:
一般视觉问答:在 MMBench-V1.1、RealWorldQA、MMStar 和 SimpleVQA 等基准测试中,Qwen3-VL 系列模型展示了强大的性能。特别是在大模型(如 Qwen3-VL-235B-A22B)中,Qwen3-VL-235B-A22B-Thinking 在 MMStar 上取得了 78.7 分的高分,接近 Gemini-2.5-Pro 的 79.5 分。
多模态推理:在 MMMU、MathVision、MathVision-Wildphoto、MathVista 等 STEM 相关任务和视觉谜题任务中,Qwen3-VL 系列模型表现出色。特别是 Qwen3-VL-235B-A22B-Instruct 在多个基准测试中取得了最佳或次优成绩。
对齐和主观任务:在 MM-MT-Bench、HallusionBench 和 MIA-Bench 等基准测试中,Qwen3-VL 系列模型显著优于其他闭源模型。特别是在 HallusionBench 上,Qwen3-VL-235B-A22B-Thinking 比 Gemini-2.5-Pro 高出 6.3 分。
文本识别和文档理解:在 OCR 解析、文档问答和文档推理等基准测试中,Qwen3-VL 系列模型也表现出色。特别是在 OCR 相关的 VQA 基准测试中,Qwen3-VL-235B-A22B-Instruct 和 Qwen3-VL-235B-A22B-Thinking 在所有任务中都取得了强有力的一致性结果。
2D 和 3D 定位:在 RefCOCO、CountBench 和 ODinW-13 等 2D 和 3D 定位基准测试中,Qwen3-VL 系列模型展示了卓越的性能。特别是 Qwen3-VL-235B-A22B 在 ODinW-13 上取得了 48.6 mAP 的高分,表明其在多目标开放词汇对象定位中的强大能力。
细粒度感知:在 V*、HRBench-4K 和 HRBench-8K 等细粒度感知基准测试中,Qwen3-VL 系列模型相比其前身 Qwen2.5-VL-72B 有显著提升,特别是在集成外部工具后,性能提升显著。
多图像理解:在 BLINK 和 MuirBench 等多图像理解基准测试中,Qwen3-VL 系列模型展示了整体优越性,特别是在 MuirBench 上,Qwen3-VL-235B-A22B-Thinking 取得了 80.1 分的高分,超过了所有其他模型。
具身和空间理解:在 ERQA、VSIBench 和 EmbSpatial 等具身和空间理解基准测试中,Qwen3-VL 系列模型展示了与顶级模型相媲美的能力,特别是在 EmbSpatial 上,Qwen3-VL-235B-A22B 取得了 84.3 分的高分。
视频理解:在 VideoMME、MVBench、VideoMMMU 等视频理解基准测试中,Qwen3-VL 系列模型展示了显著的改进,特别是在集成交错 MRoPE、文本时间戳和大规模时间密集视频字幕后,Qwen3-VL-8B 的性能与显著更大的 Qwen2.5-VL-72B 模型相当。
参考:
1、评测 ToolCall 任务 benchmark 的 prompt:
{
"role": "system",
"content": "Your role is that of a research assistant specializing in visual information..."
}
2、评测 HRBench4K benchmark(Visual Grounding 任务,需要选出图中对应的 Bounding Box,即 bbox)的 prompt:
{
"role": "system",
"content": "Your role is that of a research assistant specializing in visual information..."
}
五、相关代码解读
1、数据流
问题:Qwen3-VL 处理一张图片时,数据的完整流转路径是怎样的?从原始图像输入到最终 LLM 输出,请描述中间经过哪些主要模块(如 image_processor、visual encoder、merger/projector、language model)及其作用
代码参考:ms-swift/swift/model/models/qwen.py
Qwen3-VL 处理一张图片时,数据经过以下完整流程:
- 原始图片经过
image_processor 处理,转换为 pixel_values(像素张量)
- 同时生成
image_grid_thw,记录图片被分成多少个 patch(T×H×W)
pixel_values 输入到 self.visual(ViT 视觉编码器)
- 输出两部分:
pooler_output:最终的视觉 embedding
deepstack_features:ViT 各中间层的特征(用于后续多层融合)
- 在
input_ids 中找到 <image> token 的位置
- 用视觉 embedding 替换这些位置,生成混合的
inputs_embeds
- 调用
get_rope_index 计算 3D 旋转位置编码
- 图像/视频 token 使用特殊的 M-RoPE(多模态旋转位置编码)
inputs_embeds 输入 LLM(language_model)
- 同时传入
visual_pos_masks 和 deepstack_visual_embeds
- LLM 在前 N 层通过残差方式持续注入视觉特征(Deepstack 机制)
- LLM 输出
last_hidden_state,可用于生成文本或其他下游任务
inputs_embeds, visual_pos_masks, deepstack_visual_embeds = _forward_qwen3_vl_or_qwen3_omni(
self, processor, input_ids, inputs_embeds, pixel_values, pixel_values_videos,
image_grid_thw, video_grid_thw
)
position_ids, rope_deltas = self.get_rope_index(
input_ids, image_grid_thw, video_grid_thw, attention_mask=attention_mask
)
outputs = self.language_model(
input_ids=None, position_ids=position_ids, inputs_embeds=inputs_embeds,
visual_pos_masks=visual_pos_masks,
deepstack_visual_embeds=deepstack_visual_embeds,
**kwargs,
)
2、多模态处理
在 ms-swift 代码中,pixel_values、image_grid_thw、pixel_values_videos、video_grid_thw 这几个变量分别是什么含义?为什么 Qwen3-VL 需要 grid_thw 这样的信息?这与 Qwen3-VL 处理动态分辨率图像/视频的机制有什么关系?
grid_thw 的作用:用于动态分辨率处理,表示图像/视频被分成 T×H×W 个 patch 块。
1、pixel_values 和 pixel_values_videos
pixel_values:图像的像素张量,形状为 [N, C, H, W](N 张图,C 通道,H 高,W 宽)
pixel_values_videos:视频的像素张量,视频被拆成多帧后的像素数据
2、image_grid_thw 和 video_grid_thw
- 这是 Qwen3-VL 动态分辨率机制的核心
- 格式为
[N, 3],每一行是 (T, H, W):
- T:时间维度(图像 T=1,视频 T=帧数)
- H:高度方向的 patch 数量
- W:宽度方向的 patch 数量
3、为什么需要 grid_thw?
传统 ViT 将所有图片 resize 到固定尺寸(如 224×224),会丢失细节或浪费计算。
Qwen3-VL 采用动态分辨率:
- 根据原图大小,动态决定分成多少个 patch
- 小图少分,大图多分,保留原始分辨率信息
grid_thw 告诉模型每张图/视频有多少个 token,用于:
- 正确计算视觉 token 数量
- 生成正确的位置编码
- 在混合输入时正确分割图像和视频的 embedding
merge_length = processor.image_processor.merge_size**2
image_tokens = (image_grid_thw.prod(dim=-1)// merge_length).sum()
def _forward_qwen3_vl_or_qwen3_omini(self, processor, input_ids, inputs_embeds, pixel_values,
pixel_values_videos,
image_grid_thw,
video_grid_thw):
pixel_values_mixed = torch.concat([pixel_values, pixel_values_videos], dim=0)
grid_thw = torch.concat([image_grid_thw, video_grid_thw], dim=0)
visual_res = self.visual(pixel_values_mixed, grid_thw=grid_thw)
mixed_embeds = visual_res.pooler_output
deepstack_visual_embeds = visual_res.deepstack_features
merge_length = processor.image_processor.merge_size**2
image_tokens = (image_grid_thw.prod(dim=-1)// merge_length).sum()
image_embeds = mixed_embeds[:image_tokens]
video_embeds = mixed_embeds[image_tokens:]
image_mask = (input_ids == self.config.image_token_id)
video_mask = (input_ids == self.config.video_token_id)
inputs_embeds = inputs_embeds.masked_scatter(image_mask, image_embeds)
inputs_embeds = inputs_embeds.masked_scatter(video_mask, video_embeds)
3、模型变体与扩展
- 使用标准 Dense Transformer 架构
- 每层所有参数都参与计算
- 适合中小规模模型(2B、8B、32B)
- MoE = Mixture of Experts(专家混合)
- FFN 层被替换为多个'专家'网络
- 每个 token 只激活部分专家(如 8 选 2),节省计算
- 适合超大规模模型(如 72B-A14B、235B-A22B)
- 'A14B' 表示总参数 72B,但每次激活参数约 14B
qwen3_vl_emb(Embedding 版)
- 用于文本/图像检索任务
- 输入一段文本或图片,输出一个向量(embedding)
- 可用于相似度计算、语义搜索
- Template 强制添加空的 assistant 回复,取最后的 hidden state 作为 embedding
qwen3_vl_reranker(Reranker 版)
- 用于检索重排序任务
- 输入:query + document(候选文档)
- 输出:相关性分数
- 在检索系统中用于精排阶段,提升召回结果的排序质量
- Template 将 query 和 document 拼接成特定格式
Qwen3VLLoader (基类)
│
├── qwen3_vl (Dense)
├── Qwen3VLMoeLoader ──→ qwen3_vl_moe (MoE)
├── Qwen3VLEmbLoader ──→ qwen3_vl_emb (Embedding)
└── Qwen3VLRerankerLoader ──→ qwen3_vl_reranker (Reranker)
相关免费在线工具
- 加密/解密文本
使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online
- RSA密钥对生成器
生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online
- Mermaid 预览与可视化编辑
基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online
- 随机西班牙地址生成器
随机生成西班牙地址(支持马德里、加泰罗尼亚、安达卢西亚、瓦伦西亚筛选),支持数量快捷选择、显示全部与下载。 在线工具,随机西班牙地址生成器在线工具,online
- Gemini 图片去水印
基于开源反向 Alpha 混合算法去除 Gemini/Nano Banana 图片水印,支持批量处理与下载。 在线工具,Gemini 图片去水印在线工具,online
- Base64 字符串编码/解码
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online