Qwen2-VL论文阅读笔记

第1章介绍
论文亮点:
1、 the Naive Dynamic Resolution mechanism
2、Multimodal Rotary Position Embedding (M-RoPE) 2D Rotary Position Embedding
3、统一图片和视频的处理范式、增i强视觉感知能力
4、LVLMs的scaling laws:2B、8B、72B
5、 dynamic resolution training

通用的方法: visual encoder→cross-modal connector→LL
其他提高的方法有
larger model architectures
higher-resolution images
advanced techniques:MoE、 model ensembles、more sophisticated connectors

qwen2vl的能力:
State-of-the-art understanding across various resolutions and aspect ratios
Comprehension of extended-duration videos (20 min+)
Robust agent capabilities for device operation

第2章方法
675M的ViT适配不同大小的LLM

Naive Dynamic Resolution - 用2D-RoPE取代绝对位置编码 推理阶段的序列长度是可控的 【推理阶段的不定长的vision tokens是怎么处理的?】
224 * 224 分辨率 在 patch_size=14 的ViT下 会被处理成 224/14/2 = 8 8x8=64 64 + 2 成为 66个tokens

Multimodal Rotary Position Embedding (M-RoPE) - temporal, height, and width
视频:序列帧
In scenarios where the model’s input encompasses multiple modalities, position numbering for
each modality is initialized by incrementing the maximum position ID of the preceding modality by one.

Unified Image and Video Understanding
每秒视频分成两帧、 综合 深度为2的 3D convolutions、允许模型处理 3D tubes、从而处理更多视频帧而不用增加序列长度。
保持一致性、每张图片被视为两个相同帧。
动态调整每个视频帧的分辨率,每个视频的tokens限制在 16384。

2.2 训练
遵从qwenvl的三阶段:用image-text单独训练ViT、解冻所有参数训练理解能力、最后冻住ViT只训练LLM遵循格式化数据
训练数据集:image-text pairs, ocr, 交错的图文文章,vqa、video对话,图片知识等

预训练初始阶段:600B tokens

第一个预训练阶段:600B tokens 位置编码:RoPE-2D ViT (DFN派生)
预训练阶段目的: 学习 图文关系、通过ocr的图像文本上下文识别、图片分类任务。 有助于核心 视觉文本相关性和对齐能力训练。

第二个预训练阶段:800B tokens的 图像相关数据 增加图像文本的细微理解;视觉问答数据集增强了 图片问答的能力。多任务数据集、纯文本数据集同样重要。

整个预训练、用了1.4Ttokens,有图片、也有文本。 但在训练阶段,只用文本监督。【怎么理解? 我理解这是第三个阶段、格式学习阶段】

微调阶段,用ChatML格式 instruction-following 包括文本和多模态对话数据(image question-answering, document
parsing, multi-image comparison, video comprehension, video stream dialogue, and agent-based interactions)

2.2.1 数据格式
Dialogue Data
<|vision_start|> and <|vision_end|>
<|im_start|> and <|im_end|>

Visual Grounding
<|box_start|> and <|box_end|> “(Xtop left, Ytop left),(Xbottom right, Ybottom right)”. [0, 1000)
<|object_ref_start|> and <|object_ref_end|>

Visual Agent.【UI Operations, Robotic Control, Games, and Navigation】
analyzes the observations, performs reasoning and planning, executes the selected actions, and interacts
with the environment to acquire new observations

2.3 多模态模型基础设施
存储、并行、 软件(torch 2.1.2, cuda 11.8)
flash attention、LN、RMSNorm、Adam

3 实验


qwenvl 和 qwen2vl的配置对比
“max_position_embeddings”: 8192,32768
“num_attention_heads”: 32,28
“num_hidden_layers”: 32,28
“architectures”: [
“QWenLMHeadModel” Qwen2VLForConditionalGeneration
],
“torch_dtype”: “bfloat16”,bfloat16
transformers_version": “4.31.0”,4.41.2
“image_size”: 448, 无
“patch_size”: 14,14
“in_chans”: 无,3,
mrope_section 无 ,有


原生动态分辨率:不同大小图片被转换为动态数量的tokens、最小只占4个tokens

多模态旋转位置嵌入 M-ROPE:将原始旋转嵌入分解为代表时间、高度和宽度的三个部分。(时间、高度、宽度)

捕捉和整合 一维文本序列、二维视觉图像以及三维视频的位置信息。

