多模态大模型 Monkey、TextMonkey、Mini-Monkey ---- 论文阅读

论文:
Monkey:https://arxiv.org/abs/2311.06607
Text-Monkey:https://arxiv.org/abs/2403.04473
Mini-Monkey:https://arxiv.org/abs/2408.02034
代码:
Monkey:https://github.com/Yuliang-Liu/Monkey

Monkey

在这里插入图片描述

贡献

  1. 上下文关联。引入了一种多级描述生成方法,该方法提高了模型掌握多个目标之间关系的能力,并在生成文本描述时更有效地利用公共知识。
  2. 支持分辨率高达1344 x 896。这种分辨率的显著提高超过了LMM通常采用的标准448 x 448分辨率,增强了辨别和理解不明显或密集聚集的对象和密集文本的能力。
  3. 增强了总体性能。在18个不同的数据集上进行了测试,使Monkey模型在图像字幕、通用视觉问答、以场景文本为中心的视觉问答和面向文档的视觉问答等任务中具有非常有竞争力的性能。特别是,在以密集文本问答为中心的定性评估中,与GPT4V相比,Monkey显示出了有希望的结果。

方法

在这里插入图片描述
最初,输入图像被分割成 patch。然后,这些 patch 通过具有不同适配器的共享视觉转换器 (ViT) 进行处理。随后,局部和全局特征以及问题都使用共享重采样器和大型语言模型 (LLM) 进行处理,从而产生所需的答案。

增强输入分辨率

输入分辨率对于准确解释文本和详细的图像特征至关重要。
首先使用滑动窗口把图像分割成小块,在每个共享编码中利用 LoRA 来解决图像不同部分的不同视觉元素。LoRA 的这种集成是为帮助编码器有效地识别和吸收每个图像区域的细节敏感特征,这增强了对空间和时间关系的理解,而不会显著增加参数或计算需求。

为了保留输入图像的整体结构信息,还将原始图像的大小调整为分割后小块的大小,将其作为全局图像,然后每个小块和全局图像通过视觉编码器处理并同时重新采样。重新采样目的是总结视觉信息并在语言特征空间中获得更高的语义视觉表示,它利用交叉注意力机制来实现。该交叉注意力机制使用可训练向量作为 query ,来自视觉编码器的图像特征作为交叉注意力的 key。
这种方法在图像的详细和整体视角之间取得了平衡,从而提高了模型的性能,从而避免了计算需求的大幅增加。

多级描述生成

以前的模型如LLAVA和Qwen-VL使用LAION、COYO和CC3M等大型数据集进行初始训练。然而,这些数据集通常提供过于简单的图像-文本对(例如,描述复杂图像的短句),缺乏详细的图像。因此,即使这些模型是用高分辨率图像训练的,它们也很难准确地将视觉特征与基本标题联系起来。这种限制会影响模型有效地将视觉处理与语言理解相结合。

为了弥合这一差距,本文提出了一种自动生成多级描述的新方法。该技术旨在通过有效地混合各种生成器的输出来创建丰富且高质量的字幕数据。本文利用几个高级系统的组合,每个系统都将其自己的强度带到过程中:BLIP2 ,它提供了对图像和文本之间关系的深刻理解;PPOCR,OCR工具; GRIT,专门针对详细的图像-文本匹配; SAM ,专注于语义对齐;和 ChatGPT,以其在上下文语言生成。

在这里插入图片描述

如上图所示,图像描述过程从 BLIP2 开始,使用 Q-former 创建整体字幕,以与视觉编码器和 LLM 紧密集成,同时保留原始 CC3M 注释以进行上下文。接下来,GRIT 是一个区域到文本模型,生成特定区域、对象及其特征的详细描述。PPOCR从图像中提取文本,SAM片段并识别对象及其部分。然后,这些对象由 BLIP2 单独描述。然而,为了应对这些工具的潜在不准确,尤其是在零样本设置中,我们发现使用 BLIP2 来检查图像区域、对象及其描述之间的一致性至关重要,过滤掉低分匹配。最后,所有数据,包括全局字幕、本地化描述、文本提取和具有空间坐标的对象细节,都被输入 ChatGPT API 进行微调,使 ChatGPT 能够生成准确和上下文丰富的图像描述。

