当前位置: 首页 > article >正文

qwenvl 以及qwenvl 2 模型架构理解

qwenvl 模型理解:

  • 参考资料:
    https://qwenlm.github.io/zh/blog/qwen2-vl/
    https://github.com/QwenLM/Qwen2-VL?tab=readme-ov-file
    https://qwenlm.github.io/zh/blog/qwen2-vl/

  • 论文:
    qwenvl https://arxiv.org/abs/2308.12966
    Qwen2-VL https://arxiv.org/pdf/2409.12191

最近正好在做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。这种训练方法在模型理解长视频的能力和训练效率之间达成了平衡。


http://www.kler.cn/a/458280.html

相关文章:

  • LinuxC高级day4
  • 【YOLO算法改进】ALSS-YOLO:无人机热红外图像|野生动物小目标检测
  • 基于JavaWeb的汽车维修保养智能预约系统
  • 0055. shell命令--useradd
  • 吊舱激光测距核心技术详解!
  • 电子电气架构 --- 汽车电子电器设计概述
  • 黑马程序员Java笔记整理(day08)
  • 【电脑组装】【教程】一、主板和CPU
  • 如何自动解决服务器弹性伸缩问题?
  • .net core 的面向对象编程
  • Go Web开发之Revel - 网页请求处理流程
  • MATLAB中binornd函数用法
  • 钉钉开发h5微应用文档链接总结
  • 《机器学习》——KNN算法
  • conda常用维护命令
  • 多说话人ASR的衡量指标和有效计算工具包
  • 第 29 章 - ES 源码篇 - 网络 IO 模型及其实现概述
  • 第1章 数据结构导论
  • 【服务器学习专栏 1.2 -- 带外管理】
  • AI 助力游戏开发中的常用算法实现
  • 机器学习算法深度解析:以支持向量机(SVM)为例的实践应用
  • 设计模式の中介者发布订阅备忘录模式
  • 一分钟学习数据安全——IAM数据安全的安当实践
  • MATLAB符号计算-初步认识符号对象
  • bat脚本实现枚举本地磁盘,并从A-Z中找出一个可用磁盘映射
  • 上传npm包加强