MLLM | InternLM-XComposer2-4KHD: 支持336 像素到 4K 高清的分辨率的大视觉语言模型

news2024/9/24 19:21:57

上海AI Lab,香港中文大学等

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

论文地址:https://arxiv.org/abs/2404.06512

Code and models are publicly available at https://github.com/InternLM/InternLM-XComposer

一、问题提出

大型视觉语言模型(LVLM)对image captioning和视觉问答 (VQA)等任务的熟练。然而,由于分辨率有限,它们很难处理包含精细细节的图像,例如图表、表格、文档和信息图表。最近的进展旨在提高大视觉语言模型(LVLM)的分辨率。【Cogagent、Mini-Gemini、Kosmos-2.5、Vary】直接采用高分辨率视觉编码器。然而,Vision Transformer (ViT) 架构在处理不同分辨率和长宽比的图像时存在不足,从而限制了其有效处理不同输入的能力。或者,【mplug-docowl 1.5、Otterhd 、Monkey 、Sphinx、Llava-next、Textmonkey 、 Llava-uhd 】保持视觉编码器的分辨率,将高分辨率图像分割成多个低分辨率图像块。然而,这些方法受到分辨率不足的限制,通常在1500×1500左右,不能满足日常内容的需求,例如网站截图、文档页面和蓝图设计图。此外,它们仅限于一些预定义的高分辨率设置或有限的分辨率范围。

二、方法提出

InternLM-XComposer2-4KHD的模型架构主要沿用了InternLM-XComposer2的设计(为简单起见,下面简称为XComposer2),包括轻量级视觉编码器OpenAI ViT-Large/14、大型语言模型InternLM2-7B ,以及用于高效对齐的部分 LoRA。

1、High-Resolution Input.

动态图像分区 “Dynamic Image Partition.”

利用静态输入图像大小来处理高分辨率图像,尤其是那些具有不同纵横比的图像,既不高效也不有效。为了克服这一限制,引入了一种动态图像Partition方法。策略性地将图像分割成更小的块,同时保持原始图像长宽比的完整性。

给定最大分区数 H,大小为 [h, w] 的图像 x 被调整大小并填充到大小为 [ph × 336, pw × 336] 的新图像 x’:

pw 和 ph 分别代表每行和每列的 patch 数量。然后将  x’ 分割成 ph × pw 不重叠的patch。每个patch都是一个 336 × 336 大小的小图像,将这些补丁视为 ViT 的单独输入。使用“HD-H”来表示具有 H 个patch约束的高分辨率设置。例如,HD-9最多允许 9 个patch,包括一系列分辨率,例如 1008×1008 (3*3)、672×1344(2*4)、336×3024(1*8) 等。

Global-Local Format.

对于每个输入图像,将其以两个视图呈现给模型。第一个是全局视图,其中图像大小调整为固定大小( 336 × 336)。这提供了对图像的宏观理解。根据经验,这对于 LVLM 正确理解图像至关重要。第二个视图是局部视图。使用前面提到的动态图像分区策略将图像划分为补丁,并从每个patch中提取特征。特征提取后,补丁被重新组装成一个大的特征图。经过简单的标记合并过程后,特征图将被展平为最终的局部特征。

Image 2D Structure Newline Indicator.

图像具有 2D 结构,并且图像比例是动态的,每行的token数量在不同图像中可能会有所不同。这种变化可能会混淆 LVLM,从而难以确定哪些token属于图像的同一行,哪些token属于下一行。这种混乱可能会阻碍 LVLM 理解图像 2D 结构的能力,而这对于理解文档、图表和表格等结构图像内容至关重要。为了解决这个问题,在flatten前在图像特征的每行末尾引入了一个可学习的换行符(‘\n’)。最后,concate全局视图和局部视图,在它们之间插入一个特殊的‘separate’ token来区分这两个视图。

2、Pre-Training

在预训练阶段,LLM 被冻结,同时视觉编码器和部分 LoRA 都经过微调,以使视觉token与 LLM 保持一致。预训练数据主要遵循 XComposer2 中的设计,其设计考虑了三个目标:1) general semantic alignment, 2) world knowledge alignment, 3) vision capability enhancement。重点关注高分辨率和结构图像理解。因此,收集了更多相关数据来增强这一特定能力。

