qwenvl 以及qwenvl 2 模型架构理解

news2025/1/2 22:47:24

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.coloradmin.cn/o/2268248.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

高效使用AI完成编程项目任务的指南:从需求分析到功能实现

随着人工智能工具的普及&#xff0c;即便是零编程基础或基础薄弱的用户&#xff0c;也可以借助AI完成许多技术任务。然而&#xff0c;要高效地使用AI完成编程任务&#xff0c;关键在于如何清晰表达需求&#xff0c;并逐步引导AI实现目标。 在本文中&#xff0c;我们将通过开发…

AI生成视频字幕--VideoCaptioner/卡卡字幕助手

github: https://github.com/WEIFENG2333/VideoCaptioner 123云盘&#xff1a;https://www.123865.com/s/inrnjv-1sk6H提取码:4455 B站教程&#xff1a;https://www.bilibili.com/video/BV1giBqYtEqG?vd_source8e73ffa42accf9446f3cb7fddc85b38c 优点&#xff1a;1.免费&am…

嵌入式单片机窗口看门狗控制与实现

窗口看门狗 注意:WWDG外设没有独立的时钟源,而是挂载在APB1总线下,APB1总线外设时钟为42MHZ。 了解WWDG外设的使用流程,可以参考stm32f4xx_wwdg.c的开头注释,具体流程如下图所示

从 ELK Stack 到简单 — Elastic Cloud Serverless 上的 Elastic 可观察性

作者&#xff1a;来自 Elastic Bahubali Shetti, Chris DiStasio 宣布 Elastic Cloud Serverless 上的 Elastic Observability 正式发布 — 一款完全托管的可观察性解决方案。 随着组织规模的扩大&#xff0c;一个能够处理分布式云环境的复杂性并提供实时洞察的可观察性解决方…

【教程】通过Docker运行AnythingLLM

转载请注明出处&#xff1a;小锋学长生活大爆炸[xfxuezhagn.cn] 如果本文帮助到了你&#xff0c;欢迎[点赞、收藏、关注]哦~ 官方教程&#xff1a;Local Docker Installation ~ AnythingLLM 1、先创建一个目录用于保存anythingllm的持久化文件&#xff1a; sudo mkdir /app su…

RabbitMQ基础篇之快速入门

文章目录 一、目标需求二、RabbitMQ 控制台操作步骤1.创建队列2.交换机概述3.向交换机发送消息4.结果分析5.消息丢失原因 三、绑定交换机与队列四、测试消息发送五、消息查看六、结论 一、目标需求 新建队列&#xff1a;创建 hello.queue1 和 hello.queue2 两个队列。消息发送…

Lottie动画源码解析

Lottie是一个很成熟的开源动画框架&#xff0c;它支持直接使用从AE导出的动画文件&#xff0c;在不同平台均可快速使用&#xff0c;大大减轻了程序员的工作量&#xff0c;也让复杂的动画成为可能。该动画文件使用Json格式来描述内容&#xff0c;可以大大缩减文件的体积。在Andr…

手机发烫怎么解决?

在当今这个智能手机不离手的时代&#xff0c;手机发烫成了不少人头疼的问题。手机发烫不仅影响使用手感&#xff0c;长期过热还可能损害手机硬件、缩短电池寿命&#xff0c;甚至引发安全隐患。不过别担心&#xff0c;下面这些方法能帮你有效给手机 “降温”。 一、使用习惯方面…

win10、win11-鼠标右键还原、暂停更新

系统优化 win 10jihuo win 11jihuo鼠标右键还原暂停更新 update 2024.12.28win 10 jihuo winx&#xff0c;打开powershell管理员&#xff0c;输入以下命令,选择1并等待 irm https://get.activated.win | iex参考&#xff1a;https://www.bilibili.com/video/BV1TN411M72J/?sp…

Android 学习小记1

目录 先介绍一下Android Studio 看看常见的模板 1. No Activity 2. Empty Activity 3. Gemini API Starter 4. Basic View Activity 5. Bottom Navigation Activity 6. Empty Views Activity 7. Navigation Drawer Views Activity 8. Responsive Views Activity 9. G…

uniapp使用ucharts组件

