微信扫码
与创始人交个朋友
我要投稿
论文名:TextHawk: Exploring Efficient Fine-Grained Perception of Multimodal Large Language Models
论文链接:https://arxiv.org/pdf/2404.09204.pdf
开源代码:https://github.com/yuyq96/ TextHawk
引言
多模态大型语言模型 (Multimodal Large Language Models,MLLMs) [blip2,instructblip,llava] 最近受到了广泛 关注并取得了长足进步。它们以大型语言模型 (Large Language Models,LLMs) 为核心,将 LLMs 的强大功 能扩展到视觉模式等其他模式。由于文档图像理解具 有广泛的应用场景,因此在视觉感知领域占据着关键 地位。作为 MLLMs 的一项核心能力,文档图像理解 能力使得更多尖端应用变得容易实现,例如基于MLLM的智能手机应用程序代理和富文本辅助阅读等。然而, 文档图像因其在多个方面与自然图像不同,为 MLLMs 带来了独特的挑战。文档图像通常具有高于自然图像 的分辨率和信息密度,这意味着 MLLMs 在处理文档 图像时需要克服两个关键困难。第一个困难是实现对 文档内容的强大细粒度视觉感知。第二个困难是高效 压缩文档图像信息。
简介
在本文中,我们提出了一种 名为 TextHawk 的 MLLM,专门针对文档导向型任务 设计,同时保留 MLLM 的通用能力。TextHawk 旨在 通过设计四个专用组件来探索高效的细粒度感知能力。首先,我们提出了一种重新采样和重新排列(ReSA) 模块,以减少文档文本中的冗余信息并降低 MLLM 的 计算成本。我们探索了对每个局部特征的位置进行编 码的方法,提出了一种可扩展的位置嵌入(SPE)方 法,可以保留各种图像大小的可扩展性。然后,我们 采用了一个查询提案网络(QPN),用于在不同子图 像之间动态初始化查询。为了进一步增强 MLLM 的细粒度视觉感知能力,我们设计了一种多级跨模态注 意力(MLCA)机制,可以捕捉文档图像的层次结构 和语义关系。此外,我们通过 Gemini Pro 丰富多模态 文档数据,创建了一个新的指令调优数据集用于文档 导向型任务。我们在通用和文档导向型 MLLM 基准 上进行了广泛实验,结果表明 TextHawk 优于最先进 的方法,证明了其细粒度文档感知和通用能力方面的 有效性和优越性。
方法与模型
我们的模型的设计目标有两个:一是有效地处理不同 分辨率的视觉输入,二是压缩视觉标记(visual tokens)。
1
Architecture
TextHawk的架构如图3(a)所示。它由一个冻结的视 觉编码器、一个重采样器以及一个具有LoRA(自注 意力层的低秩近似)和检测头的大型语言模型组成。
Visual Encoder. 为了加速图像编码,我们倾向于使 用相对轻量级的视觉编码器(visual encoder)而不是 庞大的模型。SigLIP [SigLIP] 是 CLIP [CLIP] 的一种变 体,它采用 Sigmoid 损失函数用于视觉语言预训练, 而不是采用 Softmax 归一化的对比学习,在多个任务中实现了更好的零样本学习(zero-shot)精度,优于 其竞争对手。因此,我们采用高效的 SigLIP-SO 模型 中的视觉转换器(Vision Transformer, ViT)作为我们 的视觉编码器进行演示,该编码器具有不同的转换器 层配置,但计算成本与标准 ViT-L 模型相似。然而, 各种视觉编码器在我们的框架中都是可行的,包括以 不同风格预训练或以不同架构构建的不同模型。
Resampler. 与 Q-Former [21] 类似,我们的视觉令牌 重采样器主要由一个非因果变换器解码器组成,它采 用一组可学习的权重作为初始查询,并自然地多次减 少视觉特征的长度。为了实现架构的灵活性,我们随 机初始化重采样器,而不是从预训练的 BERT 模型或 其他 MLLM 的现有重采样器中进行初始化。直观地 说,我们保持中间重采样器层的隐藏维度与视觉编码 器层的隐藏维度相同。重采样器有 8 层,第一层中删 除了自注意力。为了在跨注意力过程中增强对位置信 息的感知,我们在每一跨注意力层中分别为视觉编码 器输出和查询使用了正弦位置编码和学习到的位置嵌 入。
Large Language Model. 为方便预训练并利用交错的 视觉-语言训练,我们使用InternLM-XComposer [xcomposer] 的权重来初始化我们的 7B LLM。与 BLIP-2 类似,InternLM-XComposer 采用了一种名为感知采样 器(perceive sampler)的视觉令牌重采样器(visual token resampler),以连接视觉编码器和 LLM,但它 基于另一个名为 InternLM [internlm]的多语言 LLM。InternLM 的架构与 LLaMA [llama]基本相同,仅在注 意力模块中保留了偏置。具体来说,InternLM-XComposer 的训练分为两个阶段:第一个阶段是视觉-语言预训 练,包括图像-文本对以及交错的图像-文本数据。在 这个阶段,感知采样器和 LLM 都将被更新。第二个 阶段是多任务监督微调,在这个阶段,只有感知采样 器和LoRA 模块会被更新。为避免InternLM-XComposer 的微调数据集可能存在的数据泄露问题,我们仅保留 第一阶段预训练中 LLM 的权重,丢弃视觉编码器、感 知采样器和 LoRA 模块的所有权重。
2
Efficient Fine-Grained Perception
Shape-Adaptive Cropping. 预训练的视觉编码器将 图像分辨率标准化为固定和较低的大小,忽略原始长 宽比。这种处理削弱了感知高分辨率图像中细粒度内 容的能力,并在长宽比上引入了明显的失真。根据 [47], 我们通过融合动态裁剪策略来增强冻结的 ViT,从而 能够有效地处理具有任意长宽比和分辨率的图像。具 体来说,形状为 (ℎ×?) 的输入图像? 将被裁剪成多个 子图像,以与预定义网格 {? = (?×?)|?, ? ∈ {1, 2 . . . ,? }, ?· ? ≤ ?} 之一对齐,其中 ? 和 ? 分别表示网格 ? 的 行和列,? 表示最大 *边长*(一行或一列中的子图像 数量),? 表示最大 *面积*(整个图像中的子图像数 量)。网格对齐受常规和基于形状的交并比(IoU)测 量的调节。我们用 box(?) = (0, 0, ℎ,?) 表示图像边界 框,用 box(?) = (0, 0, ??, ?? ) 表示网格边界框,用 boxs(?, ?) = (0, 0, ?? ℎ ?, ?? ) 表示基于形状的边界框, 其中 (? × ? ) 是 ViT 的输入形状。交并比(IoU)的 值定义为:
我们从常规 IoU 值 ?r 最高的 ? 个网格中选择总 IoU 值 ? 最高的最终网格。
ReSampling and ReArrangement (ReSA). 在使视觉 编码器能够接受可变分辨率输入时,随着图像分辨率 的提高,图像标记的数量会呈指数级增长。如果不进 行标记压缩,则给定修补大小为 ? 的单个图像的标记 最大数量为 ??? /? 2 。
具体来说,与 5 × 4 网格对齐的标准文档图像将 消耗多达 5,120 个标记。
之前具有细粒度感知能力的开源多模态大语言模 型(multi-modal large language models,MLLMs)通 常会表现出 4 的图像标记压缩比。例如,Qwen-VL 和 Monkey 将每个 448 × 448 子图像的图像标记数量从 1,024 减少到 256,而 UReader 将每个 224 × 224 子 图像的图像标记数量从 256 减少到 64。在这种情况 下,图像标记的消耗仍然很大。为了进一步探索更高 的压缩比的可能性,我们提出了一种结合重采样和重 排列优势的方法,称为 ReSA。如图 3 (b) 所示,与之 前的 MLLMs 类似,ReSA 首先使用跨注意力机制对图 像特征进行重采样。跨注意力输出的隐藏维度与视觉 编码器输出的隐藏维度相同,通常比 LLMs 的隐藏维 度小几倍。利用这一特性,我们引入了额外的重排列 步骤以进一步减少图像标记的数量。在重采样后,多 个重采样的标记被连接到一个单一的标记,然后通过 线性投影转换为 LLMs 的潜空间。
在我们的实验中,ReSA 的每个步骤的压缩比为 4,从而获得了显着更高的 16 的压缩比。
Multi-Level Cross-Attention (MLCA). 如之前的工作 [21, 25] 所提及的,视觉编码器 (visual encoders) 是针 对特定任务进行预训练的,因此其最后一层的特征可 能更关注这些任务。研究证明,来自倒数第二层的特 征比最后一层的特征表现更好 [25]。此外,合并多个 层的特征也是可行的。在物体检测领域,特征金字塔 网络(Feature Pyramid Network,FPN)[23] 因能合并 多层次特征而著称,它可以提高对细粒度物体的感知 能力。对于多模态大语言模型(MLLMs)来说,COMM [15] 证明了合并深层和浅层特征有利于减少幻觉,并在细粒度任务上提高性能,即使没有金字塔结构。受 FPN 的启发,我们提出了一种名为 MLCA 的多层次特 征合并策略。如图 3(b)所示,MLCA 使重采样器 (resampler)能够根据预定义的路由表从深层和浅层 视觉编码器层吸收特征。只要不改变重采样器层的总 数,MLCA 与标准交叉注意力机制相比就不会产生额 外的计算成本。经验上,我们采用 4 个视觉编码器阶 段,分别从第 14、18、22 和 26 层编码器中提取特征。
Scalable Positional Embeddings (SPEs). 在没有包含 额外位置嵌入的情况下,子图像之间的相对位置关系 是模糊的。为了处理数量不定的图像块,之前的研究 工作提出了一种方法,用于学习 2D 或分解后 的绝对位置嵌入,以覆盖训练数据中表示的最大位置 索引。它们不仅在域外形状的外推中缺乏有效性,而 且由于训练输入形状的非均匀分布,所学习的嵌入也 会出现欠拟合。为了克服上述障碍,我们提出了一种名为 SPEs 的新方法,将分解后的(行和列被分解) 位置嵌入扩展到任意形状。为了清楚起见,在 SPEs 中以相同的方式处理行和列嵌入,因此以下部分省略 了其规范。
假设所学习的位置嵌入是从正态分布 N (0, 1) 初 始化的。每个位置嵌入 ? ∈ R ? 都是一个向量,其 ℓ2 范数为 √ ?,这表明位置嵌入分布在超球面的表面上。在实践中,所学习的位置嵌入的 ℓ2 范数在整个训练 过程中通常保持在狭窄的范围内,从而保留了超球面 分布特征。球面线性插值(Slerp)是一种在计算机图 形学中常用的技术,它可以在两个单位向量之间插值 以获取任何中间向量,成为位置嵌入的传统插值方法 的潜在替代方法。
为了严格满足 Slerp 的要求,我们在每个注意力 头进行插值之前应用归一化和缩放,以确保所有位置 嵌入具有统一的 ℓ2 范数:
其中 ?˜? (? ∈ {0, 1}) 表示两个可学习的端点位置嵌入 (learnable endpoint positional embeddings),? 是一个 可学习的缩放因子(learnable scaling factor),初始化 为 √ ?。如图 4 (a) 所示,我们采用 Slerp 在端点之间生成 任意的位置嵌入(positional embeddings)。
其中 ? ∈ [0, 1] 是分式位置(fractional position),它可 以是子图像或图像块的相对位置。
Query Proposal Network (QPN). 尽管 Q-Former 在固 定分辨率的多模态大语言模型(multi-modal large language models, MLLMs)中表现令人满意,但在可变分 辨率设置下,从固定数量的学习参数初始化重采样器 查询( initializing the resampler queries)的方法缺乏 灵活性。在不同的子图像上重用初始查询可能会导致 冗余和不必要的注意力模式,其中对应于不同子图像 但相同的重采样器查询的重采样图像令牌表现出强烈 的相似性,并收到不适当更高的注意力分数。为了消 除共享初始查询的副作用,我们提出了一种称为 QPN 的轻量级模块,用于动态生成查询。如图 4(b)所 示,QPN 的结构由一个带有 GELU 激活函数的 2 层 MLP(2-layer multilayer perceptron, MLP)、一个最大 池化层和一个线性投影层组成。视觉编码器的输出被 输入到 QPN,查询的数量由最大池化层的步长控制。为了公平比较,我们的实验采用 2 × 2 的步长,这样 压缩比保持为 4。MLP 层的输出维度和投影层的输入 维度设置为视觉编码器隐藏维度的 4 倍。
Detection Head. 在将多模大型语言模型 (MLLMs) 应 用于定位目标对象方面,先前的工作[2, 7, 24] 大多采 用纯文本来表示坐标,这是一种直观的方法,因为预 训练的大型语言模型 (LLMs) 能够很好地处理常规文 本字符串。然而,基于纯文本的坐标会消耗大量令牌, 降低训练吞吐量和推理效率。我们建议在 MLLMs 的 词汇表中添加特殊令牌来表示归一化坐标。具体来说, 使用常规文本字符串来描述边界框需要总共 2+4×5+ 3 = 25 个令牌,包括 2 个触发标记、4 个浮点数和 3 个逗号。但是,通过用唯一的坐标令牌替换每个浮点 数的多个数字令牌,并只保留 1 个逗号,我们可以将 令牌数量减少到 2 + 4 + 1 = 7 个。
然而,仅仅在少量数据上使用语言建模损失来训 练新添加的词嵌入效果不佳。在我们的实验中,模型 偶尔会崩溃,产生无意义的坐标。为了缓解坐标令牌 训练效率低下的问题,我们旨在引入辅助训练目标。受 DETR [4] 的启发,我们集成了一个简单的 2 层 MLP (带有 ReLU 激活函数和线性投影层)作为辅助检测 头,与 LLMs 的原始输出层并行运行。检测头的输出 由 Sigmoid 激活函数归一化。我们使用 ℓ1 损失来衡量 预测和地面真实值之间的误差:
其中 ?? 和 ? ∗ ? 分别是位置 ? 上归一化边界框坐标的预 测值和真实值,B 是输出序列中坐标令牌位置的集合。
Loss Function. 所有的数据都被整理成多轮对话的形 式,每轮对话的格式如下:
其中 和 是表示会话消息开头和结尾的特殊 标记。I ? 和 R ? 分别是第? 轮的指令标记和响应标记。与仅涉及文本标记的语言指令调优不同,I ? 可能由 文本、图像或两种模态标记组成。多模态大型语言模 型 (MLLMs) 的训练主要基于响应标记上的语言建模 损失:
其中 M 是响应位置的集合,? 是坐标令牌的预定义 权重,?<? 是包含多模态上下文的指令和响应令牌,出 现在第 ? 个令牌之前。
最终的损失是语言建模损失和上述边界框损失的 加权和:
其中 ? 是边界框损失(bounding box loss)的一个预 定义权重。
实验与结果
创建长度不同的序列批次需要填充,这会导致 (token) 浪费。为减轻这种低效情况 并提高训练吞吐量,我们将多个原始样本合并到一个训练样本中。具体来说,我们会随机选择数据集中的 样本并将其连接,直到合并后的序列长度达到预先定 义的最大值。值得注意的是,我们会仔细掩码这些原始样本,使其彼此*互不可见*。
Examples of the results produced by TextHawk
结合重采样和重排列以逐层压缩视觉标记的效果 (Effect of combining resampling and rearrangement for compressing visual tokens progressively
比较用于多级跨模注意力的不同路由表。括号中的数字表示从哪个阶段提取特征
查询提案网络(Query Proposal Network)整合的影响
对解码坐标的头进行比较
53AI,企业落地应用大模型首选服务商
产品:大模型应用平台+智能体定制开发+落地咨询服务
承诺:先做场景POC验证,看到效果再签署服务协议。零风险落地应用大模型,已交付160+中大型企业
2024-05-14
2024-04-26
2024-03-30
2024-04-12
2024-05-10
2024-07-18
2024-05-22
2024-05-28
2024-04-25
2024-04-26
2024-11-14
2024-11-13
2024-11-13
2024-11-13
2024-11-12
2024-11-11
2024-11-08
2024-11-07