(2024,IXC2-4KHD,LVLM,动态图像分割,高分辨率图像处理)InternLM-XComposer2-4KHD

InternLM-XComposer2-4KHD: A Pioneering Large Vision-Language Model Handling Resolutions from 336 Pixels to 4K HD

公和众和号:EDPJ(进 Q 交流群:922230617 或加 VX:CV_EDPJ 进 V 交流群)

目录

0. 摘要

3. 方法

3.1 模型架构

3.2 高分辨率输入

3.3 预训练

3.4 4KHD 监督微调

4. 实验


0. 摘要

大型视觉-语言模型(Large Vision-Language Model,LVLM)领域取得了显著的进展,但由于分辨率有限,对细粒度视觉内容的理解受到了挑战。最近的努力旨在提高 LVLM 的高分辨率理解能力,但它们仍然受到了约 1500×1500 像素的限制,并且受到了相对狭窄的分辨率范围的限制。本文介绍了 InternLMXComposer2-4KHD,这是对提高 LVLM 分辨率能力的突破性探索,将 LVLM 分辨率能力提升到 4K HD(3840×1600)甚至更高。与此同时,考虑到超高分辨率可能并非在所有场景中都是必要的,它支持从 336 像素到 4K 标准的广泛分辨率范围,显著扩大了其适用范围。具体来说,本研究通过引入一种新的扩展来推进补丁划分范式:动态分辨率与自动补丁配置。它保持了训练图像的宽高比,同时根据预训练的 ViT(336×336)自动变化补丁数量并配置布局,从而实现了从 336 像素到 4K 标准的动态训练分辨率。我们的研究表明,将训练分辨率扩展到 4K HD 可以持续提升性能,而不会达到改进的上限。InternLM-XComposer2-4KHD 在 16 项基准测试中表现出出色的能力,在其中 10 项中与甚至超过了 GPT-4V 和 Gemini Pro。

项目页面:https://github.com/InternLM/InternLM-XComposer

3. 方法

3.1 模型架构

InternLM-XComposer2-4KHD 的模型架构主要遵循 InternLM-XComposer2 的设计(以下简称为 XComposer2),包括一个轻量级的视觉编码器 OpenAI ViT-Large/14、大型语言模型 InternLM2-7B 和 Partial LoRA 用于有效的对齐。我们建议读者参考 XComposer2 论文以获取更多细节。

(2024,MLLM,视觉语言模型,用于模态对齐的部分 LoRA)InternLM-XComposer2

3.2 高分辨率输入

动态图像分割(Dynamic Image Partition)。对于处理高分辨率图像,特别是具有不同宽高比的图像,将静态输入图像大小视为固定不变的方法既不高效也不有效。为了克服这一限制,我们引入了一种动态图像分割方法,如图 4 所示。我们的方法在保持原始图像宽高比完整性的同时,策略性地将图像分割成较小的补丁(patch)。

给定最大分割数 H,尺寸为 [h,w] 的图像 x 被调整大小并填充到尺寸为 [ph × 336, pw × 336] 的新图像 ˆx。此过程受以下约束条件的限制:

这里的 pw 和 ph 分别表示每行和每列的补丁数。然后我们将 ˆx 分成 ph × pw 个不重叠的补丁。每个补丁是一个尺寸为 336×336 的小图像,我们将这些补丁视为 ViT 的单独输入。 接下来,我们使用 'HD-H' 表示具有 H 补丁约束的高分辨率设置。例如,'HD-9' 允许最多 9 个补丁,包括一系列分辨率,如 1008×1008、672×1344、336×3024 等。

全局-局部格式。对于每个输入图像,我们向模型展示两种视图。第一种是全局视图,在此视图中,图像被调整为固定大小(在我们的情况下为 336×336)。这提供了对图像的宏观理解。根据经验,我们发现这对于 LVLM 正确理解图像至关重要。第二种视图是局部视图。我们使用先前提到的动态图像分割策略将图像分割成补丁,并从每个补丁中提取特征。在特征提取后,将这些补丁重新组合成一个大的特征图。然后,在一个简单的 token 合并过程后,对特征图进行扁平化处理,得到最终的局部特征。