通过合并这些系统的独特特征,本文方法实现了分层和全面的字幕创建风格。它捕获了广泛的视觉和文本细微差别,导致字幕不仅详细说明,而且上下文多样化和引人入胜。

多任务训练

本文是要训练一个既具有成本效益又能够理解各种任务的不同类型的图像模型。通过集成各种数据集并为所有任务使用统一的指令,提高了模型的学习能力和训练效率。

本文专注于创建图像标题、响应基于图像的问题和其他需要模型处理文本和图像的活动等任务。对于字幕,我们用“Generate the caption in English:”指示模型用于基本字幕,“Generate the detailed caption in English:”表示更复杂的字幕。在回答有关图像的问题时,使用一个简单的格式:“{question} Answer:{answer}。”

在训练过程中,使用了针对特定任务量身定制的各种公共数据集。对于图像字幕,包括本文的详细字幕和已建立的数据集,如 COCO 字幕 和 TextCaps 。对于一般的视觉问答(VQA),我们利用VQAV2、OKVQA、GQA、ScienceQA和VizWiz等数据集。对于以文本为中心的 VQA 任务,我们选择 TextVQA 、OCRVQA 和 AI2D ;而对于与文档相关的 VQA,我们采用了 DocVQA 、ChartQA 、InfoVQA 、DeepForm、Kleister Charity (KLC) 、WikiTableQuestions (WTQ)、TableFact 和 VisualMRC 等数据集。为了确保平衡训练,控制了每个任务的图像计数如下表。本文数据集(大约有 1.44 亿个示例)旨在有效地训练本文的模型来理解和执行各种指令。
在这里插入图片描述

实验

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

局限

由于语言模型的输入长度有限,本文方法处理输入图像的能力被限制为最多六个 patches (图像大小为 896*1344)。这种限制阻碍了输入分辨率的进一步扩展。

此外,对于多级描述生成方法,它只能描述图像中呈现的场景,其范围受封装在 BLIP2 和原始 CC3M 注释中的世界知识的限制。例如,当提供国家位置的照片时,该方法可以描述场景的视觉方面,但它缺乏识别和指定场景确实在该国家的能力。

结论

本文提出了一种训练高效的方法,在不从一开始就进行预训练的情况下,有效地将输入分辨率容量提高到1344×896像素。为了弥合简单文本标签和高分辨率之间的差距,提出了一种多级描述生成方法,该方法自动提供丰富的信息,可以引导模型学习场景和对象之间的上下文关联。随着这两种设计的协同作用,本文模型在多个基准上都取得了优异的成绩。通过将本文模型与各种 LMM 进行比较,包括 GPT4V,本文模型通过关注文本信息并捕获图像中的精细细节来展示图像字幕的良好性能;它改进的输入分辨率也可以在具有密集文本的文档图像中取得显着的性能

TextMonkey

在这里插入图片描述

贡献

  1. 增强跨窗口关系。采用 Shfited Window Attention 在扩展输入分辨率的同时成功合并跨窗口连接。在移位窗口注意机制中引入了零初始化,使模型能够避免对早期训练进行剧烈修改
  2. token 压缩。因为放大分辨率会导致一些冗余标记。通过使用相似性作为标准,能够找到作为 token resamper 查询的重要 token。这个模块不仅减少了 token 的长度,而且提高了模型的性能。此外,与使用随机查询相比,它显着提高了性能。
  3. 支持文本接地。本文扩展了我们的范围,以包括基于文本的问答之外的任务,包括阅读文本、文本发现和文本接地。此外,将位置信息合并到答案中可以提高模型的可解释性。TextMonkey还可以进行微调,以了解屏幕镜头点击的命令

