在本文中,我们提出了一种
名为 TextHawk 的 MLLM,专门针对文档导向型任务
设计,同时保留 MLLM 的通用能力。TextHawk 旨在
通过设计四个专用组件来探索高效的细粒度感知能力。首先,我们提出了一种重新采样和重新排列(ReSA)
模块,以减少文档文本中的冗余信息并降低 MLLM 的
计算成本。我们探索了对每个局部特征的位置进行编
码的方法,提出了一种可扩展的位置嵌入(SPE)方
法,可以保留各种图像大小的可扩展性。然后,我们
采用了一个查询提案网络(QPN),用于在不同子图
像之间动态初始化查询。为了进一步增强 MLLM 的细粒度视觉感知能力,我们设计了一种多级跨模态注
意力(MLCA)机制,可以捕捉文档图像的层次结构
和语义关系。此外,我们通过 Gemini Pro 丰富多模态
文档数据,创建了一个新的指令调优数据集用于文档
导向型任务。我们在通用和文档导向型 MLLM 基准
上进行了广泛实验,结果表明 TextHawk 优于最先进
的方法,证明了其细粒度文档感知和通用能力方面的
有效性和优越性。
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 模块的所有权重。
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)的一个预
定义权重。