笔者在前期一个系列分享了各种文档智能相关的技术方法,可以参考《文档智能系列栏目》,涵盖各种常见方法。
下面直接看看这个端到端的文档智能结构化方法,供参考。
方法
一、架构
ECLAIR 采用了一个较大的视觉编码器(657M 参数-ViT-H/16)和一个较轻量级的解码器(279M 参数-mBART)组成端到端的模型,主要为了在推理时提高效率。ECLAIR 包括以下几个组件:
视觉编码器(Vision Encoder)
ECLAIR 的视觉编码器是从 RADIO 模型初始化的,该模型基于 ViT-H/16 架构。
- 输入:视觉编码器的输入是一张图像,表示为 I ∈ R 3 × H × W I \in R^{3 \times H \times W} I∈R3×H×W,其中 H H H 和 W W W 分别是图像的高度和宽度,3 表示 RGB 通道。
- 输出:编码器将图像映射到一个潜在表示 Z ∈ R N × d Z \in R^{N \times d} Z∈RN×d,其中 N N N 是序列长度, d d d 是隐藏维度。
通过视觉编码器,图像被转换为一个序列化的特征向量。
颈部(Neck)
这部分主要是做降维操作,通常使用卷积或其他变换来压缩特征表示,以便更好地适应解码器的输入要求。
解码器(Decoder)
ECLAIR 使用 mBART 解码器,这是一个多语言的 Transformer 解码器。
-
输入:解码器通过条件化于编码器的潜在表示 N ( Z ) \mathcal{N}(Z) N(Z) 和上下文 $ t_{<i} $ 来预测文本标记 T = { t P + 1 , t P + 2 , … , t L } T = \{t_{P+1}, t_{P+2} , \ldots, t_{L}\} T={tP+1,tP+2,…,tL}。这里的 Z = E ( I ) Z = \mathcal{E}(I) Z=E(I) 是编码器的输出,$ {t_{1}, t_{2}, \ldots, t_{P}} $ 是提示标记, L L L 是提示增强后的序列长度。
-
输出:解码器预测文本标记,这些标记可以是格式化的文本、边界框和语义类别。
二、提示设计
Prompt机制是用于指导模型输出特定类型信息的关键组成部分。用户可以通过提示指定模型输出的格式和内容,实现灵活的输出控制。
ECLAIR的提示是一个三元组(文章中附上了数据合成的方法,感兴趣可以看看,这里不在展开),包含三个选项,每个选项可以有八种可能的组合(忽略没有输出的情况以及请求语义类别但没有相应边界框的情况)。
提示的组成
-
输出格式:
- <structured_text>:以 Markdown 格式输出文本,内联公式以 LaTeX 格式表示。
- <plain_text>:以纯文本格式输出所有内容。
- <no_text>:不输出文本。
-
边界框:
- < bbox > :输出文本块的边界框坐标。
- <no_bbox>:不输出边界框。
-
语义类别:
- < classes >:输出每个文本块的语义类别。
- < no_classes >:不输出语义类别。
提示的组合
通过不同的组合,ECLAIR 可以生成多种类型的输出。例如:
- 最大信息提示(MIP):同时输出结构化文本、边界框和语义类别。这是最详细的输出形式。
- 仅文本提示:只输出结构化文本或纯文本,不输出边界框和语义类别。
- 仅边界框提示:输出边界框和相应的文本,但不输出语义类别。
- 最小信息提示:只输出文本,不输出边界框和语义类别。
提示的使用
在训练过程中,ECLAIR 在预训练阶段使用最大信息提示进行训练,以确保模型能够处理所有可能的输出类型。在微调阶段,可以通过减少信息密度来适应具有部分标注的数据集。这种方法允许模型利用多样化的视觉数据进行训练,即使这些数据集的标注不完全。
实验效果
参考文献
ECLAIR – Extracting Content and Layout with Integrated Reading Order for Documents,https://arxiv.org/pdf/2502.04223v1
注:代码未开源,基准评价数据集也未开放。