图像 2D 结构换行指示符。鉴于图像具有 2D 结构且图像比例是动态的,每行的标记数可能在不同图像之间变化。这种变化可能会让 LVLM 感到困惑,使其难以确定哪些标记属于图像的同一行,哪些属于下一行。这种混淆可能会妨碍 LVLM 理解图像的 2D 结构,而这对于理解文档、图表和表格等结构化图像内容至关重要。为了解决这个问题,我们在扁平化之前在每行图像特征的末尾引入了一个可学习的换行('\n')标记。最后,我们将全局和局部视图连接起来,在它们之间插入一个特殊的 'separate' 标记以区分这两种视图。  

3.3 预训练

在预训练阶段,LLM 被冻结,而视觉编码器和 Partial LoRA 被微调以将视觉 token 与 LLM 对齐。预训练数据主要遵循 XComposer2 中的设计,考虑了三个目标:1)一般语义对齐,2)世界知识对齐,3)视觉能力增强。在本文中,我们专注于高分辨率和结构化图像理解。因此,我们收集了更多相关数据以增强这一特定能力。如表 1 所示,我们利用了一个多样的 OCR 数据集来实现这个目标。

在实践中,我们使用 OpenAI CLIP ViT-L-14-336 作为视觉编码器。与 XComposer2 不同,我们保持 ViT 的分辨率为 336×336,并增加输入分辨率以增加更多的补丁。对于动态图像分割策略,我们使用 'HD-25'。对于每个图像或补丁,通过简单的合并操作将图像 token 数量减少到原来的 1/4。我们将附近的 4 个 token 通过通道维度合并成一个新的 token,然后通过 MLP 将其与 LLM 对齐。'separate' 和 '\n' 标记是随机初始化的。对于 Partial LoRA,我们为 LLRM 解码器块中的所有线性层设置了秩为 256。我们的训练过程使用 batch 大小为 4096,并跨越 2 个 epochs。学习率在前 1% 的训练步骤中线性增加到 2 × 10^(-4)。在此之后,根据余弦衰减策略将其减少到 0。为了保留视觉编码器的预先存在的知识,我们应用了一种逐层学习率(layer-wise learning rate,LLDR)衰减策略,衰减因子设置为 0.90。

3.4 4KHD 监督微调

在预训练之后,我们增强模型的理解高分辨率图像和解决各种挑战。与先前的感知任务(例如 VQAv2、GQA)不同,这些任务通常根据图像中显著的对象来回答问题。OCR 相关任务依赖于对高分辨率图像中文本的详细理解。例如,在 InfoVQA 中,50% 的图像中较长边的长度超过了 2000 像素。低分辨率的输入可能会扭曲密集的文本信息,导致模型在理解上失败。然而,我们观察到了上述感知任务中的分辨率饱和问题,其中分辨率的影响变得可以忽略不计。

为了解决这个问题,我们引入了一种混合分辨率训练策略以实现更高效的训练。对于需要高分辨率的任务,在训练期间我们使用 'HD-55' 设置。这允许输入 4K(3840×1600)图像而不需要额外的图像压缩。这些任务在表 2 中被称为 HD-OCR QA 任务。对于其他任务,我们实现了动态分辨率策略。图像被调整大小以在其原始大小和由 'HD25' 设置指定的大小之间。这种动态方法增强了 LVLM 对输入分辨率差异的稳健性,从而使 LVLM 在推理期间能够利用更大的分辨率。例如,当 LVLM 在 'HD25' 设置下训练时,我们观察到使用 'HD30' 设置在大多数 OCR 相关任务上产生更好的结果。

