MLLM | Mini-Gemini: 挖掘多模态视觉语言大模型的潜力

香港中文、SmartMore

论文标题:Mini-Gemini: Mining the Potential of Multi-modality Vision Language Models

Code and models are available at https://github.com/dvlab-research/MiniGemini

一、问题提出

通过更高分辨率的图像增加视觉标记的数量可以丰富LLM中的视觉嵌入。然而,这种改进伴随着计算需求和相关成本的不断增加,特别是在处理多个图像时。此外,现有的数据质量、模型能力和应用范围仍然不足以加速训练和开发过程。这种情况引发了一个关键的问题:如何在学术环境中以可接受的成本推动 VLM 接近成熟的模型?

为了回答这个问题,从三个战略方面探讨了VLM的潜力,即高效高分辨率解决方案、高质量数据和扩展程序。

二、Mini-Gemini

1、Dual Vision Encoders

Mini-Gemini的框架在概念上:利用双视觉编码器来提供低分辨率的和高分辨率的视觉嵌入;提出patch信息挖掘以在高分辨率区域和低分辨率视觉query之间进行patch-level挖掘;LLM用于将文本与图像结合起来,同时进行理解和生成。

高分辨率图像、低分辨率图像(高分辨率双线性插值而来),然后双编码器并行处理成多网格视觉嵌入。对于LR,使用CLIP vit,这样,N个视觉块之间的长程关系就可以很好地保留下来,以便后续在LLM中进行交互。对于HR,采用基于 CNN 的编码器进行自适应且高效的 HR 图像处理。使用 LAION 预训练 ConvNeXt作为 HR 视觉编码器。因此,可以通过将不同卷积阶段的特征上采样并concate到1/4输入尺度来获得HR特征图。

2、Patch Info Mining

为了维持 LLM 中最终visual tokens的数量以提高效率,将低分辨率LR的visual embedding作为query,高分辨率HR作为Key和Value,旨在从 HR  visual embedding中检索相关视觉线索。Q 中的低分辨率块与 K 和 V 中相应的高分辨率子区域相关,包含 M^2 个像素级特征。因此,patch信息挖掘过程可以表述为:

其中 φ和 MLP 分别表示a projection layer和multi-layer perceptron。

如图 3a 所示,该公式封装了合成和细化视觉线索的过程,从而生成增强的视觉标记 Tv,用于后续的 LLM 处理。它确保每个query的挖掘仅限于 HR 具有 M^2 个特征的相应子区域,从而保持效率。这种设计允许在不扩展视觉标记数量的情况下提取 HR 细节,保持细节丰富度和计算可行性之间的平衡。

此外,还支持视觉令牌扩展。如图 3b 所示,可以将视觉标记扩展到 5N 以捕获更多细节。这是通过将原始图像与其 2× 放大的对应图像合并来实现的,从而产生批量输入 XL∈R5×H′×W′×3。可以使用 LR 视觉编码器得到编码后的视觉嵌入 X′ L ∈ R5×N×C,如第 3.1 节所述。

3、Text and Image Generation

通过挖掘的视觉标记 Tv 和输入文本标记 Tt ,将它们拼接起来作为 LLM 的输入以进行自回归生成。Mini-Gemini 支持纯文本和文本图像生成作为输入和输出,即任意到任意的推理。Mini-Gemini 将用户指令转化为高质量的prompt,从而在潜在扩散模型中生成上下文相关的图像。这种方法反映在后续的高质量图像生成框架中,例如DALLE 3和SORA,它们利用VLM的生成和理解能力来获取用于生成任务的更高质量的文本条件。

Text-image Instructions.

为了更好的跨模态对齐和指令微调,从公开来源收集高质量的数据集。特别是,对于跨模态对齐,利用来自 LLaVA 过滤的 CC3M 数据集的 558K 图像标题对和来自 ALLaVA 数据集的 695K 采样的 GPT-4V response caption。至于指令微调,从 LLaVA数据集中采样了 643K 单轮和多轮对话(不包括 21K TextCaps数据),从 ShareGPT4V中采样了 100K QA 对,从 ShareGPT4V中采样了 10K LAION-GPT-4V 字幕、来自 ALLaVA 数据集的 700K GPT-4V 响应指令对,以及来自 LIMA和 OpenAssistant2的 6K 纯文本多轮对话。为了增强 OCR 相关能力,进一步收集了 28K QA 对,其中包括 10K DocVQA、4K ChartQA、10K DVQA 和 4K AI2D数据。一般来说,图像理解大约有 1.5M 的指令相关对话。此外,还收集了 13K 对用于图像相关的生成。