方法

在这里插入图片描述

首先使用滑动窗口模块将输入图像划分为不重叠的 patch,每个 patch 的大小为 448x448 像素。这些 patch 进一步细分为 14x14 像素的更小的patch ,每个 patch 都被视为一个 token。利用预训练的 CLIP 模型,然后分别在每个窗口 patch 上处理这些 token。为了建立各个窗口 patch 之间的连接,在 Transformer 块之间以一定间隔集成移位窗口注意力(Shifted Window Attention)。为了生成分层表示,输入图像的大小被调整为 448x448,并输入CLIP提取全局特征。这个全局特征以及来自子图像的特征,然后由共享图像重采样器处理以与语言域对齐。然后,通过压缩标记的长度,使用 Token Resampler 进一步最小化语言空间中的冗余。最终,这些处理后的特征与输入问题相结合,由大型语言模型 (LLM) 分析以产生所需的答案。

移位窗口注意(Shifted Window Attention)

有研究强调了输入分辨率对文档理解重要性。为了提高训练效率,有写方法采用了滑动窗口技术来提高图像分辨率,但这种策略可能会导致文档分析中连接文本的碎片化,从而破坏语义的连续性,
为了缓解上述问题,本文采用了移位窗口注意来增强 CLIP 的视觉处理能力。具体的,本文将图像分割成不重叠的窗口,在每个窗口内分别使用 CLIP,本身该结构不考虑跨窗口的关系。为了合并不同窗口之间的交互并增强图像的上下文理解,所以采用了移位窗口注意力机制。如 Swin Transformer ,滑动窗口向左上角方向循环移动,从而产生新的窗口。通过掩码机制进行自注意力计算,将自注意力计算限制在新的窗口内。
为了实现更平滑的训练初始化,本文通过从零初始化开始学习来对移位窗口注意力进行修改,避免了初始阶段早期特征的过度转换,通过将 MLP 中的常规初始化修改为零初始化,以实现更平滑的训练。根据 LoRA,两个线性层,一个使用随机高斯初始化,另一个使用零初始化。这种方法确保图像编码器的参数在初始阶段保持稳定,便于更平滑的训练。

图像重采样器(Image Resampler)

为了最初减少图像特征的冗余,本文在每个窗口上使用 Qwen-VL 的图像重采样器。该模块使用一组可训练参数作为 query,并且利用来自视觉编码器的图像特征作为交叉注意力的 key 和 value。这个过程有助于将视觉特征序列压缩为 256 的固定长度。此外,为了保持对细粒度图像理解至关重要的位置信息,将二维绝对位置编码集成到交叉注意机制的 query-key 中。

Token Resampler

随着分辨率的增加,使用滑动窗口机制,token 的数量也随着增加。然而,由于某些预研模型的输入长度和训练时间的限制,有必要去减少 token。对于自然语言,重复的语言元素是冗余信息。假设通过扩展图像的分辨率,将存在冗余视觉信息。本文首先计算了图像 token 的相似性:在图像重采样器之后随机选择20个有序特征,并使用余弦相似度得出成对的相似性,可以观察到许多图像 token 表现出多个相似标记,如下图左所示。然后,本文定量比较了不同分辨率的 token 的冗余,如下图右所示。根据经验,选择阈值 0.8 作为相似阈值。在 448、896 和 1334分辨率下,分别观察到 68/256(26.6%)、571/1024(55.8%)和1373/2304(59.5%)的冗余 token。随着分辨率的增加,重复 token 的占比越高。可以观察到,某些 token 是比较独特的,并且缺乏相似的对应 token,例如途中的第五个 token,这表明这个 token 是不同的。假设这些 token 携带关键和独特的信息,利用相似度作为度量来识别显著 token。
在这里插入图片描述
因此,本文提出 token 重采样来压缩冗余 token,如下如所示。本文来利用token 过滤算法来选择最有价值的 token。为了避免直接丢弃其他 token 造成的信息损失,利用重要的 token 作为 query,并使用交叉注意力机制进一步融合所有特征。除此之外,与随机查询相比还显著提升了性能。
在这里插入图片描述