qwen-vl-utils

224224分辨率 通过 patch_size为14的ViT得到 1616的patches,然后用MLP将22压缩成1个token、前后拼上<|vision_start|>、<|vision_end|> 得到 88+2 = 66个tokens。

论文: a vision transformer for any aspect ratio and resolution

推理阶段:不同分辨率的图像被打包成一个序列,具有打包长度控制以限制GPU内存使用。 [最长的图像token是 16384 个]

2D-RoPE 获得两个维度的图片位置信息

统一图片和视频理解:为了一致性,每个图像都被视为两个相同帧; 图片和视频混合训练

平衡长视频处理的计算需求与整体训练效率,我们动态调整每个视频帧的分辨率,限制每个标记的总数 视频到16384

训练模式和qwenvl一样、三阶段。先训vit、再全训、最后训llm

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/880316.shtml

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

相关文章

Cloudflare为网站添加AI审计 可检查AI爬虫何时抓取和抓取频次以及直接屏蔽爬虫

网络服务提供商 Cloudflare 宣布即日起为所有网站 (包括免费托管的网站) 带来 AI 审计功能&#xff0c;该功能目前处于测试阶段&#xff0c;可以分析 AI 公司的爬虫和抓爬数据。新的 AI 审计工具 (Cloudflare AI Audit) 主要提供 AI 公司的爬虫何时到网站来抓取数据、抓取的数据…

【Rust练习】16.模式

文章题目来自&#xff1a;https://practice-zh.course.rs/pattern-match/patterns.html 1 &#x1f31f;&#x1f31f; 使用 | 可以匹配多个值, 而使用 … 可以匹配一个闭区间的数值序列 fn main() {} fn match_number(n: i32) {match n {// 匹配一个单独的值1 > println!(…

16. C++ TinyWebServer项目总结(16. 服务器调制、调试和测试)

主要包括&#xff1a; 使用 tcpdump 抓包&#xff1b;使用 gdb 调试器&#xff1b;使用压力测试工具&#xff0c;模拟现实世界中的高并发请求&#xff0c;测试服务器在高压状态下的稳定性。 最大文件描述符数 Linux 对应用进程能打开的最大文件描述符数量有两个层次的限制&a…

4. 数据结构: 对象和数组

数字、布尔值和字符串是构建数据结构的原子。不过&#xff0c;许多类型的信息需要不止一个原子。对象允许我们对值&#xff08;包括其他对象&#xff09;进行分组&#xff0c;从而构建更复杂的结构。到目前为止&#xff0c;我们所构建的程序都受到限制&#xff0c;因为它们只能…

软件设计模式——工厂模式

软件设计模式——工厂模式 文章目录 软件设计模式——工厂模式一、设计模式的认知1.1 什么是软件设计模式&#xff1a;1.2 为什么要学习设计模式&#xff1a;1.3 设计模式的分类&#xff1a; 二、工厂模式2.1 工厂模式实例&#xff1a; 一、设计模式的认知 1.1 什么是软件设计…

WordPress LearnPress插件 SQL注入复现(CVE-2024-8522)

0x01 产品描述&#xff1a; LearnPress 是一款功能强大的 WordPress LMS&#xff08;学习管理系统&#xff09;插件&#xff0c;适用于创建和销售在线课程。凭借其直观的界面和丰富的功能&#xff0c;无论您是否具备编程背景&#xff0c;都能轻松搭建起在线教育网站。学会如何使…

Java之路--瓦解逻辑控制与方法使用已是瓮中捉鳖

嗨嗨大家&#xff01;今天我们来学习逻辑运算和方法的使用~ 目录 一 逻辑控制 1 分支结构 1.1 if语句 1.2 switch 语句 2 循环结构 2.1 while 循环 2.2 for 循环 2.3 do while 循环 2.4 break 2.5 continue 3. 输出输入 二、方法的使用 1 方法定义语法 2 实参和…

网络通信——DHCP

目录 一.DHCP应用场景 二.通信过程 三.DHCP报文 四.DHCP通信原理 &#xff08;1&#xff09;租借过程 &#xff08;2&#xff09;DHCP 租期更新 &#xff08;3&#xff09;DHCP重绑定 五.一般路由器的DHCP支持两种地址池 &#xff08;1&#xff09;接口地址池 &…

进制转换,原码反码补码

正数的三码合一 1个byte8位&#xff0c;-128符号位溢出了&#xff0c;所以是1000 0000