Generation-related Instructions.

为支持图像生成,使用 GPT-4 Turbo 进一步构建了 13K 指令数据集。如图 4 所示,训练数据包含两个任务:(a)简单指令重述:采用 LAION-GPT-4V 中的 8K 描述性图像标题,让 GPT-4 逆向推断相应用户的短输入和稳定扩散 (SD) 域中的目标标题。 (b) 上下文提示生成:基于 LIMA和 OpenAssistant2中的一些高质量的真实对话上下文,生成提示,生成适合对话上下文的图像,总共带来 5K 条指令。对于这两种数据,在每次对 GPT-4 的query中,从 GigaSheet 中随机采样 5 个高质量 SD 文本到图像提示作为上下文示例,以获得生成的目标提示。格式化数据以使用 <GEN> 作为触发器来启动生成过程并将目标标题包装在 <h>...</h> 内。文本生成后,Mini-Gemini 提取目标标题并利用 SDXL生成相应的图像。

三、实验

1、Implementation Details.

为高效训练,固定两个视觉编码器,并优化各个阶段的Patch Info Mining的projector。同时,仅在指令调优阶段对LLM进行优化。使用 AdamW 优化器和余弦学习计划优化 1 epoch 的所有模型。在大多数情况下,模态对齐和指令调整的初始学习率分别设置为 1e−3 和 2e−5,Mixtral-8×7B 和 Hermes-2-Yi-34B 的调整率为 1e−5确保指令调优稳定。该框架涉及在标准机器配置的 8 个 A800 GPU 上进行训练。对于最大的模型 Hermes-2-Yi-34B,利用 4 台机器,使用 DeepSpeed Zero3 策略在 2 天内完成优化。对于HD版本,由于LLM视觉令牌的扩展,总成本增加到大约4天。

对于模型优化,构建高质量数据以进行跨模态理解和生成。它主要包括用于模态对齐的 1.2M 标题对和用于指令调整的 1.5M 单轮或多轮对话。

2、Main Results

Normal Resolution

在多种设置(包括正常分辨率和高分辨率)下与之前的领先方法进行了比较,并且还考虑了私有模型。在正常分辨率下,Mini-Gemini 在各种LLM中始终优于现有模型。

High Resolution

为验证扩展视觉标记的框架,对表 1 中 LR 视觉编码器的输入大小为 672,HR 视觉编码器的输入大小为 1536 进行实验。尽管分辨率提高了,LLM 处理的视觉标记的有效数量仍然与 LR 输入大小 672 保持一致,确保了计算效率。这种方法的好处在注重细节的任务中尤其明显。

3、Component-wise Analysis

Patch Info Mining

通过集成 ConvNeXt-L 作为 HR 图像的视觉编码器获得了显着的收益。

Vision Encoder

与默认的ConvNeXt-L相比,添加了两个编码器进行对比试验,即ConvNeXt-B和ConvNeXt-XXL。借助基本的 ConvNeXt-B,模型在 TextVQA 和 MM-Vet中表现更好。然而,ConvNeXt-L 编码器始终提供峰值结果,尤其是在 MME 和 MM-Vet 数据集中,表明在处理详细视觉信息方面具有卓越的平衡。可以从表中得出结论,HR 图像的较大视觉编码器对候选质量的贡献更大,但模型会与 ConvNeXt-XXL 等过大的编码器收敛。因此,考虑到有效性和计算效率之间的平衡,选择ConvNeXt-L作为默认的HR视觉编码器。这一决定是基于其提供高质量视觉信息挖掘的能力,同时保持合理的计算需求,跨基准的比较性能证明了这一点。

High-quality Data

高质量的数据对于提升LLM和VLM能力的重要性怎么强调都不为过。

Visual Token Extension

如图 3b 所示,扩展的视觉标记,从而在不同的输入分辨率下推广其实用性。我们在表 3 中验证了有效性。当增加 LR 和 HR 输入分辨率时,该模型在所有基准测试中都取得了显着的增益。分辨率的提高显着减少了幻视,从而使图像理解更加准确和可靠。一般来说,随着视觉令牌数量的增加,Mini-Gemini 可以扩展到更好的能力。

4、Qualitative Results

Visual Understanding

为确定 Mini-Gemini 在现实环境中的视觉理解能力,将其应用于图 5 中的各种理解和推理任务。得益于补丁信息挖掘和高质量的数据,Mini-Gemini 可以很好地解决多种复杂情况。

Image Generation