位置相关任务(Position-Related Task)

为了缓解 LLM 的幻觉问题(可能产生与所提供的图像无关的错误相应),本文旨在增强 LLM 在回复的时候可以分析和结合视觉信息的能力。本文对现有的问答数据集进行了修改:将答案的位置信息集成到答案本身中,为了保持直接对话的原始能力,还保留了原始的问答任务。
为了更好地感知文本的空间位置,需要模型具有很强的空间理解。基于此,添加了额外的训练任务来改进模型对文本位置的感知,例如文本定位和阅读文本,比如下表中的任务。为了保证文本和位置数据之间的强联系,我们严格地保持他们地对齐,确保文本信息总是出现在任何相关地位置细节之前。

在这里插入图片描述
为了标准化不同比率地图像,使用 (0,1000) 的尺度来表示位置信息。因此在分辨率为 HxW 的图像中,文本坐标 (x, y) 将归一化为 [x/H*1000] , y 也一样。

损失函数

由于 TextMonkey 被训练来预测其他 LLM 等下一个标记,它只需要在训练时最大化损失的可能性。

L = max ⁡ ∑ i = 1 L log ⁡ P ( s i ~ ∣ I , Q , s 1 : i ) L = \max \sum_{i=1} ^ L \log P(\tilde{s_i}| I, Q,s_{1:i}) L=maxi=1LlogP(si~I,Q,s1:i)

实验

数据集

在这里插入图片描述

为了进一步增强模型处理结构化文本的能力,本文使用结构化数据在 TextMonkey 上微调一个 epoch 以增强其结构化能力,从而产生 TextMonkey†。微调数据主要由前一阶段的 5% 数据以及部分结构化数据组成,包括文档、表格和图表。结构化数据图像还来自公开可用的数据集,并使用它们的结构信息生成。因此,在结构化数据中总共有 55.7k 的数据。

比较

在这里插入图片描述

在这里插入图片描述

可视化

在这里插入图片描述
图表结构化

在这里插入图片描述
APP Agent 使用 Text-Monkey 单击和滑动图形用户界面
在这里插入图片描述

结论

本文为了解决大模型对于文档图像的分辨率问题,使用了滑动窗口并且采用了零初始化的移位窗口注意力来对多窗口建立关系。为了解决视觉 token 的冗余,提出使用 token 重采样来有效减少 token 的数量。同时针对大模型容易出现的幻觉问题,加入了面向文本的任务,增强模型对空间关系的感知和理解。

局限性:由于公共数据集大部分是英文的,针对中文的处理能力稍弱。而且对于分辨率大的图像,与现有的OCR相比,识别效果仍然不好,会出现重复、漏识别等问题。

Mini-Monkey

在这里插入图片描述

动机

现在多模态大模型为了处理高分辨率的图像,会对图像进行分块,但是这种分块操作不可避免地会分割对象和连通区域,削弱了多模态大模型识别小或不规则形状的对象的能力,特别是在文档理解的背景下。该策略将引入两种类型的语义不连贯:

  1. 如果一个对象或字符被划分,它可能无法识别;
  2. 如果分割一个词或句子,则会造成分割词的语义问题。

因此本文提出了一种即插即用的方法,称为多尺度自适应裁剪策略(multi-scale adaptive cropping strategy,MSAC),这使得不同尺度的特征之间能够有效地互补,缓解以上问题。

而引入了 MSAC 后会增加视觉 token,会增加额外的计算开销,所以提出了尺度压缩机制(Scale Compression Mechanism,SCM) 。SCM 是一个无训练和无参数模块,以减少计算开销。它利用LLM中训练好的注意层,根据注意权重生成注意权重和并根据此权重丢弃一些 token。