基于Python大数据的B站热门视频的数据分析及可视化系统

作者&#xff1a;计算机学姐 开发技术&#xff1a;SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等&#xff0c;“文末源码”。 专栏推荐&#xff1a;前后端分离项目源码、SpringBoot项目源码、Vue项目源码、SSM项目源码 精品专栏&#xff1a;Java精选实战项目…

全连接神经网络

这里写目录标题 全连接神经网络vs前馈神经网络基于全连接神经网络的手写数字识别使用Pytorch实现纯Python实现 全连接神经网络的局限 端到端学习 深度学习有时也称为端到端机器学习&#xff08;end-to-end machine learning&#xff09;。这里所说的端到端是指从一端到另一端的…

David律所代理Jose Martin幽默水果版权首发维权,尚未TRO

案件基本情况&#xff1a;起诉时间&#xff1a;2024/9/18案件号&#xff1a;2024-cv-08484原告&#xff1a;Jose Martin原告律所&#xff1a;David起诉地&#xff1a;伊利诺伊州北部法院涉案商标/版权&#xff1a;原告品牌简介&#xff1a;西班牙的卓越艺术家Jose Martin以他非…

网络原理之IP协议(网络层)

目录 前言 什么是IP协议&#xff1f; IP协议的协议头格式 16位总长度&#xff08;字节数&#xff09; 16位标识、3位标志位和13位片偏移 8位生存时间 IP地址管理 1.动态分配IP 2.NAT机制&#xff08;网络地址转换&#xff09; NAT机制是如何工作的 NAT机制的优缺点…

Nginx反向代理配置支持websocket

一、官方文档 WebSocket proxying 为了将客户端和服务器之间的连接从HTTP/1.1转换为WebSocket&#xff0c;使用了HTTP/1.1中可用的协议切换机制&#xff08;RFC 2616: Hypertext Transfer Protocol – HTTP/1.1&#xff09;。 然而&#xff0c;这里有一个微妙之处:由于“升级”…

论文阅读:A Generalization of Transformer Networks to Graphs

论文阅读&#xff1a;A Generalization of Transformer Networks to Graphs 论文地址1 摘要2 贡献Graph TransformerOn Graph Sparsity&#xff08;图稀疏&#xff09;On Positional Encodings&#xff08;位置编码&#xff09;3 Graph Transformer Architecture&#xff08;架…

C++:日期类的实现

目录 一、前言 二、头文件 三、各个函数的实现 打印、检查日期及获取日期 、、-、-、 、<、<、>、>、 &#xff01; 日期-日期 >>、<< 一、前言 前面几篇讲了关于类和对象的一些知识&#xff0c;本篇就来实现一下前面用到的日期类。 二、头文…

市面第一款 C++ 版本的U盘装机软件(即将上线)

市面大部分U盘装机软件&#xff0c;都是采用Au3脚本开发&#xff0c;而且有各种捆绑&#xff0c;闲来无聊&#xff0c;采用Qt C制作一款CU盘装机软件&#xff0c;从此告别Au3脚本&#xff0c;各种炫酷界面随便换&#xff0c;敬请期待 另外两个界面暂时不公布&#xff0c;防止Au…

uni-app页面调用接口和路由(四)

文章目录 一、路由二、页面调用接口二、路由跳转1.uni.navigateTo(OBJECT)2.uni.redirectTo(OBJECT)3.uni.reLaunch(OBJECT)4.uni.switchTab(OBJECT)5.uni.navigateBack(OBJECT) 总结 一、路由 路由配置 uni-app页面路由为框架统一管理&#xff0c;开发者需要在pages.json里配…

Linux —— Socket编程(一)

一、本篇重点 1. 认识IP地址、端口号、网络字节序等网络编程中的基本概念 2. 学习Socket api的基本用法 3. 能够实现一个简单的udp客户端/服务器 二、基本概念 1. 理解源IP地址和目的IP地址 简单的理解&#xff0c;IP地址是用于标识一台机器的&#xff0c;我们通过IP地址去…

Springboot常见问题(bean找不到)

如图错误显示userMapper bean没有找到。 解决方案&#xff1a; mapper包位置有问题&#xff1a;因为SpringBoot默认的包扫描机制会扫描启动类所在的包同级文件和子包下的文件。注解问题&#xff1a; 比如没有加mapper注解 然而无论是UserMapper所在的包位置还是Mapper注解都是…