前言

之所以关注到Qwen多模态大模型,是因为去年24年我司在实现“提问VLM系统”时(今年过年之前便已嵌入在七月在线官网教育层面的每一个视频中),当时面临两个模型的选择,一个是GPT4o,一个便是Qwen2-vl-72b

最终因为后者的性价比更高,便选择了Qwen2-vl-72b

此外,也不用对deepseek之外的模型抱有偏见,毕竟其他模型比如Qwen系列还是一直创新不断的——虽然它的创新暂时还没有产生类似R1于25年春节期间瞬间轰动海内外的效果,我个人很看好Qwen

第一部分 Qwen-VL:多功能的视觉语言模型

23年10月份,阿里通义千问团队发布了两款多模态大模型

  • Qwen-VL,是经过多任务训练后的模型
    能够感知和理解视觉输入,根据给定的提示生成所需的响应,并完成各种视觉语言任务,如图像描述、问答、文本导向的问答和视觉定位
    且支持中文、英文等多种语言,以及允许任意交错的图文数据作为Qwen-VL的输入
  • Qwen-VL-Chat,是经过监督微调(SFT)阶段后的模型
    即基于Qwen-VL的指令调优视觉语言聊天机器人

1.1 模型架构

Qwen-VL 的整体网络架构由三个组件组成「相关的模型参数为Vision Encoder 1.9B,VL Adapter 0.08B,LLM 7.7B,全部加起来总计9.6B

1.1.1 大型语言模型:Qwen-7B的简介

Qwen-VL 采用大型语言模型作为其基础组件,该模型使用 Qwen-7B(Qwen,2023) 的预训练权重进行初始化

// 待更

1.1.2 视觉编码器:基于ViT(Openclip 的 ViT-bigG)

Qwen-VL 的视觉编码器使用 Vision Transformer (ViT)(Dosovitskiy 等人,2021)架构,初始化时采用了 Openclip 的 ViT-bigG(Ilharco 等人,2021)的预训练权重

在训练和推理过程中,输入图像会被调整为特定分辨率。视觉编码器通过以 14 的步幅将图像分割为多个patch来处理图像,从而生成一组图像特征

1.1.3 位置感知视觉-语言适配器,即Position-aware Vision-Language Adapter

为了缓解长图像特征序列带来的效率问题,Qwen-VL 引入了一种视觉-语言适配器,用于压缩图像特征

该适配器由一个随机初始化的单层交叉注意力模块组成。该模块使用一组可训练向量(嵌入)作为查询向量,并使用来自视觉编码器的图像特征作为交叉注意力操作的键。此机制将视觉特征序列压缩为固定长度256。关于查询数量的消融实验见附录E.2

此外,为了对细粒度图像进行更好的理解,2D绝对位置编码被引入到交叉注意力机制的查询-键对中,以减轻压缩过程中可能导致的位置细节丢失。长度为256的压缩图像特征序列随后被输入到大型语言模型中