贡献

  • 多尺度自适应裁剪策略(MSAC):该策略通过分层操作生成多尺度的图像表示,确保在不同尺度上选择未被分割的对象,从而减少语义损害。
  • 尺度压缩机制(SCM):为了减少MSAC带来的计算开销,论文提出了一种训练和参数均为零的压缩机制,能够有效地压缩图像标记。
  • 高效的训练策略:Mini-Monkey可以在仅需八张RTX 3090显卡的情况下进行训练,且在多项通用多模态理解任务上取得了领先的性能,特别是在文档理解能力上显著提升。

方法

在这里插入图片描述
图像通过 MSAC 对图像进行分块,然后输入到 ViT 中获取视觉特征,通过 Pixel Shuffle 把图像特征的宽高维度的特征放到通道维度上,从而减少图像token的数量,再通过 MLP 把图像特征维度保持和文本特征维度一致,再通过本文提出的 SCM 压缩视觉 token 数量,最后将视觉和文本 token 一起输入到 LLM 中获取结果。

Multi-Scale Adaptive Cropping Strategy

在这里插入图片描述
首先生成一系列的预定义的网格比例,最大不超过设置的最大值。(3:4代表把原图分为3x4的网格,总共12个块)。
然后,对这些网格执行分层操作,根据它们的纵横比分为三组:详细层、自适应层、全局层。为每一层选择一个纵横比。不同的层为模型提供不同的信息。

  • 详细层负责提供详细信息。它不仅限制了子图像的最大值,而且限制了子图像的最小值,使图像尽可能大,使图像中的物体更清晰。由于裁剪策略,该层生成的图像可能具有语义不一致。因此,我们利用自适应层与详细层协同,允许模型从不同尺度中选择非分割对象。
  • 自适应层将根据详细层自适应地生成纵横比,确保详细层的裁剪线和自适应层的裁剪线不重叠。具体来说,如果详细层的纵横比是来自自适应层的纵横比的倍数,我们从自适应层中删除它并选择一个新的比率。此过程确保详细层和自适应层为模型提供不同的语义信息和视觉特征。
  • 全局层:纵横比 1 : 1 生成图像的全局视图作为低分辨率。

在从三层获取图像后,这些图像被输入到视觉编码器进行特征提取,并通过尺度压缩机制压缩视觉 token。然后输入到大型语言模型中进行多尺度视觉表示融合并输出结果。

Scale Compression Mechanism

在这里插入图片描述

尽管所提出的 MSAC 显着提高了模型性能,但某些场景可能会增加计算要求。为了解决此问题,又引入了一种无参数的 token 压缩方法,称为尺度压缩机制 (SCM),用于减少视觉 token 。由于来自详细层的 token 信息密度较低,所以主要关注压缩这些 token。相比之下,来自自适应层和全局层的视觉标记为LLM提供了完整的空间信息。具体来说,MLLM 中训练好的 LLM 可以有效地根据输入问题选择必要的视觉特征。因此,SCM 利用 LLM的第一层和第二层来选择视觉 token,而不生成任何额外的参数。

输入视觉 token,包括详细层 token、自适应层 token 和 全局层 token,文本 token输入到LLM中。LLM 层将输出一个注意力图。我们从自适应层、全局的视觉 token 和文本 token 来选择来自详细层的视觉 token。

在这里插入图片描述
计算得到 A t t n w Attn_w Attnw 之后,通过对第一个维度平均则可以得到详细层每个token的分数,然后根据此分数从细节层中选择前 K 个视觉特征。最后这些过滤后的视觉 token 和来自自适应层、全局层的视觉 token 以及文本 token的输入到 LLM 中以生成结果。

实验

MSAC 的有效性
在这里插入图片描述
在这里插入图片描述
SCM的有效性
在这里插入图片描述

可视化结果

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

CharlesWu123

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值