qwenvl 以及qwenvl 2 模型架构理解

qwenvl 模型理解:

最近正好在做qwenvl 总结记录一下qwenvl 以及qwenvl2模型的架构,本文主要聚焦模型架构和训练技术,其他内容后面有涉及再补

注意:要了解qwenvl 2需要先理解qwenvl ,因为qwenvl 2文章明确提到qwenvl 2的架构是和qwenvl保持一致的

由于我主要关注模型架构,因此读论文的时候读完摘要直接看model architecture

qwenvl

架构图

qwenvl架构很简单,就是三个部分:

  • QwenLM: 作为Qwen-VL模型的基础组件,这个部分采用了一个大型语言模型,其初始权重来自于预训练的Qwen-7B模型。

    如果大家看一下代码的话,这个模型的结构和经典的llamma等大模型没什么区别

  • ViT: 在训练和推理过程中,输入图像被调整到特定的分辨率。视觉编码器通过将图像分成14步的小块来处理图像,生成一组图像特征。

  • Position-aware Vision-Language Adapter:

    为了缓解长图像特征序列带来的效率问题,Qwen-VL引入了一个压缩图像特征的视觉语言适配器。该适配器包括一个随机初始化的单层交叉注意模块。该模块使用一组可训练向量(Embeddings)作为query向量,并使用视觉编码器的图像特征作为交叉注意操作的关键。该机制将视觉特征序列压缩为256的固定长度。

qwenvl 2

文章作者明确了基础架构和qwenvl一样,主要有三个地方不同:

  • 朴素动态分辨率:

    引入 Naive Dynamic Resolution 机制,用 2D - RoPE 替代绝对位置嵌入,可处理任意分辨率图像并转换为不同数量视觉标记,减少高分辨率图像信息损失,推理时控制序列长度和视觉标记数量。

    Qwen2-VL 在架构上的一个关键改进是引入了朴素动态分辨率支持(Dehghani 等人,2024)。与 Qwen-VL 不同,Qwen2-VL 现在能够处理任意分辨率的图像 ,并将其动态转换为数量可变的视觉标记。为支持这一特性,我们对 ViT 进行了修改,移除了原来的绝对位置嵌入,并引入了 2D - RoPE来捕捉图像的二维位置信息。在推理阶段,不同分辨率的图像被打包成一个单一序列,通过控制打包长度来限制 GPU 内存使用。此外,为减少每个图像的视觉标记数量,在 ViT 之后使用一个简单的 MLP 层将相邻的 2×2 个标记压缩为一个标记,并在压缩后的视觉标记的开头和结尾放置特殊的 <|vision_start|> 和 <|vision_end|> 标记。因此,一张分辨率为 224×224、使用 patch_size = 14 的 ViT 编码的图像,在进入 LLM 之前会被压缩到 66 个标记。(224*224 / 14 / 14 / 2 / 2 =64, 64 + 2=66)

  • M - RoPE(Multimodal Rotary Position Embedding,多模态旋转位置嵌入)

    将旋转嵌入分解为时间、高度和宽度分量,有效编码多模态输入位置信息,提升模型对长序列的处理能力。

    这是 Qwen2 - VL 模型中的一项重要创新技术,主要用于有效编码多模态输入的位置信息,在提升模型性能方面发挥关键作用。

    结构与原理:与传统大语言模型(LLMs)中仅能编码一维位置信息的 1D - RoPE 不同,**M - RoPE 将原始旋转嵌入分解为三个分量,即时间、高度和宽度。**在处理文本输入时,其各分量利用相同的位置 ID,此时功能上等同于 1D - RoPE。而处理图像时,每个视觉标记的时间 ID 保持恒定,高度和宽度分量则依据标记在图像中的位置分配不同 ID。对于视频(视为帧序列),时间 ID 会随每一帧递增,高度和宽度分量的 ID 分配模式与图像相同。当模型输入包含多种模态时,每个模态的位置编号通过在前一模态的最大位置 ID 上加 1 进行初始化。

    优势与作用:在性能表现上,通过实验验证,在多个下游任务中,如与 1D - RoPE 对比,M - RoPE 能取得更优结果,尤其在视频基准测试中优势明显。它能够更精准地捕捉多模态数据中不同元素的位置关系,使模型对图像和视频内容的理解更为准确。在视频理解任务中,能更好地识别视频中物体的运动轨迹、相对位置等信息。在模型的长序列处理能力方面,M - RoPE 有助于降低图像和视频的位置 ID 值,从而使模型在推理过程中能够更好地外推到更长的序列,有效提升了模型对复杂多模态数据的处理能力和泛化能力,进一步增强了 Qwen2 - VL 模型在多模态任务中的竞争力。

    下面是M - RoPE的结构图

  • 统一的图像和视频理解:Qwen2-VL 采用了包含图像和视频数据的混合训练方案,确保在图像理解和视频理解方面的熟练程度。为了尽可能完整地保留视频信息,我们以每秒两帧的频率对每个视频进行采样。此外,我们集成了深度为 2 的 3D 卷积(Carreira 和 Zisserman,2017)来处理视频输入,使模型能够处理 3D 管而不是 2D 块,从而使其能够在不增加序列长度的情况下处理更多的视频帧。为保持一致性,将每幅图像视为两个相同的帧。为了在长视频处理的计算需求和整体训练效率之间取得平衡,我们动态调整每个视频帧的分辨率,将每个视频的标记总数限制为 16384。这种训练方法在模型理解长视频的能力和训练效率之间达成了平衡。

相关推荐
没有bug.的程序员8 小时前
Spring Boot 与 Sleuth:分布式链路追踪的集成、原理与线上故障排查实战
java·spring boot·分布式·后端·分布式链路追踪·sleuth·线上故障排查
嘿是我呀8 小时前
【用npm安装node时报错“npm 无法加载文件”】
前端·npm·node.js
干前端8 小时前
Vue3 组件库工程化实战:BEM 命名规范与 useNamespace 深度解析
前端·css
牛马1118 小时前
flutter Riverpod 中的 overrideWith
android·java·flutter
弓弧名家_玄真君8 小时前
在ubuntu中安装redis
前端·bootstrap·mybatis
RFCEO8 小时前
学习前端编程:DOM 树、CSSOM 树、渲染树详解
前端·学习·渲染树·dom 树·cssom 树·浏览器的渲染流程·回流/重绘
笨蛋不要掉眼泪8 小时前
Redis主从复制:原理、配置与实战演示
前端·redis·bootstrap·html
bigdata-rookie8 小时前
Starrocks 数据模型
java·前端·javascript
白帽子凯哥哥8 小时前
网络安全Web基础完全指南:从小白到入门安全测试
前端·sql·web安全·信息安全·渗透测试·漏洞
2501_937193148 小时前
TV 电视影视大全:全终端流畅观影技术解析
android·源码·源代码管理·机顶盒