1.ucharts准备 有两种使用方式&#xff1a;一种是在uni的插件市场下载&#xff08;组件化开发&#xff09;。一种是手动引入ucharts包。官方都封装好组件了&#xff0c;我们不用岂不是浪费。 直接去dcloud插件市场&#xff08;DCloud 插件市场&#xff09;找&#xff0c;第一…

mybatis-plus自动填充时间的配置类实现

mybatis-plus自动填充时间的配置类实现 在实际操作过程中&#xff0c;我们并不希望创建时间、修改时间这些来手动进行&#xff0c;而是希望通过自动化来完成&#xff0c;而mybatis-plus则也提供了自动填充功能来实现这一操作&#xff0c;接下来&#xff0c;就来了解一下mybatis…

一、Hadoop概述

文章目录 一、Hadoop是什么二、Hadoop发展历史三、Hadoop三大发行版本1. Apache Hadoop2. Cloudera Hadoop3. Hortonworks Hadoop 四、Hadoop优势1. 高可靠性2. 高扩展性3. 高效性4. 高容错性 五、Hadoop 组成1. Hadoop1.x、2.x、3.x区别2. HDFS 架构概述3. YARN 架构概述4. Ma…

深度学习笔记(9)——神经网络和反向传播

神经网络和反向传播 神经网络架构&#xff1a; 更多的神经元,更大的模型容量,使用更强的正则化进行约束。 神经网络的分层计算 f W 2 m a x ( 0 , W 1 x b 1 ) b 2 fW_2max(0,W_1xb_1)b_2 fW2​max(0,W1​xb1​)b2​,其中max函数体现了非线性,如果想要加深网络的层次,必须…

大模型辅助测试的正确打开方式?

测试的基本目的之一&#xff0c;是对被测对象进行质量评估。换言之&#xff0c;是要提供关于被测对象质量的“确定性”。因此&#xff0c;我们很忌讳在测试设计中引入“不确定性”&#xff0c;比如采用不可靠的测试工具、自动化测试代码逻辑复杂易错、测试选择假设过于主观等等…

ipad如何直连主机(Moonlight Sunshine)

Windows 被连接主机&#xff08;Windows&#xff09; 要使用的话需要固定ip&#xff0c;不然ip会换来换去&#xff0c;固定ip方法本人博客有记载Github下载Sunshine Sunshine下载地址除了安装路径需要改一下&#xff0c;其他一路点安装完成后会打开Sunshine的Web UI&#xff…

sentinel集成nacos启动报[check-update] get changed dataId error, code: 403错误排查及解决

整合nacos报403错误 因为平台写的一个限流代码逻辑有问题&#xff0c;所以准备使用sentinel来限流。平台依赖里面已经引入了&#xff0c;之前也测试过&#xff0c;把sentinel关于nacos的配置加上后&#xff0c;启动一直输出403错误 [fixed-10.0.20.188_8848-test] [check-upda…

紫光同创-盘古200pro+开发板

本原创文章由深圳市小眼睛科技有限公司创作&#xff0c;版权归本公司所有&#xff0c;如需转载&#xff0c;需授权并注明出处&#xff08;www.meyesemi.com) 一、开发系统介绍 开发系统概述 MES2L676-200HP 开发板采用紫光同创 logos2 系列 FPGA&#xff0c;型号&#xff1a;…

Vue开发环境搭建上篇:安装NVM和NPM(cpnm、pnpm)

文章目录 引言I 安装NVM1.1 Windows系统安装NVM,实现Node.js多版本管理1.2 配置下载镜像1.3 NVM常用操作命令II NPM永久使用淘宝源安装 cnpm安装pnpm【推荐】see also: vscode常用插件引言 淘宝镜像:http://npm.taobao.org 和 http://registry.npm.taobao.org 已在 2022.06.3…

【AI大模型】探索GPT模型的奥秘:引领自然语言处理的新纪元

目录 &#x1f354; GPT介绍 &#x1f354; GPT的架构 &#x1f354; GPT训练过程 3.1 无监督的预训练语言模型 3.2 有监督的下游任务fine-tunning &#x1f354; 小结 学习目标 了解什么是GPT.掌握GPT的架构.掌握GPT的预训练任务. &#x1f354; GPT介绍 GPT是OpenAI公…