在实践中,我们联合训练所有组件,batch 大小为 2048,跨越 3500 个步骤。我们以加权的方式对来自多个来源的数据进行抽样,权重基于每个来源的数据量。由于 'HD-55' 具有 'HD-25' 的双倍的图像 token 数量,我们调整了数据加载器以为它们启用不同的 batch 大小,并相应地调整它们的权重。最大学习率设置为 5×10^-5,并且每个组件都有自己独特的学习策略。对于视觉编码器,我们将 LLDR 设置为 0.9,这与预训练策略一致。对于 LLM,我们采用固定的学习率缩放因子为 0.2。这会减缓 LLM 的更新速度,实现保留其原始能力和与视觉知识对齐之间的平衡。 

4. 实验

 

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

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

相关文章

【云计算】云数据中心网络(二):弹性公网 IP

云数据中心网络(二):弹性公网 IP 1.什么是弹性公网 IP2.弹性公网 IP 的类型2.1 多线 EIP2.2 任播 EIP2.3 单线静态 EIP2.4 精品 EIP2.5 识别不同类型的 IP 的地址 3.弹性公网 IP 功能3.1 自带公网 IP 地址上云3.2 尽力找回公网 IP 地址3.3 连…

【学习心得】神经网络知识中的符号解释②

我在上篇文章中初步介绍了一些神经网络中的符号,只有统一符号及其对应的含义才能使我自己在后续的深度学习中有着一脉相承的体系。如果对我之前的文章感兴趣可以点击链接看看哦: 【学习心得】神经网络知识中的符号解释①http://t.csdnimg.cn/f6PeJ 一、…

3. 安装arrach结构的Mysql

提示:arm的centos上面安装arrach结构的Mysql 文章目录 前言一、查看已经安装过的并卸载mysql二、创建mysql用户组1.设置用户组2. 安装3.设置启动4.查看密码5.修改登录密码6.授权7.修改连接8.设置参数 常见问题排查1. 启动失败查看:2. 用户操作3. 踩坑解决…

Leetcode刷题-字符串详细总结(Java)