CLIP ViT-L-14-336 作为视觉编码器。使用“HD-25”。对于每个图像或patch,通过简单的‘merge’操作,图像token数量减少到 1/4。通过在channel维度将附近的 4 个 token 连接成一个新 token,然后通过 MLP 将其与 LLM 对齐。 “separate”和“\n”标记是随机初始化的。对于部分 LoRA,为 LLM 解码器块中的所有线性层设置等级为 256。训练4096 的批大小,2 个epoch。在训练step的前 1% 内,学习率线性增加到 2 × 10−4。此后,根据余弦衰减策略减小到 0。为保留视觉编码器预先存在的知识,应用分层学习率(LLDR)衰减策略,并将衰减因子设置为0.90。

3、KHD Supervised Fine-tuning

低分辨率输入可能会扭曲密集的文本信息,导致模型无法理解。为解决这个问题,引入混合分辨率训练策略以实现更高效的训练。对于需要高分辨率的任务,在训练期间采用“HD-55”。这样就可以输入 4K (3840 × 1600) 图像,而无需额外的图像压缩。对于其他任务,实施动态分辨率策略。图像的大小会调整到原始大小和“HD25”设置指定的大小之间的范围内。这种动态方法增强了 LVLM 针对输入分辨率差异的鲁棒性,从而使 LVLM 在推理过程中能够利用更大的分辨率。例如,观察到使用“HD30” vs “HD25”设置下进行训练时,HD30可以在大多数 OCR 相关任务上产生更好的结果。

联合训练批大小为 2048 的所有组件,超过 3500 个step。来自多个源的数据以加权方式采样,权重基于每个源的数据数量。由于“HD55”设置比“HD-25”具有双倍图像tokens,因此调整dataloader以启用不同的批大小,并相应地调整它们的权重。最大学习率设置为5×10−5,每个组件都有自己独特的学习策略。对于视觉编码器,将 LLDR 设置为 0.9,这与预训练策略一致。对于LLM,采用固定的学习率比例因子 0.2。这减慢了LLM的更新速度,在保留其原有能力和使其与视觉知识保持一致之间取得了平衡。

三、实验

1、LVLM Benchmark results.

在表 3 和表 4 中,在一系列基准测试中将 IXC24KHD 与 SOTA 开源 LVLM 和闭源 API 进行了比较。评估主要在OpenCompass VLMEvalKit上进行,以便统一复现结果。

High-resolution Understanding Evaluation.

2、Dive into Resolution

High-Resolution Training is Critical for HD-OCR tasks

