为什么RAG系统重点解析PDF?
在RAG系统中,PDF文档成为重点解析对象的原因与其在企业中的广泛应用以及其自身的优势密切相关。
PDF文档在企业中的普遍使用
- 行业标准格式:PDF(可移植文档格式)是各行业用来分发和保存数字文档的标准格式,广泛应用于金融、法律、医疗和教育等领域。PDF文件的版式固定,能够在不同设备和系统中一致呈现,无论是在PC、手机还是打印输出,内容都保持不变。
- 法律与合规需求:许多企业的文档(如合同、发票、审计报告)需要遵守法律法规要求,PDF由于其安全性和不可更改性,成为正式文件的首选。
- 高保真呈现:PDF支持嵌入图像、表格、图表等多种格式,使其成为技术文档、研究报告和多媒体信息汇总的理想格式。这使得企业能够在单一文件中传递丰富的信息。
PDF的技术优势
- 跨平台兼容:PDF文件可以在不同操作系统(如Windows、Mac、Linux)上无缝打开,且显示效果一致。企业需要跨平台的文档格式来确保文件的可读性和格式一致性。
- 安全性:PDF支持多种安全功能,包括加密、数字签名和权限设置,允许企业在共享文档时确保数据的机密性和完整性。这在RAG系统中尤为重要,因为解析的内容可能涉及敏感的企业数据。
- 复杂结构支持:PDF不仅支持文本,还可以嵌入图像、矢量图形、超链接、注释等,这使得企业可以使用它来存储各种信息类型。RAG系统需要处理包含复杂结构的文件,而PDF的格式刚好满足这些需求。
- 易于存档和传输:PDF文件通常较小且自带压缩机制,便于在企业中存档、传输和共享。大多数企业将PDF用作文件的最终存储形式,特别是在合同、发票、报告等场景中。
RAG系统选择的依据
- 丰富的数据来源:企业的许多核心信息往往以PDF的形式存在,如产品手册、技术白皮书、财务报告等。RAG系统需要从这些文件中提取知识,因此PDF是解析的重要对象。
- 结构化信息与非结构化信息并存:PDF既可以包含结构化的表格、图表,又可以容纳大段的非结构化文本信息。RAG系统在解析时能够从多种信息源中提取不同类型的数据,提升检索与生成效果。
- 信息的长期保存:由于PDF格式的稳定性和长期兼容性,企业的历史文档经常存储为PDF,RAG系统需要对这些历史文件进行解析,帮助企业从过往数据中提取信息。
因此,PDF文档的稳定性、通用性和安全性使其成为企业和RAG系统解析的重点对象,特别是在需要处理复杂文档结构和高保真呈现的场景下。
以下是pdf文件结构的示例:
PDF解析
目前,Python 生态系统中有许多开源的 PDF 解析工具,通常可以分为两类:
-
基于规则的解析工具:
-
- 优势:适用性广泛,速度较快。
- 劣势:识别效果一般,能够处理的版面元素有限,识别精度较低。
-
基于模型的解析工具:
-
- 优势:能够识别更多的版面元素,有助于更准确的后续切片处理。
- 劣势:在 CPU 上的部署速度较慢,通常依赖 GPU 资源,主要适用于企业内部场景。识别过程依赖于模型的质量,若需提高识别率,则需要进行全面的计算机视觉模型训练或微调(例如,针对特定行业的 PDF 知识进行训练集标注和训练),因此 RAG 产品的成本会相对较高。
总结两种模式的适用场景,基于规则的解析方式更适合提供外部服务的平台,例如阿里云的文档内容解析API,主要依赖于固定规则;而基于模型的解析方式则更适合用于企业内部的RAG产品,通过提供定制化的训练集、模型标注和训练,可以显著提升解析效果。虽然基于模型的方案效果更好,但也意味着更高的成本,尤其是在行业适配和垂直领域优化方面。
开源工具
以下是整理自网络的开源工具列表。由于该列表在网络中以图片格式呈现,因此我们利用模型来识别表格效果。我们使用了表格标注工具,识别后会自动生成 Excel 文档,以展示其处理结果。
图(1)识别第一张表格内容
图(2)识别第一张Excel内容
图(3)识别第二张表格内容
图(4)识别第二张Excel内容
根据识别出来的两张表格的内容,我整理出的开源工具列表如下:
工具名 | 特点 | 优点 | 缺点 |
---|---|---|---|
PDFMiner | 专为提取PDF文本内 容而设计,提供底层 PDF解析功能,支持 提取文本、图像和其 他信息 | 强大的解析能力,支 持复杂PDF结构, 可定制能力强 | API使用相对复杂, 性能可能不如其他工具 |
PyPDF | 轻量级PDF处理 库,支持基本的读 取、写入、合并、拆 分、加密等功能 | 适用于简单的PDF处 理任务;易于上手 | 功能相对有限,不擅 长复杂的文本提取和 布局分析 |
PyMuPDF (fitz) | 提供对PDF、XPS、 EPUB和其他文档格 式的快速渲染和操作 | 性能优异,功能全 面,API文档详细 | 底层为C语言实现, 不易定制 |
PDFPlumber | 基于PDFMiner,主 要用于提取文本和表 格,易于使用 | 实现了对表格数据的 提取 | 半框表格效果差 |
Camelot | 通过视觉方法从PDF 中提取表格数据 | 表格提取效果较好 | 主要聚焦于表格数据 提取,非表格内容处 理能力有限 |
Papermage | 基于PDFPlumber, 通过深度模型进行版 面分析 | 提供图像化支持,支 持多种版面元素 | 仅适用于论文场景 |
开源模型如下:
模型名称 | 模型简介 |
---|---|
ch_PP-OCRv4_server_det | 【最新】原始高精度模型,支持中英文、多语种文本检测 |
ch_PP-OCRv4_server_rec | 【最新】高精度模型,支持中英文、数字识别 |
ch_ppstructure_mobile_v2.0_SLANet | 基于SLANet的中文表格识别模型 |
picodet_lcnet_x1_0_fgd_layout_cdla | CDLA数据集训练的中文版面分析模型,可以划分为表格、图片、图片标题、表格、表格标题、页眉、页脚、引用、公式10类区域 |
PDF解析流程
在模型识别过程中,PDF解析器起到重要作用。通过解析器获得的结果与模型识别的输出进行X、Y轴的坐标比对,最终生成准确的识别数据。接下来,系统根据多种切分规则对数据进行合理的分割,形成最优的Chunk,再将其向量化存储。这一过程显著提升了搜索召回率,使系统能够精准匹配问题与知识,将最相关的信息提供给大模型,最终生成合理且有针对性的答案。
PDF解析核心问题
版面识别
在RAG产品中,表格识别模型和版面识别模型通常预装的是通用识别模型。这些模型在初期训练时并未专门针对某一行业的文档进行大规模优化,而是基于普遍存在的表格和版面样式进行训练。因此,对于大多数普通的PDF文档,这类通用模型的识别效果较好。然而,一旦遇到行业特定的文档类型,识别效果往往大打折扣,难以达到精准要求。
下面看一个较通用的文档识别效果(模型训练数据集是论文类):
识别效果还不错,如果用这个版面模型去识别财务、证券、文学作品、医疗健康、教育出版、法律等行业的文档,那效果可能就很惨不忍睹了,我们来看一个证券类的识别效果。
这次的识别效果真是惨不忍睹。页眉、页脚完全没有识别到,许多标题也被漏掉,表格的识别更是错漏百出,这样的结果显然无法接受。要想彻底改变识别效果,唯一的出路就是针对证券类文档进行专门的模型微调训练。训练集至少需要2000张,经过一系列的图片标注、模型训练等步骤,最终完成模型的微调。
撸起袖子加油干,就能看到显著改善!
下面是微调后模型的识别效果:
这个效果是不是相当出色!所有版面都被完整识别出来,且每个识别结果的可信度都在0.9以上,堪称高标准的表现。微调前后的识别差距如此明显,充分证明了针对行业进行模型微调的必要性。这不仅显著提升了行业PDF文档的识别效果,也是提高识别精度和可靠性的最佳方法。
有线格表与无线格表版面识别
刚才的测试图片中,带有线框的表格识别效果相对不错,但实际上,各行各业中大量存在无线框的表格。通用的识别模型通常无法处理这类表格,即使经过有线框表格数据微调,识别无线框表格的结果依然不理想。要准确识别这类复杂的表格结构,必须针对行业特定的无线框表格样本进行定向微调,才能实现理想的识别效果。
下面是有线格训练集微调的证券类模型识别无线格表格的识别效果:
效果可谓差强人意,完全无法正确识别无框表格,整篇文档被简单地识别为普通文本。该怎么办呢?别无他法,只能撸起袖子自己动手!通过图片标注与模型训练,才能有效提升识别效果,再来看看新训练的模型是否能有所改善。
版面都识别到了,识别效果还是杠杆的,对得起标注付出的辛苦。
表格结构与内容识别
PDF文档中的表格数据往往包含重要的知识信息,许多问题会专门针对表格内容。如果在文档解析过程中表格识别出现错误,即使是再强大的大模型也无法给出正确答案。因此,准确识别表格的结构和内容至关重要。表格识别的过程通常采用双重策略:结合PDF解析技术和专门的模型识别技术,以确保表格信息能够被高效、准确地提取和利用。
英文表格:
英文表格的识别:
经过大量英文训练集训练的通用表格识别效果还是不错的,但是这样的模型识别中文行业表格那效果还是要差很多。
英文通用表格识别模型识别中文行业表格:
这个效果也是惨不忍睹啊,还是那套理论,自己标注自己练,奇迹一定会出现。
微调模型识别中文无线格的表格效果:
这个效果还是很明显的,基本把表的结构还原出来了。
模型技术浅析
模型架构
PDF文档识别使用的模型技术主要是计算机视觉中的OCR技术、检测(版面结构识别、表格结构识别),在开源模型中PP-OCR系列模型和PP-Structure 系列模型是最常用的。
PP-Structure
PP-Structure是PaddleOCR团队自研的智能文档分析系统,旨在帮助开发者更好地完成版面分析、表格识别等文档理解相关任务。
PP-StructureV2的主要特性如下:
- 支持对图片/pdf形式的文档进行版面分析,可以划分文字、标题、表格、图片、公式等区域;
- 支持通用的中英文表格检测任务;
- 支持表格区域进行结构化识别,最终结果输出Excel文件;
- 支持基于多模态的关键信息抽取(Key Information Extraction,KIE)任务-语义实体识别(Semantic Entity Recognition,SER)和关系抽取(Relation Extraction,RE);
- 支持版面复原,即恢复为与原始图像布局一致的word或者pdf格式的文件;
- 支持自定义训练及python whl包调用等多种推理部署方式,简单易用;
- 与半自动数据标注工具PPOCRLabel打通,支持版面分析、表格识别、SER三种任务的标注。
PP-OCR¶
PP-OCR是一个两阶段的OCR系统,其中文本检测算法选用DB,文本识别算法选用CRNN,并在检测和识别模块之间添加文本方向分类器,以应对不同方向的文本识别。
模型关键指标
模型的两个关键指标在文档内容结构识别中至关重要:精度和预测耗时。由于我们的 RAG 产品是在企业内部进行私有化部署,因此对模型的精度要求非常高,而对预测耗时的容忍度相对较大。毕竟,在企业应用中,解析的首要要求是精确度。
模型名称 | 模型简介 | 精度 | 预测耗时**(ms) ** |
---|---|---|---|
ch_PP-OCRv4_server_det | 【最新】原始高精度模型,支持中英文、多语种文本检测 | 85 | 124 |
ch_PP-OCRv4_server_rec | 【最新】高精度模型,支持中英文、数字识别 | 80.1 | 97 |
ch_ppstructure_mobile_v2.0_SLANet | 基于SLANet的中文表格识别模型 | 95.89 | 766 |
picodet_lcnet_x1_0_fgd_layout_cdla | CDLA数据集训练的中文版面分析模型,可以划分为表格、图片、图片标题、表格、表格标题、页眉、页脚、引用、公式10类区域 | 94.2 | 41.2 |
RAG文档解析畅想
RAG备受关注的关键原因在于它能够将文档转化为知识库,赋能企业快速构建AI助手。要提供优质的RAG产品,文档解析是必不可少的环节,尤其需要针对行业特性进行解析模型的微调,确保各类文档能够高效、高质量地入库。不过,RAG知识库的创建并不仅依赖于文档解析,也可以通过对接企业的结构化数据实现。但这种方式通常开发成本较高,需要定制开发。因此,利用模型进行高质量文档解析仍有非常广阔的前景。。
如何学习大模型
现在社会上大模型越来越普及了,已经有很多人都想往这里面扎,但是却找不到适合的方法去学习。
作为一名资深码农,初入大模型时也吃了很多亏,踩了无数坑。现在我想把我的经验和知识分享给你们,帮助你们学习AI大模型,能够解决你们学习中的困难。
我已将重要的AI大模型资料包括市面上AI大模型各大白皮书、AGI大模型系统学习路线、AI大模型视频教程、实战学习,等录播视频免费分享出来,需要的小伙伴可以扫取。
一、AGI大模型系统学习路线
很多人学习大模型的时候没有方向,东学一点西学一点,像只无头苍蝇乱撞,我下面分享的这个学习路线希望能够帮助到你们学习AI大模型。
二、AI大模型视频教程
三、AI大模型各大学习书籍
四、AI大模型各大场景实战案例
五、结束语
学习AI大模型是当前科技发展的趋势,它不仅能够为我们提供更多的机会和挑战,还能够让我们更好地理解和应用人工智能技术。通过学习AI大模型,我们可以深入了解深度学习、神经网络等核心概念,并将其应用于自然语言处理、计算机视觉、语音识别等领域。同时,掌握AI大模型还能够为我们的职业发展增添竞争力,成为未来技术领域的领导者。
再者,学习AI大模型也能为我们自己创造更多的价值,提供更多的岗位以及副业创收,让自己的生活更上一层楼。
因此,学习AI大模型是一项有前景且值得投入的时间和精力的重要选择。