最终,在模型的输入输出上

  • 图像输入
    图像通过视觉编码器和适配器进行处理,产生固定长度的图像特征序列
    为了区分图像特征输入和文本特征输入,在图像特征序列的开头和结尾分别附加两个特殊token(<img> 和</img>),表示图像内容的开始和结束
  • 边界框输入和输出
    为了增强模型对细粒度视觉理解和定位的能力,Qwen-VL 的训练涉及区域描述、问题和检测形式的数据

    不同于涉及图像-文本描述或问题的常规任务,此任务要求模型准确理解并生成指定格式的区域描述。对于任何给定的边界框,应用一个归一化过程(范围在[0, 1000) 内)并转换为指定的字符串格式:” (Xtopleft , Ytopleft ) , (Xbottom right , Ybottom right ) ”

    字符串被tokenized为文本,不需要额外的位置词汇。为了区分检测字符串和常规文本字符串,在边界框字符串的开头和结尾添加了两个特殊token(< box >和< /box >
    此外,为了适当地将边界框与其对应的描述性词语或句子关联起来,引入了另一组特殊token(<ref> 和</ref>),以标记边界框所指的内容

1.2 训练:预训练、多任务预训练、监督微调

如下图图3所示,Qwen-VL模型的训练过程分为三个阶段:两个阶段的预训练和最后一个阶段的指令微调训练

1.2.1 预训练

在预训练的第一阶段,他们主要利用一个大规模、弱labeled的网络抓取图文对集合,其预训练数据集由几个公开可访问的来源和一些内部数据组成。且努力清理数据集中的某些模式

如下表表2-Qwen-VL预训练数据的详细信息 所示,原始数据集包含总共50 亿个图文对,清理后剩余14 亿数据,其中77.3 % 是英文(文本)数据,22.7 % 是中文(文本)数据

  • LAION-en和LAION-zh分别是LAION-5B(Schuhmann等,2022a)的英文和中文子集
  • LAION-COCO(Schuhmann等,2022b)是从LAION-en生成的合成数据集
  • DataComp(Gadre等,2023)和Coyo(Byeon等,2022)是图文对集合
  • CC12M(Changpinyo等,2021)、CC3M(Sharma等,2018)、SBU(Ordonez等,2011)和COCO Caption(Chen等,2015)是学术性描述数据集

预训练过程中,他们冻结大型语言模型,仅优化视觉编码器和VL 适配器

  1. 在此阶段,输入图像被调整为224 × 224
  2. 训练目标是最小化文本token的交叉熵
    The training objective is to minimize the cross-entropy of the text tokens.
  3. 最大学习率为2e−4,训练过程使用30720 的批量大小进行图像-文本对
  4. 整个第一阶段的预训练持续50000 步,消耗大约15 亿图像-文本样本。更多超参数详见原论文的附录C,此阶段的收敛曲线如下图图6 所示

1.2.2 多任务预训练

在多任务预训练的第二阶段,他们引入了高质量和细粒度的VL注释数据,具有更高的输入分辨率和交错的图文数据

正如表3所总结的,同时在7个任务上训练了Qwen-VL

  • 对于文本生成,使用内部收集的语料库来保持LLM的能力
  • 图像描述Captioning数据与表2相同,但样本数量要少得多,并且不包括LAION-COCO
  • 对于VQA任务,使用公开可用数据的混合,包括
    GQA(Hudson和Manning,2019年)
    VGQA(Krishna等,2017年)
    VQAv2(Goyal等,2017年)
    DVQA(Kafle等,2018年)
    OCR-VQA(Mishra等,2019年)
    和DocVQA(Mathew等,2021年)

    且遵循Kosmos-2的做法,使用GRIT(Peng等,2023年)数据集进行定位任务,进行了少量修改
  • Ref Grounding、Grounded Cap
    对于参考定位和定位图像描述的二元性任务,从GRIT(Peng等,2023年)、Visual Genome(Krishna等,2017年)、RefCOCO(Kazemzadeh等,2014年)、RefCOCO+和RefCOCOg(Mao等2016年)
  • OCR
    为了改进以文本为导向的任务,从Common Crawl1中收集PDF和HTML格式的数据,并生成带有自然风景背景的英文和中文合成OCR数据——遵循(Kim等,2022)
  • 最后,通过将相同任务的数据打包成长度为2048的序列,简单构建交错的图像-文本数据

此外,他们将视觉编码器的输入分辨率从224 × 224 提高到448 × 448,减少了图像下采样导致的信息损失

且在原论文的附录E.3 中对高分辨率的视觉Transformer 进行了窗口注意力和全局注意力的消融实验。更解锁了大型语言模型并训练了整个模型——至于训练目标与预训练阶段相同

具体而言,在模型中使用高分辨率Vision Transformer 将显著增加计算成本。减少模型计算成本的一种可能解决方案是,在Vision Transformer 中使用窗口注意力机制

  1. 即在模型的ViT 部分的大多数层中仅在224 × 224 的窗口中执行注意力机制,而在模型的ViT 部分的少数层(例如,每4 层中的1 层)中对完整的448 × 448或896 × 896 图像执行注意力机制
  2. 为此,他们进行了消融实验,以比较在视觉Transformer中使用全局注意力和窗口注意力时模型的性能。下表表10比较了实验结果,以分析计算效率与模型收敛之间的权衡


    可以看到,当使用窗口注意力而不是普通注意力时,模型的损失显著增加。并且它们的训练速度相似。因此,最终作者决定在训练Qwen-VL时使用普通注意力而不是窗口注意力

1.2.3 监督微调

在此阶段,他们通过指令微调对Qwen-VL预训练模型进行了微调,以增强其指令跟随和对话能力,从而生成了交互式的Qwen-VL-Chat模型

多模态指令调优数据主要来自于通过LLM自指令生成的字幕数据或对话数据,这些数据通常仅涉及单图像对话和推理,并且局限于图像内容理解

  1. 他们通过人工标注、模型生成和策略拼接构建了一组额外的对话数据,以将本地化和多图像理解能力融入到Qwen-VL模型中
  2. 且确认模型能够有效地将这些能力转移到更广泛的语言和问题类型中
    此外,他们在训练过程中混合多模态和纯文本对话数据,以确保模型在对话能力上的普遍性
  3. 指令调优数据总量为350k
    在此阶段,他们冻结视觉编码器,并优化语言模型和适配器模块。并在附录B.2中展示了此阶段的数据格式

第二部分 Qwen2-VL

2.1 Qwen2-VL提出与其提出背景

24年6月份,千问团队发布Qwen2-VL系列模型

  1. 该系列由三种大小的模型组成,分别为 Qwen2-VL-2B、Qwen2-VL-7B 和 Qwen2-VL-72B
  2. 在各种规模的 LLM 中采用了 675M 参数的 Vison Transformer(ViT),确保了 ViT 的计算负载在不同规模的 LLM 中保持恒定

这是在怎样的背景之下推出的呢?如Qwen2-VL的论文所说

在此之前,当前的大型视觉-语言模型(LVLMs)通常受限于固定的图像输入尺寸。标准的LVLMs会将输入图像编码为固定分辨率(例如224×224),这通常通过对图像进行下采样或上采样(Zhu等人,2023;Huang等人,2023a),或者采用缩放再填充的方法(Liu等人,2023b,a)来实现

  1. 虽然这种“一刀切”的策略能够让模型以一致的分辨率处理图像,但也限制了模型捕捉不同尺度信息的能力,尤其是在处理高分辨率图像时会导致大量细节信息的丢失
    因此,这类模型在对尺度和细节的敏感性方面,无法像人类视觉那样感知丰富的视觉信息

    此外,大多数LVLM依赖于静态、冻结的CLIP风格(Radford等,2021)的视觉编码器,这引发了人们对于此类预训练模型所产生的视觉表征是否足够,特别是在复杂推理任务和处理图像中细节方面的担忧
  2. 近期的研究(Bai等,2023b;Ye等,2023a)尝试通过在LVLM训练过程中对视觉Transformer(ViT)进行微调,以解决这些局限性,并已取得了更好的效果

    为了进一步提升模型对不同分辨率的适应能力,Qwen2-VL在LVLM训练过程中引入了动态分辨率训练
    具体而言,他们在ViT中采用了二维旋转位置编码(2D RoPE),从而使模型能够更好地捕捉不同空间尺度的信息

    在涉及视频内容时,视频本质上是一系列帧的序列,许多现有模型仍然将其视为一种独立的模态。然而,要让模型真正理解现实世界的复杂性,理解视频中所展现的动态现实至关重要
    与本质上为一维的文本不同,现实世界环境是三维存在的。目前模型中采用的一维位置嵌入,极大地限制了其对三维空间和时间动态的建模能力

    因此,为了弥补这一差距,他们开发了:PE旋转位置嵌入(M-RoPE)——其采用独立的组件来表示时间和空间信息。这使得模型能够自然地理解动态内容,如视频或流媒体数据,从而提升其理解和交互现实世界的能力

2.2 Qwen2-VL的模型架构与训练方法

Qwen2-VL 系列包括三种规模的模型,分别是 Qwen2-VL-2B、Qwen2-VL-7B 和 Qwen2-VL-72B。表 1 列出了超参数和重要信息

值得注意的是,Qwen2-VL 在不同规模的大语言模型中均采用了 6.75 亿参数的 ViT,从而确保无论 LLM 的规模如何,ViT 的计算负载始终保持不变

2.2.1 模型架构

下图图2展示了Qwen2-VL的完整结构——Qwen2-VL能够准确识别并理解图像中的内容,无论图像的清晰度、分辨率或极端纵横比如何

作者保留了Qwen-VL(Bai et al., 2023b)的框架,该框架集成了视觉编码器和语言模型

  • 针对不同规模的适应,他们实现了一个具有大约675 百万参数的视觉Transformer (ViT) (Dosovitskiy et al., 2021),能够熟练处理图像和视频输入
  • 在语言处理方面,选择了更强大的Qwen2 (Yang et al., 2024) 系列语言模型

且为了进一步提升模型对视频中视觉信息的感知和理解能力,他们做了几个关键升级

  1. Naive动态分辨率
    Qwen2-VL 的一项关键架构改进是引入了朴素动态分辨率支持(Dehghani等, 2024)。与 Qwen-VL 不同,Qwen2-VL 现在可以处理任意分辨率的图像,并动态地将其转换为可变数量的视觉 token

    为支持该特性,他们对 ViT 进行了修改,移除了原有的绝对位置嵌入,并引入了 2D-RoPE(Su 等, 2024;Su, 2021)以捕捉图像的二维位置信息
    在推理阶段,不同分辨率的图像被打包为单一序列,打包后的长度可控,以限制 GPU内存的使用

    此外,为了减少每张图像的视觉 token 数量,在 ViT 之后采用了一个简单的MLP 层,将相邻的 2×2 token 压缩为一个 token,并在压缩后的视觉 token 首尾分别加入特殊的 <|vision_start|> 和 <|vision_end|> token
    因此,一张分辨率为 224×224、采用 patch_size=14 的 ViT 编码的图像,在进入 LLM 之前将被压缩为 66 个 token
    ————
    至于这个66怎么算的呢,我简单解释下
    图像分辨率 224×224,patch_size=14,因此每个 patch 的大小为 14×14
    沿宽度和高度方向的 patch 数分别为:(224×224) /(14×14) = 16
    说白了,就是下图的长宽分别为16,代表长宽各有16个 "大小为14×14" 的patch块
    14*14 14*14 14*14 14*14 14*14 14*14 14*14 14*14 14*14 14*14 14*14 14*14 14*14 14*14 14*14 14*14
    14*14
    14*14
    14*14
    ...
    因此,ViT 编码后的原始 token 数为:16×16=256
    再由于采用 2×2 的压缩方式,将相邻的 2×2 个 token 压缩为 1 个 token。因此,压缩后的 token 数为:256/(2×2)​ = 256/4 ​= 64
    最后,在压缩后的 64 个 token 的首尾分别加入特殊的 <|vision_start|> 和 <|vision_end|> 两个 token,因此最终进入 LLM 的总 token 数为:64+2=66
  2. 多模态旋转位置嵌入(M-RoPE)
    另一个关键的架构改进是多模态旋转位置嵌入(M-RoPE)的创新
    与传统的大型语言模型中的一维旋转位置嵌入(1D-RoPE)不同,后者仅限于编码一维位置信息,M-RoPE能够有效地建模多模态输入的位置信息

    这一目标通过将原始旋转位置编码分解为时间、高度和宽度三个部分来实现
    \rightarrow  对于文本输入,这些组件使用相同的位置ID,使M-RoPE在功能上等同于1D-RoPE(Su, 2024)
    \rightarrow  在处理图像时,每个视觉token的时间ID保持不变,而高度和宽度部分则根据 token 在图像中的位置分配不同的 ID
    \rightarrow  对于视频(视频被视为帧序列),每一帧的时间 ID 递增,高度和宽度部分的 ID 分配方式与图像相同
    在模型输入包含多种模态的场景下,每种模态的位置编号通过在前一模态的最大位置 ID 基础上加一来初始化

    下图图3展示了M-RoPE的一个示例——通过将旋转位置编码分解为时间、高度和宽度三个部分,M-RoPE 能够在大语言模型(LLM)中显式建模文本、图像和视频的位置信息

    总之,M-RoPE 不仅增强了位置信息的建模能力,还降低了图像和视频位置 ID 的取值,从而使模型在推理阶段能够外推更长的序列
  3. 统一图像和视频理解
    Qwen2-VL 采用融合图像与视频数据的混合训练策略,确保模型在图像理解和视频理解方面均具备高水平能力

    为了尽可能完整地保留视频信息,作者以每秒两帧的速率对每个视频进行采样
    此外,他们引入了深度为2的三维卷积(Carreira和 Zisserman, 2017)来处理视频输入,使模型能够处理三维时空块(3D tubes)而非二维图像块(2D patches),从而在不增加序列长度的情况下处理更多视频帧(Arnab 等,2021)

    且为保持一致性,每张图片被视为两帧相同的图像。为平衡长视频处理所需的计算资源与整体训练效率,他们动态调整每帧视频的分辨率,并将每个视频的总 token 数限制为16384。该训练方法在提升模型长视频理解能力与训练效率之间实现了平衡

2.2.2 三阶段训练方法:训练ViT、基于更广泛的数据、指令微调

参考 Qwen-VL(Bai 等,2023b),作者采用了三阶段训练方法

  1. 在第一阶段,专注于训练视觉转换器(ViT)组件,利用大量的图文对语料提升大语言模型(LLM)的语义理解能力

    在初始的预训练阶段,Qwen2-VL 接触了大约 6000 亿个token的语料库。Qwen2-VL 的大语言模型组件采用 Qwen2中的参数进行初始化,而其视觉编码器则使用源自 DFN 的 ViT 进行初始化
    然而,原始 DFN 的 ViT中的固定位置嵌入被 RoPE-2D 所取代

    本预训练阶段主要侧重于学习图像与文本之间的关系、通过OCR实现图像中的文本内容识别,以及图像分类任务
    这类基础训练对于帮助模型建立对核心视觉—文本相关性与对齐的稳健理解具有重要作用
  2. 在第二阶段,解冻所有参数,并用更广泛的数据进行训练,以实现更全面的学习
    第二阶段的预训练标志着一次重要的进展,涉及额外8000亿个与图像相关的数据token。在这一阶段,引入了更多混合图像-文本内容,有助于模型更细致地理解视觉信息与文本信息之间的相互作用

    视觉问答数据集的加入进一步提升了模型对图像相关问题的应答能力。此外,多任务数据集的引入对于培养模型同时处理多种任务的能力至关重要,这一能力在面对复杂的真实世界数据集时尤为重要。与此同时,纯文本数据仍然在保持和提升模型语言能力方面起着关键作用
    ——————
    在整个预训练阶段,Qwen2-VL 共处理了累计 1.4 万亿个 token。具体来说,这些 token不仅包括文本 token,还包括图像 token。然而,在训练过程中,作者只对文本 token 进行监督。这种对大量且多样化的语言和视觉场景的接触,确保了模型能够深入理解视觉与文本信息之间的复杂关系,从而为各种多模态任务奠定了坚实的基础
  3. 在最后阶段,锁定 ViT 参数,仅使用指令数据集对 LLM 进行专门微调
    在指令微调阶段,作者采用ChatML(OpenAI, 2024)格式来构建指令跟随数据集。该数据集不仅包含纯文本对话数据,还涵盖多模态对话数据

    多模态内容包括图像问答、文档解析、多图对比、视频理解、视频流对话以及基于智能体的交互

该模型在包含图文对、光学字符识别(OCR)数据、交错图文文章、视觉问答数据集、视频对话以及图像知识数据集等多样化数据集上进行了预训练

至于数据来源则主要包括经过清洗的网页、开源数据集和合成数据。且数据知识截止日期为2023年6月。这种多元化的数据组成对于构建强大的多模态理解能力至关重要

至于数据格式上


与 Qwen-VL 一致,Qwen2-VL 也采用特殊token来区分视觉和文本输入。通过在图像特征序列的起始和结束位置分别插入 <|vision_start|> 和 <|vision_end|> token,以标识图像内容的范围

  • 对于对话数据
    在对话格式方面,作者采用ChatML格式构建指令微调数据集,其中每轮交互的陈述都用两个特殊token(<|im_start|> 和 <|im_end|>)进行标记,以便实现对话终止。蓝色标注的部分表示受监督的内容
  • 视觉定位
    为了赋予模型视觉定位能力,边界框坐标在[0, 1000) 范围内进行归一化,并表示为”(Xtop left , Ytop left ) , (Xbottom right , Ybottom right)”
    标记<|box_start|> 和 <|box_end|> 用于标记边界框文本

    为了准确关联边界框与其文本描述,作者引入了 <|object_ref_start|> 和 <|object_ref_end|> 这两个标记,用以指示边界框所引用的内容,从而使模型能够有效理解并生成对特定区域的精确描述
  • 视觉智能体
    为了将Qwen2-VL开发为通用型视觉-语言智能体(VL-Agent),作者将各类智能体任务(如界面操作、机器人控制、游戏和导航)视为序列决策问题,使Qwen2-VL能够通过多步动作执行来完成任务

    针对每一项任务,作者首先定义一组允许的动作及函数调用的关键词模式(下划线)(Qwen团队,2024)
    随后,Qwen2-VL会分析观测结果,进行推理与规划,执行选定动作,并与环境交互以获取新的观测信息。该循环不断迭代,直至任务成功完成

    通过集成多种工具并利用大规模视觉-语言模型(LVLMs)的视觉感知能力,Qwen2-VL能够迭代式地执行涉及现实世界视觉交互的日益复杂的任务

第三部分 Qwen2.5-VL

25年2月,千问团队推出Qwen2.5-VL

Qwen2.5-VL 框架展示了视觉编码器与语言模型解码器的集成能力,可处理包括图像和视频在内的多模态输入。如下图所示

  1. 视觉编码器能够以原生分辨率处理输入(在视觉编码器中实现了窗口注意力机制,以优化推理效率),并支持动态帧率(FPS)采样——将动态分辨率扩展到时间维度,从而支持不同采样率下的视频全面理解

    即不同尺寸的图像和不同帧率的视频帧会被动态映射为长度各异的 token 序列
  2. 值得注意的是,M-RoPE 通过在时间维度上将时间 ID 与绝对时间对齐——通过对齐绝对时间,提升了对复杂时序序列的学习能力,使模型能够更好地理解时间动态,例如事件节奏和精确时刻定位
    处理后的视觉数据随后被输入到 Qwen2.5 LM 解码器中
  3. 且对视觉 Transformer(ViT)架构进行了重新设计,融合了诸如带有 SwiGLU 激活函数的前馈网络(FFN)、用于归一化的 RMSNorm 以及基于窗口的注意力机制等先进组件,以提升性能和效率
    此外,无论是预训练还是有监督微调,均显著扩展了预训练语料规模,从 1.2 万亿 tokens 增至 4.1 万亿 tokens

3.1 模型架构:Qwen2.5 LLM、ViT、视觉-语言融合器

Qwen2.5-VL 的整体模型架构由三个部分组成:

  1. 大型语言模型
    Qwen2.5-VL 系列以大型语言模型为基础组件。该模型初始化时采用了Qwen2.5 LLM 的预训练权重

    且为了更好地满足多模态理解的需求,作者将一维RoPE(旋转位置编码)修改为对齐绝对时间的多模态旋转位置编码(Multimodal Rotary Position Embedding)
  2. 视觉编码器
    Qwen2.5-VL 的视觉编码器采用了重新设计的视觉Transformer(ViT)架构。在结构上,作者引入了2D-RoPE和窗口注意力机制,以支持原生输入分辨率,并加速整个视觉编码器的计算过程

    在训练和推理阶段,输入图像的高度和宽度会被调整为28的倍数后输入ViT。视觉编码器通过以步幅为14将图像划分为若干patch,从而生成一组图像特征
  3. 基于MLP的视觉-语言融合器
    为了解决由图像特征长序列带来的效率挑战,作者采用了一种简单而有效的方法,在将特征序列输入大型语言模型(LLM)之前对其进行压缩

    具体而言,作者并非直接使用由视觉变换器(ViT)提取的原始patch特征,而是
    首先将空间上相邻的四组patch特征进行分组
    然后,将这些分组后的特征拼接,并通过一个两层的多层感知机(MLP),将其投影到与大语言模型(LLM)中使用的文本嵌入相一致的维度
    该方法不仅降低了计算成本,还为动态压缩不同长度的图像特征序列提供了灵活的方式

在下表在表1中,详细列出了Qwen2.5-VL的架构与配置

3.1.1 快速高效的视觉编码器

视觉编码器在多模态大语言模型(MLLMs)中起着关键作用

首先,为了解决由于原生分辨率输入在训练和推理过程中带来的计算负载不均衡问题,作者重新设计了VisionTransformer(ViT)架构

  1. 一个主要问题在于处理不同尺寸图像时所带来的二次方计算复杂度。为此,作者在大多数层中引入了窗口注意力机制,使得计算成本随patch数量线性增长,而非二次增长
  2. 在作者的架构中,只有四层采用全自注意力,其余层则使用最大窗口尺寸为112×112(对应8×8个patch)的窗口注意力。小于112×112的区域无需填充,能够保留其原始分辨率

这一设计使模型能够以输入的原生分辨率运行,避免了不必要的缩放或失真

其次,对于位置编码,作者采用二维旋转位置嵌入(2D RoPE),以有效捕捉二维空间中的空间关系

此外,为了更好地处理视频输入,作者将方法扩展到三维patch划分。具体来说,使用14×14的图像patch作为基本单元,这与传统用于静态图像的ViT保持一致。对于视频数据,将两个连续帧进行分组,大幅减少输入到语言模型的token数量

该设计不仅保持了与现有架构的兼容性,还在处理序列化视频数据时提升了效率

,为了简化整体网络结构,作者使ViT架构更加贴合大型语言模型(LLM)的设计原则

具体而言,他们采用RMSNorm(Zhang & Sennrich, 2019)进行归一化处理,并使用SwiGLU(Dauphin等, 2017)作为激活函数。这些选择提升了模型视觉与语言组件之间的计算效率和兼容性

最后,在训练方面,作者从零开始训练重新设计的ViT。训练过程包括多个阶段,涵盖CLIP预训练、视觉-语言对齐以及端到端微调

为了确保在不同输入分辨率下的鲁棒性,我们在原生分辨率下采用动态采样策略,即训练过程中,图像会根据其原始纵横比进行随机采样,从而使模型能够有效泛化到不同分辨率的输入

这种方法不仅提升了模型的适应能力,还确保了在处理不同尺寸视觉数据时训练的稳定性和高效性

3.1.2 原生动态分辨率与帧率

Qwen2.5-VL 在空间和时间两个维度上均实现了突破,从而能够高效处理多样化的多模态输入

  • 在空间域中,Qwen2.5-VL 能够动态地将不同尺寸的图像转换为长度相应的token序列
    与传统方法归一化坐标不同,该模型直接使用输入图像的实际尺寸来表示边界框、点以及其他空间特征。这使得模型能够内在地学习尺度信息,从而提升其对不同分辨率图像的处理能力
  • 对于视频输入,Qwen2.5-VL 引入了动态帧率(FPS)训练和绝对时间编码
    通过适应可变帧率,模型能够更好地捕捉视频内容的时间动态性

    且与其他通过引入文本时间戳或使用额外头部实现时间定位的方法不同,我们提出了一种新颖且高效的策略,将 MRoPE ID 直接与时间戳对齐。该方法使模型能够通过时间维度 ID 之间的间隔理解时间节奏,而无需增加任何额外的计算开销

3.1.3 多模态旋转位置嵌入M-RoPE与绝对时间对齐

位置嵌入对于视觉和语言模态中的序列数据建模至关重要。在 Qwen2-VL 中提出的多模态旋转位置嵌入(M-RoPE)的基础上,作者进一步扩展其功能,以更好地处理视频中的时间信息

Qwen2-VL 中的 MRoPE 将位置嵌入分解为三个独立的组成部分:时间、纵向和横向,以有效建模多模态输入

  • 对于文本输入,这三个组成部分均使用相同的位置 ID,因此 M-RoPE 在功能上等同于传统的一维 RoPE(Su 等,2024)
  • 对于图像输入,所有视觉 token 的时间ID 保持不变,而纵向和横向的 ID 则根据每个 token 在图像中的空间位置分配
  • 处理视频时,视频被视为帧序列,时间 ID 随每一帧递增,纵向和横向的分配方式与静态图像相同。然而,在 Qwen2-VL 中,M-RoPE 的时间位置 ID 仅与输入帧数相关,这并未考虑内容变化速度或视频中事件的绝对时间

为了解决这一限制,Qwen2.5-VL 引入了一项关键改进:将MRoPE 的时间组件与绝对时间对齐。如图1所示

通过利用时间 ID 之间的间隔,模型能够在不同帧率采样(FPS)的视频中学习一致的时间对齐

3.2 预训练:涉及预训练数据和预训练方案

3.2.1 预训练数据

与Qwen2-VL相比,作者大幅扩展了预训练数据的规模,从1.2万亿tokens增加到约4万亿tokens

且预训练数据集通过多种方法构建,包括清洗原始网页数据、合成数据等

该数据集涵盖了丰富的多模态数据类型,如图像描述、图文混排数据、光学字符识别(OCR)数据、视觉知识(如名人、地标、动植物识别)、多模态学术问答、定位数据、文档解析数据、视频描述、视频定位以及基于智能体的交互数据

在整个训练过程中,作者针对不同阶段,精细调整了各类数据的组成和比例,以优化学习效果

第一,交错的图像-文本数据

交错的图像-文本数据对于多模态学习至关重要,具有三大优势:

  1. 能够通过同时提供视觉和文本线索实现上下文内学习(Alayrac 等,2022)
  2. 在缺少图像时依然保持强大的仅文本能力(Lin 等,2024)
  3. 包含广泛的通用信息。然而,大量可用的交错数据缺乏有意义的文本-图像关联,并且通常存在噪声,限制了其在复杂推理和创意生成中的实用性

为了解决这些挑战,作者开发了一套数据评分与清洗流程,以确保仅使用高质量、相关性强的交错数据

该流程包括两个步骤:首先进行标准化数据清洗(Li等,2024e),随后采用内部评估模型进行四阶段评分

评分标准包括:

  1. 纯文本质量
  2. 图文相关性
  3. 图文互补性
  4. 信息密度平衡

如此严谨的方法提升了模型进行复杂推理和生成连贯多模态内容的能力

以下是这些图文评分标准的描述:

图文相关性:得分越高,表示图像与文本之间的关联越强,即图像能够有意义地补充、解释或扩展文本内容,而不仅仅是作为装饰

信息互补性:分数越高,表示图像与文本之间的信息互补性越强。两者应各自提供独特细节,共同构建完整叙述。信息密度平衡:分数越高,说明图像与文本之间的信息分布越均衡,避免文本或图像信息过多,确保二者之间达到适当的平衡

第二,使用绝对位置坐标进行数据定位

采用原生分辨率训练,旨在实现对世界更为精确的感知。相比之下,使用相对坐标无法有效表示图像中物体的原始尺寸和位置

  1. 为了解决这一局限性,Qwen2.5-VL 在训练过程中根据输入图像的实际尺寸采用坐标值来表示边界框和点。该方法确保模型能够更好地捕捉物体在现实世界中的尺度和空间关系,从而提升在目标检测与定位等任务中的表现
  2. 为提升定位能力的泛化性,作者开发了一个涵盖边界框和带有指代表达的点的大型综合数据集,结合了公开数据集与自有数据
    作者的方法包括将数据合成为多种格式,如XML、JSON及自定义格式,并采用了诸如复制粘贴增强(Ghiasi等,2021)以及利用现成模型如Grounding DINO(Liu等,2023c)和SAM(Kirillov等,2023)的合成技术
    该方法有助于更全面地评估和提升定位能力
  3. 为了提升模型在开放词汇检测任务中的表现,作者扩展了训练数据集,使其包含超过10,000个物体类别
    此外,为了增强模型在极端物体检测场景下的有效性,作者在查询中合成了不存在的物体类别,并为每个物体构建了包含多个实例的图像数据
  4. 为了确保卓越的基于点的目标定位能力,作者构建了一个涵盖公开数据和合成数据的全面指点数据集
    具体而言,数据来源包括来自PixMo(Deitke等人,2024)的公开指点与计数数据、公开可获取的目标定位数据(涵盖目标检测与实例分割任务),以及通过自动化流程合成的、针对特定图像细节生成的高精度指点数据

第三,文档全能解析数据

为了训练 Qwen2.5-VL,作者合成了大规模的文档数据集。传统的文档内容解析方法通常依赖于不同的模型分别处理版面分析、文本提取、图表理解以及插图处理

  • 与之不同,Qwen2.5-VL 旨在使通用模型具备全面的文档解析、理解和格式转换能力。具体而言,作者在文档中融入了多样化的元素,如表格、图表、公式、自然或合成图片、乐谱以及化学式
  • 这些元素均采用统一的 HTML 格式进行标注,将版面框信息与插图描述整合到 HTML 标签结构中
    还根据典型的阅读顺序丰富了文档布局,并在基于 HTML 的标注中加入了各模块(如段落、图表)对应的坐标信息

这一创新方法使得任何文档的全部信息,包括其布局、文本、图表和插图,都能够以标准化和统一的方式进行表示。因此,Qwen2.5-VL 实现了多模态文档元素的无缝整合,从而促进了更高效、更准确的文档理解与转换

以下是 QwenVL 的 HTML 格式——此格式确保所有文档元素均以结构化和可访问的方式呈现,从而使 Qwen2.5-VL 能够高效处理和理解

第四,OCR数据

作者收集并整理了来自不同来源的数据,以提升OCR性能,包括合成数据、开源数据以及自有采集数据。合成数据通过视觉文本生成引擎生成,用于产生高质量的自然场景文本图像

且为了支持更广泛的语言范围并增强多语种能力,作者引入了大规模多语种OCR数据集。该数据集支持多种语言,包括法语、德语、意大利语、西班牙语、葡萄牙语、阿拉伯语、俄语、日语、韩语和越南语

数据集经过精心筛选,以确保多样性和高质量,结合了高质量的合成图像和真实世界的自然场景图像。这种组合能够确保模型在各种语言环境下表现稳定,并提升模型对不同文本外观及环境条件的适应能力

  • 对于图表类数据,作者利用matplotlib、seaborn和plotly等可视化库合成了100万个样本,涵盖柱状图、关系图和热力图等类别
  • 针对表格数据,作者通过离线端到端表格识别模型处理了600万个真实样本,并进一步过滤掉置信度低、表格重叠及单元格密度不足的表格

第五,视频数据

为了提升对不同帧率(FPS)视频数据的理解鲁棒性,作者在训练过程中动态采样FPS,以实现训练数据集中FPS分布的更加均衡

此外,对于超过半小时长度的视频,作者通过专门的合成流程,针对性地构建了一组长视频字幕,即通过多帧字幕合成生成

关于视频定位数据,作者采用了秒级格式和时-分-秒-帧(hmsf)格式两种时间戳,确保模型能够准确理解并输出多种时间格式

第六,Agent数据

作者提升了Qwen2.5-VL的感知与决策能力,以构建其代理能力

在感知方面,作者在移动端、网页端和桌面端收集了屏幕截图。采用合成数据引擎生成了截图描述及UI元素定位标注。描述任务有助于Qwen2.5-VL理解图形界面,而定位任务则帮助其对元素的外观与功能进行对齐

在决策方面,我们首先将移动端、网页端和桌面端的操作统一为具有共享动作空间的函数调用格式。通过从开源数据收集和由代理框架(Wang等,2025;2024b;c)在虚拟环境中合成的一组带注释的多步轨迹,并将其重新格式化为函数形式

且作者进一步通过人工和模型标注员为每一步生成推理过程(Xu 等人,2024)

  1. 具体而言,针对一个真实操作,作者会在截图上进行高亮标记
  2. 随后,向标注者提供全局查询,以及该操作前后的截图,并要求他们撰写推理内容,以解释该操作背后的意图。且还利用基于模型的筛选器来剔除低质量的推理内容

这样的推理内容能够防止 Qwen2.5-VL 过拟合于真实操作,从而使其在实际场景中更具鲁棒性

3.2.2 预训练方案

作者从头开始训练了一个视觉Transformer(ViT),使用了DataComp(Gadre等,2023)和部分内部数据集,对视觉编码器进行初始化

同时,利用了预训练的Qwen2.5大语言模型(LLM)(Yang等,2024a)对LLM组件进行初始化

如表2所示,预训练过程分为三个不同阶段,每个阶段采用不同的数据配置和训练策略,逐步提升模型能力

  1. 在第一阶段,仅对ViT进行训练,以提升其与语言模型的对齐能力,为多模态理解奠定坚实基础
    本阶段的主要数据来源包括图像描述、视觉知识和OCR数据。这些数据集经过精心筛选,旨在培养ViT提取有意义视觉表征的能力,从而能够有效地与文本信息融合
  2. 在第二阶段,所有模型参数都被解冻,模型将在多样化的多模态图像数据集上进行训练,以增强其处理复杂视觉信息的能力
    本阶段引入了更为复杂且需要推理的数据集,如交错数据、多任务学习数据集、视觉问答(VQA)、多模态数学、基于智能体的任务、视频理解以及纯文本数据集
    这些数据集强化了模型在视觉与语言模态之间建立更深层次联系的能力,使其能够应对日益复杂的任务
  3. 在第三阶段,为了进一步提升模型对更长序列的推理能力,视频和基于智能体的数据被引入,同时序列长度也得到增加。这使得模型能够以更高的精度处理更高级且复杂的多模态任务
    通过扩展序列长度,模型获得了处理更长上下文的能力,这对于需要长距离依赖和复杂推理的任务尤为有益

为了解决不同图像尺寸和文本长度在训练过程中导致的计算负载不均衡问题,作者采用了一种优化训练效率的策略。主要的计算开销来自于大语言模型(LLM)和视觉编码器。鉴于视觉编码器的参数相对较少,并且作者引入了窗口注意力机制以进一步降低其计算需求,因此重点关注在不同GPU之间平衡LLM的计算负载

具体来说,作者根据输入到LLM的序列长度动态打包数据样本,以确保计算负载的一致性。在第一阶段和第二阶段,数据统一打包为8,192的序列长度;而在第三阶段,序列长度增加到32,768,以适应模型对更长序列的处理能力提升

3.3 后训练

Qwen2.5-VL 的后训练对齐框架采用了包括有监督微调(SFT)和直接偏好优化(DPO)(Rafailov 等,2023)在内的双阶段优化范式。这一分层对齐策略将参数高效的领域适应与人类偏好蒸馏相结合,通过不同的优化目标,分别解决了表征基础和行为精细化的问题

有监督微调(SFT)旨在通过有针对性的指令优化,弥合预训练表示与下游任务需求之间的差距。在此阶段,作者采用 ChatML 格式(Openai, 2024)对指令跟随数据进行结构化,刻意偏离预训练数据的模式,但在架构上与 Qwen2-VL(Wang 等, 2024e)保持一致

这一格式转换实现了三项关键适配:

  1. 为多模态轮次交互显式标注对话角色
  2. 在文本指令中结构化注入视觉嵌入
  3. 通过格式感知的打包方式保留跨模态的位置信息

通过在这一增强的数据结构下让模型接触精心筛选的多模态指令-响应对,SFT 实现了高效的知识迁移,同时保持了预训练特征的完整性

3.3.1 指令数据

有监督微调(SFT)阶段采用了精心策划的数据集,旨在提升模型在多种模态下的指令遵循能力

  1. 该数据集包含约200万条数据,纯文本数据和多模态数据各占50%。多模态数据包括图文和视频文本组合。多模态数据的引入使模型能够有效处理复杂输入
  2. 值得注意的是,尽管纯文本与多模态条目数量相当,但由于嵌入了视觉和时序信息,多模态条目在训练过程中消耗了显著更多的tokens和计算资源
  3. 该数据集主要由中文和英文数据构成,并辅以多语种条目,以支持更广泛的语言多样性

该数据集的结构设计反映了对话复杂度的多样性,包括单轮和多轮交互。这些交互进一步结合了从单图像输入到多图像序列的不同场景,从而模拟真实的对话动态。查询来源主要取自开源仓库,并辅以精选采购数据集和在线查询数据的补充。这种组合方式确保了数据集的广泛覆盖性,并提升了其代表性

  • 为应对广泛的应用场景,该数据集包含了专门用于通用视觉问答(VQA)、图像描述、数学问题求解、编程任务和安全相关查询的子集
  • 此外,还构建了面向文档与光学字符识别(Doc 和 OCR)、定位、视频分析和智能体交互的专用数据集,以提升模型在特定领域的能力。有关数据的详细信息可参见论文的相关章节
  • 这种结构化且多样化的组成确保了 SFT 阶段能够有效地将预训练表示与下游多模态任务的细致需求对齐,从而促进模型表现出强健且具备上下文感知能力的性能

3.3.2 数据过滤流程

训练数据的质量是影响视觉-语言模型性能的关键因素。开源与合成数据集通常存在较大差异,往往包含噪声、冗余或低质量样本

因此,严格的数据清洗与过滤流程对于解决这些问题至关重要。低质量数据可能导致预训练表征与下游任务需求之间的对齐效果不佳,从而削弱模型有效处理复杂多模态任务的能力。因此,确保高质量数据对于实现稳健且可靠的模型性能至关重要

为应对这些挑战,作者实施了一个两阶段的数据过滤流程,旨在系统性地提升有监督微调(SFT)数据集的质量。该流程包括以下两个阶段:

  1. 阶段一:领域特定分类 在初始阶段,采用Qwen2-VL-Instag——一种基于Qwen2-VL-72B衍生的专用分类模型,对问答(QA)对进行分层分类

    该模型将QA对划分为八个主要领域,例如编码和规划,并进一步细分为30个精细子类。例如,主领域“编码”被细分为“代码调试”、“代码生成”、“代码翻译”和“代码理解”等子类别。这种分层结构有助于实现基于领域及子领域的过滤策略,使流程能够针对每个类别的具体特征优化数据清洗过程,从而提升有监督微调(SFT)数据集的质量和相关性
  2. 第二阶段:领域定制过滤 第二阶段涉及领域定制的过滤方法,综合采用基于规则和基于模型的方式,以全面提升数据质量。鉴于由于文档处理、光学字符识别(OCR)和视觉定位等领域的多样性,每个领域可能都需要独特的过滤策略

    以下概述在这些领域中应用的通用过滤策略
    1 基于规则的过滤
    采用预先定义的启发式方法来剔除低质量或存在问题的数据条目。具体而言,对于与文档处理、OCR和视觉定位任务相关的数据集,会识别并移除重复模式,以防止模型学习过程出现偏差,确保最佳性能
    此外,包含不完整、被截断或格式不正确的响应的条目——这在合成数据集和多模态场景中较为常见——也会被排除
    为了保持相关性并遵守伦理标准,与任务无关或可能导致有害输出的查询和答案同样会被剔除。这种结构化的方法确保数据集符合伦理准则,并满足特定任务的需求

    2 基于模型的过滤
    进一步通过利用在Qwen2.5-VL系列上训练的奖励模型来优化数据集。这些模型从多个维度对多模态问答对进行评估。查询项会根据其复杂性和相关性进行评定,仅保留那些具有适当挑战性且语境相关的样本。答案则依据正确性、完整性、清晰度、与查询的相关性以及有用性等方面进行评估
    在视觉基础任务中,尤其注重验证视觉信息的准确解读与应用。通过多维度评分,确保只有高质量数据进入SFT阶段

3.3.3 增强推理的拒绝采样

为了补充结构化数据过滤流程,作者采用拒绝采样作为优化数据集并提升视觉-语言模型(VLM)推理能力的策略。该方法对于需要复杂推理的任务尤为关键,例如数学问题求解、代码生成以及特定领域的视觉问答(VQA)

  1. 已有研究表明,融入思维链(Chain-of-Thought,CoT)推理能够显著提升模型的推理表现(Wei 等,2022;DeepSeek-AI 等,2024)。作者的后训练实验也证实了这一点,强调了结构化推理过程对于获得高质量结果的重要性
  2. 拒绝采样过程始于包含真实标注的数据集。这些数据集经过精心筛选,涵盖了需要多步推理的任务,如数学问题求解、代码生成以及特定领域的视觉问答(VQA)
    作者利用Qwen2.5-VL模型的中间版本,对生成的回答与真实答案进行比对。只有当模型输出与期望答案一致的样本才会被保留,从而确保数据集仅包含高质量、准确的示例
  3. 为了进一步提升数据质量,作者施加了额外的约束,以过滤掉不理想的输出。具体而言,排除了存在语码转换、篇幅过长或出现重复模式的回答。这些标准确保了CoT推理过程的清晰性和连贯性,这对于下游应用至关重要

    在将链式思维(CoT)推理应用于视觉-语言模型时,一个关键挑战在于其对文本和视觉两种模态的依赖。中间推理步骤可能无法充分整合视觉信息,表现为忽略相关视觉线索或对其误解
  4. 为了解决这一问题,作者开发了基于规则和基于模型的过滤策略,用于验证中间推理步骤的准确性。这些机制确保了CoT过程中的每一步都能有效地整合视觉与文本模态

    尽管做出了这些努力,实现最佳的模态对齐仍然是一个持续存在的挑战,需要进一步的技术进步

总之,通过拒绝采样生成的数据显著提升了模型的推理能力。通过对数据集进行迭代优化,去除低质量或有误的样本,作者使模型能够从高质量的示例中学习,从而强化其准确且连贯的推理过程。这一方法不仅增强了模型处理复杂任务的能力,也为未来视觉-语言建模的进一步提升奠定了基础

3.3.4 训练方案

Qwen2.5-VL 的后训练过程分为两个阶段:有监督微调(SFT)和直接偏好优化(DPO),在这两个阶段中,Vision Transformer(ViT)参数均保持冻结

  1. 在 SFT 阶段,模型在多样化的多模态数据上进行微调,这些数据包括图文对、视频和纯文本,数据来源涵盖通用视觉问答(VQA)、拒绝采样以及文档与 OCR、定位、视频和智能体相关等专用数据集
  2. DPO 阶段则专注于图文和纯文本数据,利用偏好数据使模型对齐人类偏好,并确保每个样本仅处理一次,以实现高效优化

该简化流程提升了模型的跨模态推理与任务特定性能,同时保持与用户意图的一致性

第四部分 Qwen3-VL

25年国庆节前,阿里千问团队发布了Qwen3-VL『其blog、其技术报告:Qwen3-VL Technical Report其GitHub』,其具备如下特征

  • 视觉 Coding 能力大幅提升
    实现图像生成代码以及视频生成代码,例如看到设计图,代码生成 Draw.io/HTML/CSS/JS 代码,真正实现“所见即所得”的视觉编程
  • 空间感知能力大幅提升
    2D grounding 从绝对坐标变为相对坐标,支持判断物体方位、视角变化、遮挡关系,能实现 3D grounding,为复杂场景下的空间推理和具身场景打下基础
    ————
    嗯,这个具身场景 很得我心啊,^_^
    顺带,我于25年10.9日发现,
    Qwen也要做机器人了:林俊旸官宣成立具身智能团队

    不过,确实有不少具身模型 基于Qwen-VL搞

  • 长上下文支持和长视频理解
    全系列模型原生支持 256K token 的上下文长度,并可扩展至 100 万 token
    这意味着,无论是几百页的技术文档、整本教材,还是长达两小时的视频,都能完整输入、全程记忆、精准检索,支持视频精确定位到秒级别时刻

3.1 模型架构

在架构上,他们仍旧采用原生动态分辨率设计,但在结构设计上进行了更新:

  1. 一是采用 MRoPE-Interleave,原始MRoPE将特征维度按照时间(t)、高度(h)和宽度(w)的顺序分块划分,使得时间信息全部分布在高频维度上
    且在 Qwen3-VL 中采取了 t,h,w 交错分布的形式,实现对时间,高度和宽度的全频率覆盖,这样更加鲁棒的位置编码能够保证模型在图片理解能力相当的情况下,提升对长视频的理解能力
  2. 二是引入 DeepStack 技术,融合 ViT 多层次特征,提升视觉细节捕捉能力和图文对齐精度;即沿用 DeepStack 的核心思想,将以往多模态大模型(LMM)单层输入视觉tokens的范式,改为在大型语言模型 (LLM) 的多层中进行注入
    这种多层注入方式旨在实现更精细化的视觉理解

    且在此基础上,他们进一步优化了视觉特征 token 化的策略
    具体而言,将来自 ViT 不同层的视觉特征进行 token 化,并以此作为视觉输入
    这种设计能够有效保留从底层(low-level)到高层(high-level)的丰富视觉信息。且实验结果表明,该方法在多种视觉理解任务上均展现出显著的性能提升
  3. 三是将原有的视频时序建模机制 T-RoPE 升级为 文本时间戳对齐机制
    该机采用“时间戳-视频帧”交错的输入形式,实现帧级别的时间信息与视觉内容的细粒度对齐

    同时,模型原生支持“秒数”与“时:分:秒”(HMS)两种时间输出格式
    这一改进显著提升了模型对视频中动作、事件的语义感知与时间定位精度,使其在复杂时序推理任务——如事件定位、动作边界检测、跨模态时间问答等——中表现更稳健、响应更精准

// 待更

    Logo

    欢迎加入 MCP 技术社区!与志同道合者携手前行,一同解锁 MCP 技术的无限可能!

    更多推荐