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

news2024/11/15 13:29:58

为什么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 解析工具,通常可以分为两类:

  1. 基于规则的解析工具

    • 优势:适用性广泛,速度较快。
    • 劣势:识别效果一般,能够处理的版面元素有限,识别精度较低。
  2. 基于模型的解析工具

    • 优势:能够识别更多的版面元素,有助于更准确的后续切片处理。
    • 劣势:在 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_cdlaCDLA数据集训练的中文版面分析模型,可以划分为表格、图片、图片标题、表格、表格标题、页眉、页脚、引用、公式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【最新】原始高精度模型,支持中英文、多语种文本检测85124
ch_PP-OCRv4_server_rec【最新】高精度模型,支持中英文、数字识别80.197
ch_ppstructure_mobile_v2.0_SLANet基于SLANet的中文表格识别模型95.89766
picodet_lcnet_x1_0_fgd_layout_cdlaCDLA数据集训练的中文版面分析模型,可以划分为表格、图片、图片标题、表格、表格标题、页眉、页脚、引用、公式10类区域94.241.2

RAG文档解析畅想

RAG备受关注的关键原因在于它能够将文档转化为知识库,赋能企业快速构建AI助手。要提供优质的RAG产品,文档解析是必不可少的环节,尤其需要针对行业特性进行解析模型的微调,确保各类文档能够高效、高质量地入库。不过,RAG知识库的创建并不仅依赖于文档解析,也可以通过对接企业的结构化数据实现。但这种方式通常开发成本较高,需要定制开发。因此,利用模型进行高质量文档解析仍有非常广阔的前景。。

如何学习大模型

现在社会上大模型越来越普及了,已经有很多人都想往这里面扎,但是却找不到适合的方法去学习。

作为一名资深码农,初入大模型时也吃了很多亏,踩了无数坑。现在我想把我的经验和知识分享给你们,帮助你们学习AI大模型,能够解决你们学习中的困难。

我已将重要的AI大模型资料包括市面上AI大模型各大白皮书、AGI大模型系统学习路线、AI大模型视频教程、实战学习,等录播视频免费分享出来,需要的小伙伴可以扫取。

一、AGI大模型系统学习路线

很多人学习大模型的时候没有方向,东学一点西学一点,像只无头苍蝇乱撞,我下面分享的这个学习路线希望能够帮助到你们学习AI大模型。

在这里插入图片描述

二、AI大模型视频教程

在这里插入图片描述

三、AI大模型各大学习书籍

在这里插入图片描述

四、AI大模型各大场景实战案例

在这里插入图片描述

五、结束语

学习AI大模型是当前科技发展的趋势,它不仅能够为我们提供更多的机会和挑战,还能够让我们更好地理解和应用人工智能技术。通过学习AI大模型,我们可以深入了解深度学习、神经网络等核心概念,并将其应用于自然语言处理、计算机视觉、语音识别等领域。同时,掌握AI大模型还能够为我们的职业发展增添竞争力,成为未来技术领域的领导者。

再者,学习AI大模型也能为我们自己创造更多的价值,提供更多的岗位以及副业创收,让自己的生活更上一层楼。

因此,学习AI大模型是一项有前景且值得投入的时间和精力的重要选择。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2134201.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

抓机遇,创发展︱2025 第十二届广州国际汽车零部件加工技术及汽车模具展览会,零部件国产浪潮不可阻挡

抓机遇,创发展︱2025 第十二届广州国际汽车零部件加工技术及汽车模具展览会,零部件国产浪潮不可阻挡 汽车零部件行业是汽车工业发展的基础,是支撑汽车工业持续稳步发展前提条件。随着经济全球化和市场一体化进程的推进,汽车零部件…

【devops】devops-git之git分支与标签使用

本站以分享各种运维经验和运维所需要的技能为主 《python零基础入门》:python零基础入门学习 《python运维脚本》: python运维脚本实践 《shell》:shell学习 《terraform》持续更新中:terraform_Aws学习零基础入门到最佳实战 《k8…

Python画笔案例-047 绘制雪花

1、绘制雪花 通过 python 的turtle 库绘制 雪花,如下图: 2、实现代码 绘制 雪花,以下为实现代码: """雪花.py """ import turtledef draw_branch(d):for _ in range(2):turtle.fd(d)turtle.lt(45)…

实时分析都靠它→揭秘YashanDB列式存储引擎的技术实现

01 概述 YashanDB列式存储引擎,又称为LSC(Large-scale Storage Columnar Table)。其通过自研的CBO优化器、向量化执行、原生列存格式等技术,达到业界领先的查询分析能力。 YashanDB LSC是专为海量数据的实时分析场景而设计,致力…

vue3 动态 svg 图标使用

前言 在做后台管理系统中,我们经常会用到很多图标,比如左侧菜单栏的图标 当然这里 element-ui 或者 element-plus 组件库都会提供图标 但是在有些情况下 element-ui 或者 element-plus 组件库提供的图标满足不了我们的需求时,这个时候我们就需要自己去网上找一些素材或者…