对Mini-Gemini的生成能力进行了全面评估。与最近的研究(例如 AnyGPT和 ChatIllusion)相比,更强的多模态理解能力使模型能够生成与给定指令更好地对齐的文本到图像标题,从而产生更适合上下文的图像文本答案。如图  6 所示,它能够熟练地基于多模式人类指令和纯文本训练数据生成高质量内容。这一能力凸显了 Mini-Gemini 强大的图像文本对齐和语义解释能力,这些能力在推理阶段有效发挥作用。利用LLM强大的推理能力,可以在单轮或多轮对话中产生合理的图文输出。

四、Conclusion and Discussion

仍有很大的潜力需要进一步挖掘。对于视觉理解来说,计数能力和复杂的视觉推理能力还远远不能令人满意。这可能是由于缺乏相应的训练数据,特别是在预训练阶段。同时,对于基于推理的生成,在这项工作中使用文本来桥接 VLM 和扩散模型,因为没有发现基于嵌入的方法有明显的增益。将尝试寻找一种更先进的方式来进行视觉理解、推理和生成。

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

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

相关文章

电磁仿真--基本操作-CST-(2)

目录 1. 回顾基操 2. 操作流程 2.1 创建工程 2.2 修改单位 2.3 创建 Shape 2.4 使用拉伸 Extrude 2.5 修改形状 Modify Locally 2.6 导入材料 2.7 材料解释 2.8 材料分配 2.9 查看已分配的材料 2.10 设置频率、背景和边界 2.11 选择 Edge&#xff0c;设置端口 2.…

npm install 卡在still idealTree buildDeps不动

前言 再使用npm install 安装包依赖时 发现一直卡住 停留在 观察node_cache下的_logs文件 发现一直在拉取包 37 silly idealTree buildDeps 38 silly fetch manifest riophae/vue-treeselect0.4.0尝试解决 尝试设置了taobao镜像源 依然如此 获取已经设置的镜像源 确实是ta…

软文发稿对于企业的重要性

随着社会的发展和科技的进步&#xff0c;软文发稿已成为企业和个人推广和传播信息的一种非常重要的方式。它以隐性的广告形式&#xff0c;通过内容发布&#xff0c;为品牌广告和产品推广铺设了一条隐形高速公路。下面我们就详细解析一下软文发稿的优点和好处。 软文发稿帮助增…

setTimeout回调函数 this指向问题

本文主要介绍setTimeout的回调函数的this指向问题 例子1&#xff1a;回调函数是一个普通函数 setTimeout 的回调函数是一个普通函数&#xff0c;而不是箭头函数&#xff0c;因此它有自己的上下文&#xff0c;this 指向全局对象&#xff08;在浏览器中是 window 对象&#xff…

【linux】匿名管道|进程池

1.进程为什么要通信&#xff1f; 进程也是需要某种协同的&#xff0c;所以如何协同的前提条件(通信) 通信数据的类别&#xff1a; 1.通知就绪的 2.单纯的数据 3.控制相关的信息 2.进程如何通信&#xff1f; 进程间通信&#xff0c;成本会高一点 进程间通信的前提&#xff0c;先…

《html自用使用指南》--基于w3School实践

1.基础标签 文本输入时&#xff0c;在编辑器中的换行&#xff0c;多个空格&#xff0c;都被编辑器看作一个空格 <p> 这个段落 在源代码 中 包含 许多行 但是 浏览器 忽略了 它们。 </p>结果&#xff1a;这个段落 在源代码 中 包含 许多行 但是 浏览器…

java多线程-悲观锁、乐观锁

简介 悲观锁&#xff1a;没有安全感&#xff0c;一上来就直接加锁&#xff0c;每次只能一个线程进入访问&#xff0c;访问完毕之后&#xff0c;再解锁。线程安全&#xff0c;但是性能差。乐观锁&#xff1a;很乐观&#xff0c;一开始不上锁&#xff0c;认为没有问题。等到要出现…

AI预测福彩3D第9套算法实战化测试第1弹2024年4月23日第1次重新测试

上篇文章咱们开启了实战化测试&#xff0c;也就是将之前的推荐方案直接缩为6码定位&#xff0c;再配合缩号&#xff0c;争取缩至4-5码。由于昨天的第一次测试&#xff0c;AI模型的某个参数设置错误&#xff0c;导致结果跟预期的相差较大&#xff0c;咱们今天修正下参数重新开启…

16.Nacos环境隔离

环境隔离namespace Namespace->Group->Service/Data->集群->实例 Namespace: Group&#xff1a; nacos控制台新增一个开发环境的命名空间&#xff1a;dev, 会产生命名空间的id。 将命名空间的id配置到微服务的配置文件中&#xff1a; spring:cloud:nacos:server…

【C语言】手撕二叉树

