ViTLP,一款颠覆性的视觉引导生成式文本-布局预训练模型,由华为诺亚方舟实验室重磅开源!无需OCR引擎,ViTLP直接从图像中学习文本和布局,轻松处理任意长度文档,并生成可解释的视觉定位信息。在OCR和VDU任务中表现卓越,ViTLP开启文档智能新纪元!
文档智能处理之痛,ViTLP的破局之道
数字化转型浪潮下,海量文档数据的自动化处理成为企业和个人提升效率的关键。如何让计算机像人类一样理解和处理各种类型的文档,一直是文档智能领域的核心挑战。传统的文档智能处理流程依赖于光学字符识别(OCR)引擎,如同给文档处理设置了“关卡”:先将文档图像转换为文本信息,再进行下游任务。这类似于将一幅画先描绘成文字,再让其他人根据描述理解画意,过程中难免信息丢失、误差产生。这种方法存在 OCR 错误传播、处理长文档效率低下等问题,制约着文档智能技术的发展。传统的 VDU 方法依赖于预处理的 OCR 文本和对应的二维坐标,而外部 OCR 流水线可能产生错误或不完整的识别结果,且无法通过 VDU 模型进行联合优化,如同建筑地基不稳,上层建筑再宏伟也难以屹立。华为诺亚方舟实验室开源的 ViTLP (Visually guided generative Text-Layout Pre-training) 彻底打破了这一僵局!ViTLP 无需 OCR 引擎,将 OCR 和视觉文档理解(VDU)能力融入统一的生成式预训练框架。这意味着 ViTLP 能够直接从文档图像中学习文本和布局信息,避免 OCR 错误干扰,实现端到端的文档处理,大幅提升效率和性能,并能够生成文本的二维布局位置,用于视觉定位。ViTLP 在各种 VDU 基准测试任务(包括信息提取、文档分类和文档问答)中展现出极具竞争力的性能,引领文档智能进入全新纪元!
ViTLP:技术架构深度剖析
ViTLP 采用编码器-解码器框架(图 2),巧妙地将图像信息转化为文本布局序列。编码器使用 Vision Transformer (ViT) 将文档图像 编码为视觉特征,其中为 ViT 图像块数量,为隐藏维度。解码器是一个因果文本-布局解码器,接收视觉表示和文本-布局输入嵌入,通过 Transformer 交叉注意力机制进行多模态交互,生成多模态表示。ViTLP 的核心在于分层生成模块和多段生成式预训练方案,这两个模块如同 ViTLP 的左膀右臂,使其在复杂文档信息处理中游刃有余。
分层生成模块:全局到局部,精准捕获文本布局
ViTLP 的分层生成模块包含全局文本布局建模和局部布局建模两部分,以全局到局部的层次化方式进行文本和布局生成,兼顾效率和效果,如同一位绘画大师,先勾勒整体轮廓,再细致刻画局部细节。
- 全局文本布局建模: 将布局坐标 替换为通用布局标记 [LOC],将文本和布局信息交错生成,形成统一的文本-布局序列 。这种方法将布局信息巧妙地融入语言模型,实现高效的多模态信息融合,并显著降低序列长度,提高模型效率。其目标是最大化似然函数 ,可分解为自回归文本和布局建模:
-
其中, 和 分别表示第 个词的文本和布局标记。这种方式避免了扁平化序列的低效性,使模型更高效地处理文本和布局信息。
-
局部布局建模: 从全局布局标记 [LOC] 的隐藏状态 中解码出具体的坐标信息 ,并使用一个轻量级的序列 MLP 布局头捕捉坐标之间的空间关系,提升布局预测的准确性。该模块为每个通用布局标记生成特定的布局位置,其损失函数如下:
-
其中, 为 [LOC] 标记的索引集合, 表示第 个 [LOC] 标记的第 个坐标。序列 MLP 布局头有效捕捉坐标间的空间依赖关系,提高布局预测精度。
ViTLP 预训练的目标函数是全局文本布局建模和局部布局建模损失函数之和:
多段生成式预训练方案:打破Transformer长度限制,驾驭长文档
Transformer 模型在处理长序列时,计算复杂度呈平方级增长,限制了其在长文档处理中的应用。ViTLP 引入多段生成式预训练方案来解决此问题。该方案将长文本-布局序列分割成多个连续的片段进行生成。起始片段包含个待生成的标记,连续片段包含个前缀标记和个待生成的标记,为预定义的前缀比例(实验中设置为 0.25)。起始片段 添加特殊的模式标记 [BOS],连续片段 添加 [CONT],最后一个片段 添加 [EOS] 表示生成结束。前缀标记来自前一个片段的尾部,如同“记忆片段”,帮助模型理解上下文信息。这种分段生成方式使 ViTLP能够处理任意长度的文档,无需修改 Transformer 架构或引入稀疏注意力等复杂机制,如同分章节阅读长篇小说,更容易理解和记忆。
ViTLP性能评测:OCR与VDU性能双双突破
OCR 性能:原生OCR能力,告别外部依赖
ViTLP 原生支持 OCR 功能,无需依赖外部 OCR 引擎,如同自带“翻译”功能,一步到位。在 SROIE 2019 文本定位和识别任务中(表 2),ViTLP 性能优于大多数现有方法,展现了强大的文本定位和识别能力。与两阶段 OCR 模型相比,ViTLP 单阶段即可完成文本定位和识别,简化流程,提高效率。虽然在 SROIE 数据集上略逊于 TrOCR,但考虑到 TrOCR 使用了 ground-truth 文本区域信息,而 ViTLP 完全自学成才,其性能仍然非常出色。
VDU 性能:信息提取、文档分类、问答,样样精通
ViTLP 不仅能“读懂”文档,还能“理解”文档。在 FUNSD 表单理解、CORD 票据理解和 RVL-CDIP 文档分类任务中(表 3),ViTLP 取得了与最先进模型相当甚至更优的性能。尤其在 RVL-CDIP 文档分类任务中,ViTLP 准确率高达 95.36%,展现了强大的文档理解能力。这表明 ViTLP 不仅可以准确识别文本,还能深入理解文档结构和语义信息,在信息提取、文档分类、问答等任务中表现出色。
在文档 VQA 任务中(表 5),ViTLP 表现优异,尤其在 InfographicVQA 数据集上显著优于其他生成式 VDU 模型,这证明了 ViTLP 在处理复杂图表和信息图形等方面具有独特的优势。此外,ViTLP 能够生成带有可解释性视觉定位的答案(图 3),使模型决策过程更透明,更易于理解和信任。
消融实验:模块有效性验证,奠定技术基石
消融实验(表 4)验证了 ViTLP 各个模块的有效性,如同对建筑的各个部分进行测试,确保其稳固性。移除布局建模模块会导致 FUNSD 和 CORD 数据集上的 F1 值分别下降 6.19 和 4.05;移除多段生成式预训练方案也会导致性能下降。这表明 布局建模和多段生成式预训练方案对 ViTLP 的性能提升至关重要,它们是 ViTLP 的两大基石,共同支撑着其卓越的性能。
ViTLP的应用前景:赋能千行百业,开启文档智能新时代
ViTLP 为文档智能领域带来了新的可能性,其应用前景广阔,例如:
-
票据处理: ViTLP 自动识别和提取票据关键信息(金额、日期、商品名称等),大幅提高处理效率,降低人工成本。
-
表单理解: ViTLP 自动识别和提取表单字段信息(姓名、地址、联系方式等),并转换为结构化数据,方便后续处理和分析。
-
文档问答: ViTLP 根据文档内容回答用户问题,并给出可解释的视觉定位,帮助用户快速找到答案,提高问答效率和准确性。
-
信息提取: ViTLP 从文档中提取关键信息(实体、关系、事件等),为知识图谱构建、文本摘要等下游任务提供高质量的结构化数据。
ViTLP开源项目信息与相关链接
为了推动文档智能领域的发展,华为诺亚方舟实验室已将 ViTLP 开源,并提供了预训练模型、代码、demo 等资源,方便开发者使用和研究。相信 ViTLP 的开源将加速文档智能技术的普及和应用,为各行各业带来更多价值。
ViTLP开源项目信息
-
项目名称: ViTLP (Visually guided generative Text-Layout Pre-training)
-
论文地址:https://aclanthology.org/2024.naacl-long.264.pdf
-
仓库地址: https://github.com/Veason-silverbullet/ViTLP
-
Hugging Face 模型: https://huggingface.co/veason/ViTLP-medium/tree/main
-
预训练模型: ViTLP-medium (380M)
-
预训练数据集: IIT-CDIP Test Collection 1.0, SynthDog, PubLayNet, DocBank, SciTSR, IAM
-
主要功能:
-
OCR 文本定位与识别
-
VDU 下游任务:信息提取、文档分类、文档 VQA
-
文档合成工具 SynthDog-bbox
-
Demo: 提供了 OCR 的 demo,用户可以上传文档图像进行测试。
-
微调: 提供了在 OCR 数据集上进行后训练以及在 VQA 数据集上进行微调的代码。
如何学习大模型 AI ?
由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。
但是具体到个人,只能说是:
“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。
这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。
我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。
我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。
第一阶段(10天):初阶应用
该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。
- 大模型 AI 能干什么?
- 大模型是怎样获得「智能」的?
- 用好 AI 的核心心法
- 大模型应用业务架构
- 大模型应用技术架构
- 代码示例:向 GPT-3.5 灌入新知识
- 提示工程的意义和核心思想
- Prompt 典型构成
- 指令调优方法论
- 思维链和思维树
- Prompt 攻击和防范
- …
第二阶段(30天):高阶应用
该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。
- 为什么要做 RAG
- 搭建一个简单的 ChatPDF
- 检索的基础概念
- 什么是向量表示(Embeddings)
- 向量数据库与向量检索
- 基于向量检索的 RAG
- 搭建 RAG 系统的扩展知识
- 混合检索与 RAG-Fusion 简介
- 向量模型本地部署
- …
第三阶段(30天):模型训练
恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。
到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?
- 为什么要做 RAG
- 什么是模型
- 什么是模型训练
- 求解器 & 损失函数简介
- 小实验2:手写一个简单的神经网络并训练它
- 什么是训练/预训练/微调/轻量化微调
- Transformer结构简介
- 轻量化微调
- 实验数据集的构建
- …
第四阶段(20天):商业闭环
对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。
- 硬件选型
- 带你了解全球大模型
- 使用国产大模型服务
- 搭建 OpenAI 代理
- 热身:基于阿里云 PAI 部署 Stable Diffusion
- 在本地计算机运行大模型
- 大模型的私有化部署
- 基于 vLLM 部署大模型
- 案例:如何优雅地在阿里云私有部署开源大模型
- 部署一套开源 LLM 项目
- 内容安全
- 互联网信息服务算法备案
- …
学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。
如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。