逆向学习系列(三)adb的使用

由于是记录学习,我就用结合自己的理解,用最通俗的语言进行讲解。 adb是android debug bridge的简写,其作用就是将电脑和手机相连接,用电脑控制手机。 一、adb哪里来 我使用的adb一般都是安装模拟器的时候,模拟器自带…

动不动就下跪的三星,离开天津了

关注卢松松,会经常给你分享一些我的经验和观点。 三星辉煌岁月已过,万事凋零!如果说IBM、惠普、戴尔、苹果、富士康的离开有点惋惜的话,那三星的离开就是“活该”了。 成立于1993年的天津三星电子有限公司与2024年9月6日注销了&#xff0…

TCP交互通讯在Windows中的频率

在基于TCP协议的交互式通讯中,通过网口进行数据传输时,Windows系统的通讯频率通常受到多方面的限制,很难稳定达到几千Hz。以下是关于频率范围的合理分析及提高频率的措施。 频率限制的原因: 网络延迟:TCP通讯的一个核心…

内幕!smardaten无代码平台全方位测评,这些细节你绝对想不到!

目录 一、引言二、测评要点2.1、前后端交互嵌套2.2、兼容性与可扩展性2.2.1、页面集成2.2.2、数据集成2.2.3、接口集成2.2.4、权限集成2.2.5、代码扩展支持 2.3、UI定制2.4、开发环境的隔离2.5、OEM定制2.6、多语言切换2.7、AI大模型能力 三、总结 一、引言 作为一枚IT从业者&…

了解计算机安全性【技术、管理与法律】

‍ 在当今数字化时代,计算机安全性 已成为每个计算机用户必须关注的重要课题。无论是在个人计算机、企业系统,还是政府机构,保障计算机系统的安全性都是不可忽视的责任。那么,什么是计算机安全性?它又包括哪些方面呢&…

django学习入门系列之第十点《A 案例: 员工管理系统7》

文章目录 9 初识Form9.1 views.py9.2 add.html 10 初识ModelForm10.1 models.py10.2 views.py10.3 add.html10.4 添加类10.5 重写对象 往期回顾 9 初识Form 9.1 views.py 在html的文件中,如写input组件那种会写的非常繁琐,所以会用form的一个功能来进行…

JEE 设计模式

Java 数据访问对象模式 Java设计模式 - 数据访问对象模式 数据访问对象模式或DAO模式将数据访问API与高级业务服务分离。 DAO模式通常具有以下接口和类。 数据访问对象接口定义模型对象的标准操作。 数据访问对象类实现以上接口。可能有多个实现,例如&#xff0c…

java重点学习-线程池

十 线程池 10.1 说一下线程池的核心参数,线程池的执行原理 为什么使用线程池 创建线程占用内存空间,每次创建的话会浪费内存cpu有限,大量线程会导致cpu切换 10.2 线程池中有哪些常见的阻塞队列 workQueue-当没有空闲核心线程时,新…

[产品管理-14]:NPDP新产品开发 - 12 - 产品创新流程 - 创新章程与通用流程

目录 前言: 一、什 么 是 产 品 创 新 流 程 ? 1.1 概述 1.2 管 理 创 新 产 品 失 败 的 2个风 险 : 不 确 定 性 和 成 本 1、不确定性风险 2、成本风险 1.3 重点关注创新产品的起点的正确性:正确的事 二、产品创造章程…

Day10-作业讲解,Ingress规则编写及Jenkins集成K8S项目实战案例

Day10-作业讲解,Ingress规则编写及Jenkins集成K8S项目实战案例 1、作业:1.1 作业分析:1.2 复刻镜像1.3 将游戏镜像上K8S集群1.4 helm部署服务1.5 ingress规则编写 2、项目1-jenkins和k8s集成2.1 Jenkins实现k8s持续集成项目流程图解2.2 Jenkins集成K8S-将代码推送到…

Cmake之3.27版本重要特性及用法实例(二十二)

简介: CSDN博客专家、《Android系统多媒体进阶实战》一书作者 新书发布:《Android系统多媒体进阶实战》🚀 优质专栏: Audio工程师进阶系列【原创干货持续更新中……】🚀 优质专栏: 多媒体系统工程师系列【…

解锁NXP i.MX93 DDR精准校正,极限压力测试

在前一篇关于NXP i.MX93开板流程的文章中,我们已经详细说明了目标板(Target Board)在打件完成后需要注意的事项。接下来的步骤是进行DRAM的时序校正及压力测试。 在i.MX8及之前的系列中, DDR压力测试是使用DDR Stress Test Tool&…

Python绘制论文图

Python Graph Gallery Python Boxplot Gallery | Dozens of examples with code

记录一下,Vcenter清理/storage/archive空间

一、根因 vpostgres:这个目录可能包含与 vCenter Server 使用的 PostgreSQL 数据库相关的归档文件过多,导致空间被占用。 二、处理过程 1、SSH登陆到Vcenter. 2、df -Th **图中可以看到 /storage/archive 使用占比很高。 /storage/archive 目录通常用…