标题&#xff1a;【C语言】手撕二叉树 水墨不写bug 正文开始&#xff1a; 二叉树是一种基本的树形数据结构&#xff0c;对于初学者学习树形结构而言较容易接受。二叉树作为一种数据结构&#xff0c;在单纯存储数据方面没有 顺序表&#xff0c;链表&#xff0c;队列等线性结构…

ZNS SSD+F2FS文件系统|如何降低GC开销?--2

在F2FS&#xff08;Flash-Friendly File System&#xff09;中&#xff0c;Over-provisioning&#xff0c;OP配置是一种优化策略&#xff0c;旨在通过预留一部分存储空间不分配给用户使用&#xff0c;以提升文件系统的性能、耐用性和可靠性。在F2FS与ZNS SSD的结合中&#xff0…

Win10 打开有些软件主界面会白屏不显示,其他软件都正常

环境&#xff1a; Win10专业版 英伟达4070 显卡 问题描述&#xff1a; Win10 打开有些软件主界面会白屏不显示,打开远程协助软件AIRMdesk,白色&#xff0c;其他软件都正常 解决方案&#xff1a; 网上说电脑没有接显示器独立显卡的关系导致 我是只有一台主机&#xff0c;没…

mmclassification 训练自己的数据集

文章目录 从源码安装数据集准备config文件训练附录 从源码安装 git clone https://github.com/open-mmlab/mmpretrain.git cd mmpretrain pip install -U openmim && mim install -e .下面是我使用的版本 /media/xp/data/pydoc/mmlab/mmpretrain$ pip show mmcv mmpr…

Fisher判别示例:鸢尾花(iris)数据(R)

先读取iris数据&#xff0c;再用程序包MASS&#xff08;记得要在使用MASS前下载好该程序包&#xff09;中的线性函数lda()作判别分析&#xff1a; data(iris) #读入数据 iris #展示数据 attach(iris) #用变量名绑定对应数据 library(MASS) #加载MASS程序包 ldlda(Species~…

路由引入,过滤实验

实验拓补图 实验目的&#xff1a; 1、按照图示配置 IP 地址&#xff0c;R1&#xff0c;R3&#xff0c;R4 loopback口模拟业务网段 2、R1 和 R2 运行 RIPv2,R2&#xff0c;R3和R4运行 OSPF&#xff0c;各自协议内部互通 3、在 RIP 和 oSPF 间配置双向路由引入,要求除 R4 上的…

Jackson 2.x 系列【30】Spring Boot 集成之数据脱敏

有道无术&#xff0c;术尚可求&#xff0c;有术无道&#xff0c;止于术。 本系列Jackson 版本 2.17.0 本系列Spring Boot 版本 3.2.4 源码地址&#xff1a;https://gitee.com/pearl-organization/study-jaskson-demo 文章目录 1. 概述2. 实现思路3. 案例演示3.1 脱敏规则3.2 自…

【全网首发】Mogdb 5.0.6新特性:CM双网卡生产落地方案

在写这篇文章的时候&#xff0c;刚刚加班结束&#xff0c;顺手写了这篇文章。 前言 某大型全国性行业核心系统数据库需要A、B两个物理隔离的双网卡架构方案&#xff0c;已成为行业标准。而最新发布的MogDB 5.0.6的CM新增支持流复制双网段部署&#xff0c;用于网卡级高可用容灾(…

Vue--》深入了解 VueUse 功能性工具集

今天博主为大家介绍一款实用性的插件名字叫做 VueUse &#xff0c;它是专门为 Vue.js 生态系统设计的功能性工具集合。其提供了许多可重用的功能函数&#xff0c;可以帮助开发者更轻松地构建 Vue.js 应用程序。其提供了大量的功能&#xff0c;包括状态管理、副作用管理、组合式…

SpringCloud系列(12)--服务提供者(Service Provider)集群搭建

前言&#xff1a;在上一章节中我们成功把微服务注册进了Eureka集群&#xff0c;但这还不够&#xff0c;虽然注册服务中心Eureka已经是服务配置了&#xff0c;但服务提供者目前只有一个&#xff0c;如果服务提供者宕机了或者流量过大&#xff0c;都会影响到用户即服务使用者的使…

GoJudge环境部署本地调用云服务器部署go-judge判题机详细部署教程go-judge多语言支持

前言 本文基于go-judge项目搭建&#xff0c;由于go-judge官网项目GitHub - criyle/go-judge: Sandbox Server in REST / gRPC API. Based on Linux container technologies.&#xff0c;资料太少&#xff0c;而且只给了C语言的调用样例&#xff0c;无法知道其他常见语言比如&am…