支持私有化部署
AI知识库

53AI知识库

学习大模型的前沿技术与行业应用场景


我要投稿

提升RAG系统的回答质量:高质量文档解析终极干货

发布日期:2024-09-13 06:09:46 浏览次数: 2440
作者:真聊技术

微信搜一搜,关注“真聊技术”


在上一篇中,我们探讨了RAG系统的最大优势,即能够将企业内的各种文档知识快速转换为知识库,无需对接企业内部系统,并能够基于这些知识库,借助大模型快速打造AI助理。同时,我们也指出了企业内部文档种类繁多、形式多样的现实问题,并确定文档解析是RAG系统的最大挑战之一。在这一篇中,我们将继续深入探讨,寻找应对这一挑战的最佳文档解析方案。

为什么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文件结构的示例:

4 0 obj                 % 页面内容流<< >>stream                  % 流的开始1. 0. 0. 1. 50. 700. cm % 位置在(50,700)BT                      % 开始文本块  /F0 36. Tf             % 在36pt选择/F0字体 (Hello, World!) Tj     % 放置文本字符串ET                      % 结束文本块endstream               % 流结束endobj
PDF解析

目前,Python 生态系统中有许多开源的 PDF 解析工具,通常可以分为两类:

  1. 基于规则的解析工具

  • 优势:适用性广泛,速度较快。

  • 劣势:识别效果一般,能够处理的版面元素有限,识别精度较低。

  • 基于模型的解析工具

    • 优势:能够识别更多的版面元素,有助于更准确的后续切片处理。

    • 劣势:在 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知识库的创建并不仅依赖于文档解析,也可以通过对接企业的结构化数据实现。但这种方式通常开发成本较高,需要定制开发。因此,利用模型进行高质量文档解析仍有非常广阔的前景。


53AI,企业落地大模型首选服务商

产品:场景落地咨询+大模型应用平台+行业解决方案

承诺:免费场景POC验证,效果验证后签署服务协议。零风险落地应用大模型,已交付160+中大型企业

联系我们

售前咨询
186 6662 7370
预约演示
185 8882 0121

微信扫码

添加专属顾问

回到顶部

加载中...

扫码咨询