字符串 字符串可能在算法处理上面和数组是类似的,但是String和数组的数据结构还是有一些不一样的 1、反转字符串 344. 反转字符串 - 力扣(LeetCode) 双指针的经典应用,两个指针同时向中间移动 public void reverseString(char[…

扣子Coze插件教程:如何使用Coze IDE创建插件

🧙‍♂️ 诸位好,吾乃斜杠君,编程界之翘楚,代码之大师。算法如流水,逻辑如棋局。 📜 吾之笔记,内含诸般技术之秘诀。吾欲以此笔记,传授编程之道,助汝解技术难题。 &#…

爬虫 BeautifulSoup模块

爬虫 BeautifulSoup模块 【一】介绍 【1】说明 BeautifulSoup库是python的一个第三方库,主要用于处理HTML和XML文档他提供了一些简单的、python式的函数来解析、导航、搜索以及修改分析树,使得从网页抓取的数据变得简单高效BeautifulSoup自动将输入文…

华大基因获证:氧化三甲胺检测试剂助力心血管疾病早期干预

近日,深圳华大基因股份有限公司旗下的全资子公司华大生物科技(武汉)有限公司获得两项医疗器械注册证(注册号:鄂械注准20232404470和鄂械注准20232404469)。该试剂是国内首个获批二类注册的,基于…

2024第十五届蓝桥杯 Java B组 填空题

声明:博主比较菜,以下均为个人想法。解决方法仅供参考。欢迎大家一起讨论交流! 第一题: 题目: (简洁版)从小到大排列是20或24倍数的正整数,前10个数依次是:”20 24 40 …

Linux进阶篇:文件传输工具curl命令详解

文件传输工具Linux curl命令详解 一 curl命令介绍 在Linux中curl是一个利用URL规则在命令行下工作的文件传输工具,可以说是一款很强大的http命令行工具。它支持文件的上传和下载,是综合传输工具,但按传统,习惯称url为下载工具。…

package.java文件的作用

你查看springboot的源码,有很多类都有这个文件,在idea不能创建,因为不支持这种命名,只能用记事本创建后复制都项目中。 主要应用是给类添加正常,或者把公用的注解都放到这里,常量不合适,作用范…

竞赛 基于CNN实现谣言检测 - python 深度学习 机器学习

文章目录 1 前言1.1 背景 2 数据集3 实现过程4 CNN网络实现5 模型训练部分6 模型评估7 预测结果8 最后 1 前言 🔥 优质竞赛项目系列,今天要分享的是 基于CNN实现谣言检测 该项目较为新颖,适合作为竞赛课题方向,学长非常推荐&am…

欧姆龙61F系列液位开关使用教程(补水和排水)

欧姆龙61F系列液位开关使用教程(补水和排水) 本文以61F-LS-CP11-NRA型号的液位开关为例进行说明: 具体的选型文档可参考以下链接中的内容: OMRON欧姆龙-无浮标开关(紧凑插入型)61F-LS液位开关-选型样本说明 补水功能(供水) 如下图所示, 电机电源为3相AC220V; 控制电…

SSRF+Redis未授权getshell

SSRFRedis未授权getshell 1.前言 当一个网站具有ssrf漏洞,如果没有一些过滤措施,比如没过滤file协议,gophere协议,dict等协议,就会导致无法访问的内网服务器信息泄露,甚至可以让攻击者拿下内网服务器权限 …

Git分布式版本控制系统——Git常用命令(二)

五、Git常用命令————分支操作 同一个仓库可以有多个分支,各个分支相互独立,互不干扰 分支的相关命令,具体如下: git branch 查看分支 git branch [name] 创建分支&#x…

5. Mysql的binlog介绍

参考:InnoDB学习(三)之BinLog 1. BinLog介绍 BinLog又称为二进制日志,是MySQL服务层的数据日志,MySQL所有的存储引擎都支持BinLog。 BinLog记录了MySQL中的数据更新和可能导致数据更新的事件,可以用于主从…

轻量带屏解决方案之恒玄芯片移植案例

本文章基于恒玄科技BES2600W芯片的欧智通 Multi-modal V200Z-R开发板 ,进行轻量带屏开发板的标准移植,开发了智能开关面板样例,同时实现了ace_engine_lite、arkui_ui_lite、aafwk_lite、appexecfwk_lite、HDF等部件基于OpenHarmony LiteOS-M内…

【联机不卡顿】幻兽帕鲁教你如何低成本0延迟畅玩 云服务器性价比选择方案 16G低至26/月

更新日期:4月14日(腾讯云16G价格回调了!京东云采购季持续进行) 本文纯原创,侵权必究 《最新对比表》已更新在文章头部—腾讯云文档,文章具有时效性,请以腾讯文档为准! 【腾讯文档实…

算法:位运算

算法&#xff1a;位运算 常见位运算操作基本题型模拟加法数字查找总结 常见位运算操作 在C/C中&#xff0c;有比较丰富的位运算操作符&#xff0c;常见的有&#xff1a; &&#xff1a;按位与 |&#xff1a;按位或 ~&#xff1a;按位取反 ^&#xff1a;按位异或 <<&a…

MySQ数据库: MySQL数据库的安装配置 ,图文步骤详细,一篇即可完成安装完成! MySQL数据库如何与客户端连接

LiuJinTao&#xff1a; 2024年4月14日 文章目录 MySQL的安装配置1. 下载2. 安装 三、 MySQL 启动与停止1. 第一种 方式&#xff1a;2. 第二种方式&#xff1a; 四、MySQL 客户端连接2. 方式二&#xff1a; MySQL的安装配置 1. 下载 官方下载网址&#xff1a;https://www.mysq…

代码随想录刷题随记21-回溯1

代码随想录刷题随记21-回溯1 回溯法解决的问题 回溯法&#xff0c;一般可以解决如下几种问题&#xff1a; 组合问题&#xff1a;N个数里面按一定规则找出k个数的集合 切割问题&#xff1a;一个字符串按一定规则有几种切割方式 子集问题&#xff1a;一个N个数的集合里有多少符…