研究四种分辨率设置:HD-9(最多 1561 个图像token、HD16(2653 个token)、HD-25(4057 个token)和 4KHD(8737 个token)。在这里,报告了 InfoVQA、DocVQA 和 TextVQA 的验证集、ChartQA 和 AI2D 的测试集、MMBench EN-Test 以及 SEEDBench 的 2k 子集(将其表示为 SEED*)。

Higher Inference Resolution Leads to better results on Text-related Tasks.

模型在以稍高的分辨率进行推断时,往往会在文本相关任务上产生更好的结果。 HD-9、HD-16 和 HD-25 的结果。

训练中使用的自然图像token长度增强了 LVLM 的鲁棒性,当图像中的文本在更高分辨率的输入中更加“清晰”时,会产生更好的结果。相反,在此设置下,ChartQA 的结果始终会下降。这可能是由于当分辨率改变时模型对图表结构变得混乱。此外,与图 5 中的观察结果类似,分辨率对感知相关基准的影响似乎相当小。

可视化结果

3、High-Resolution Strategy Ablation

The Role of Global-View.

发现全局视图对于 LVLM 准确理解输入图像至关重要。当它被删除时,模型在所有基准测试中的表现都会变差。全局视图提供了对图像的一般宏观理解,而该模型很难从局部视图中的大量标记中得出这种理解。

The Role of the Newline Token.

在展平操作之前,在图像特征的每行末尾合并一个特殊的换行符。该token用作图像 2D 结构的指示符。当采用固定高分辨率策略 HD-9 时,观察到换行token带来的好处很小。这可能归因于 LVLM 能够处理训练后图像比例的有限差异。然而,当实施更具挑战性的 4KHD(HD-25 + HD-55)策略时,该策略在图像比例和标记数量方面都表现出显着的多样性,在没有换行符的情况下,LVLM 在 OCR 相关任务上表现出显着的性能下降。当图像标记直接展平为一维序列时,LVLM 很难理解图像的形状。换行标记可以帮助模型更好地理解图像的结构。

Influence of Token Merging Strategy.

采用一种简单的合并策略,沿着channel维度concate四个相邻的token。发现这种方法可以有效地减少图像标记的数量。研究了两种额外的策略:ReSampler和C-Abstractor,其默认设置和相同的压缩率0.25,即将具有576个token的图像减少到144个token。结果表明,串联和 C-Abstractor 都工作良好,并且在大多数基准上得到相似的结果。然而,ReSampler的性能比其他方法差,并且有明显的余量。认为这是由于用于收集信息的可学习查询需要大量数据进行训练而引起的,预训练数据对于它完全收敛来说有些轻量级。

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

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

相关文章

互联网扭蛋机小程序:打破传统扭蛋机的局限,提高销量

扭蛋机作为一种适合全年龄层的娱乐消费方式,深受人们的喜欢,通过一个具有神秘性的商品给大家带来欢乐。近几年,扭蛋机在我国的发展非常迅速,市场规模在不断上升。 经过市场的发展,淘宝线上扭蛋机小程序开始流行起来。…

一文讲透彻Redis 持久化

文章目录 ⛄1.RDB持久化🪂🪂1.1.执行时机🪂🪂1.2.RDB原理🪂🪂1.3.小结 ⛄2.AOF持久化🪂🪂2.1.AOF原理🪂🪂2.2.AOF配置🪂🪂2.3.AOF文件…

40+ Node.js 常见面试问题 [2024]

今天就开始你的Node.js生涯。在这里,我们探讨了最佳Node.js面试问题和答案,以帮助应届生和经验丰富的候选人获得理想的工作。 Node.js 是许多大公司技术堆栈的重要组成部分,例如 PayPal、Trello、沃尔玛和 NASA。 根据 ZipRecruiter 的数据&…

了解边缘计算,在制造行业使用边缘计算。

边缘计算是一种工业元宇宙技术,可以帮助组织实现其数据的全部潜力。 处理公司的所有数据可能具有挑战性,而边缘计算可以帮助公司更快地处理数据。在制造业中,边缘计算可以帮助进行预测性维护和自动驾驶汽车操作等工作。 什么是边缘计算? …

ruoyi-cloud-plus添加一个不要认证的公开新页面

文章目录 一、前端1. 组件创建2. src/router/index.ts3. src/permission.ts 二、后端1. 设计思想2. ruoyi-gateway.yml3. 开发Controller 版本RuoYiCloudPlusv2.1.2plus-uiVue3 ts 以新增一个公开的课程搜索页面为例。 一、前端 1. 组件创建 在view目录下创建一个页面的vue…

python--使用pika库操作rabbitmq实现需求

Author: wencoo Blog:https://wencoo.blog.csdn.net/ Date: 22/04/2024 Email: jianwen056aliyun.com Wechat:wencoo824 QQ:1419440391 Details:文章目录 目录正文 或 背景pika链接mqpika指定消费数量pika自动消费实现pika获取队列任务数量pi…

去哪儿网开源的一个对应用透明,无侵入的Java应用诊断工具

今天 V 哥给大家带来一款开源工具Bistoury,Bistoury 是去哪儿网开源的一个对应用透明,无侵入的java应用诊断工具,用于提升开发人员的诊断效率和能力。 Bistoury 的目标是一站式java应用诊断解决方案,让开发人员无需登录机器或修改…

使用大卫的k8s监控面板(k8s+prometheus+grafana)

问题 书接上回,对EKS(AWS云k8s)启用AMP(AWS云Prometheus)监控AMG(AWS云 grafana),上次我们只是配通了EKSAMPAMG的监控路径。这次使用一位大卫老师的grafana的面板,具体地址如下: ht…

Google Ads广告为Demand Gen推出生成式AI工具,可自动生成广告图片

谷歌今天宣布在Google Ads广告中为Demand Gen活动推出新的生成人工智能功能。 这些工具由谷歌人工智能提供支持,广告商只需几个步骤即可使用文本提示创建高质量的图片。 这些由人工智能驱动的创意功能旨在增强视觉叙事能力,帮助品牌在YouTube、YouTube…

【Hadoop】-Apache Hive概述 Hive架构[11]

目录 Apache Hive概述 一、分布式SQL计算-Hive 二、为什么使用Hive Hive架构 一、Hive组件 Apache Hive概述 Apache Hive是一个在Hadoop上构建的数据仓库基础设施,它提供了一个SQL-Like查询语言来分析和查询大规模的数据集。Hive将结构化查询语言(…

第十二届蓝桥杯C/C++ B组 杨辉三角形(二分查找+思维)

3418. 杨辉三角形 - AcWing题库 题目描述: 思路: 从上图片中,我们可以看出来这是一个对称图形,所以我们只看左半部分就可以了,我们一行一列去做数据量是1e9这样会很麻烦,所以我们这里做一个思想转换,斜着…

单片机 VS 嵌入式LInux (学习方法)

linux 嵌入式开发岗位需要掌握Linux的主要原因之一是,许多嵌入式系统正在向更复杂、更功能丰富的方向发展,需要更强大的操作系统支持。而Linux作为开源、稳定且灵活的操作系统,已经成为许多嵌入式系统的首选。以下是为什么嵌入式开发岗位通常…

申请IP地址SSL证书的七大步骤

申请IP地址SSL证书的目的是为了在使用IP地址作为访问地址而非域名的情况下,为您的服务提供HTTPS加密,确保数据传输的安全性。以下是申请IP地址SSL证书的一般步骤和注意事项: 一、选择合适的SSL证书类型: IP SSL证书:…

java锁常识

AQS框架 AQS(AbstractQueuedSynchronizer)是 Java 中用于构建锁和同步器的基础框架。它提供了一种实现同步器的方式,使得开发者可以基于 AQS 构建各种类型的同步工具,如独占锁、共享锁、信号量等。 AQS 主要基于 FIFO 队列&…

RoadBEV:鸟瞰视图下的路面重建

作者:Tong Zhao,Lei Yang,Yichen Xie等 编译:董亚微一点人工一点智能 RoadBEV:鸟瞰视图下的路面重建https://mp.weixin.qq.com/s/hDNHwvpFe39doiXlVc-d7Q 摘要:道路的路面状况,特别是几何轮廓…

线程池多线程在项目中的实际应用

一.发短信 发短信的场景有很多,比如手机号验证码登录注册,电影票买完之后会发送取票码,发货之后会有物流信息,支付之后银行发的付款信息,电力系统的电费预警信息等等 在这些业务场景中,有一个特征&#x…

Linux 网络编程项目--简易ftp

主要代码 config.h #define LS 0 #define GET 1 #define PWD 2#define IFGO 3#define LCD 4 #define LLS 5 #define CD 6 #define PUT 7#define QUIT 8 #define DOFILE 9struct Msg {int type;char data[1024];char secondBuf[128]; }; 服务器: #i…

231 基于matlab的北斗信号数据解析

基于matlab的北斗信号数据解析,多通道和单通道接收到的北斗信号数据,利用接收到的北斗数据(.dat .txt文件),进行解析,得到初始伪距,平滑伪距,载波相位,并计算其标准差&am…

洛谷 -P1007 独木桥(模拟,思维)

独木桥 题目背景 战争已经进入到紧要时间。你是运输小队长,正在率领运输部队向前线运送物资。运输任务像做题一样的无聊。你希望找些刺激,于是命令你的士兵们到前方的一座独木桥上欣赏风景,而你留在桥下欣赏士兵们。士兵们十分愤怒&#xf…

双线性插值计算手动实现以及原理

双线性插值计算手动实现以及原理 代码原理 代码 先贴代码吧,原理其实也比较简单,看代码基本也就理解了,时间太晚了,原理后续再补吧。 import torch from torch.nn import functional as F import numpy as np from itertools im…