文档解析与向量化技术加速 RAG 应用落地

在不久前举办的 AICon 全球人工智能开发与应用大会上,合合信息智能创新事业部研发总监,复旦博士常扬从 RAG 应用落地时常见问题与需求(文档解析、检索精度)出发,分享了针对性的高精度、高泛化性、多版面多元素识别支持的文档解析技术方案与整合长文档解析引擎、层级切片技术的向量化 Embedding 模型技术方案,以及开放域多模态信息抽取应用与知识库问答应用等实际场景的产品实践案例。

近年来,大模型的崛起为人工智能领域带来了革命性的变化。然而,在实际应用中,我们发现仅依靠大模型自身的知识和上下文并不能完全满足用户的需求。检索增强生成(Retrieval-Augmented Generation, RAG )应运而生,旨在通过引入外部知识库,解决领域知识缺乏和信息过时的问题。但其本身在产品化落地的过程中面临检索召回率低、生成质量差的问题。

我会从第一性原理出发,分析其核心突破点:文档解析技术向量化技术,看这两个技术如何发展,加速 RAG 应用落地 的。

RAG 的背景与问题

在传统的大模型应用中,模型的知识来源主要是预训练数据和用户提供的上下文。然而,面对专业领域的复杂问题,模型往往难以给出准确、及时的回答。RAG 的核心目标是将外部的领域知识与大模型结合,使其能够生成更准确、更专业的回答。

img

LLM(大型语言模型)应用知识的数据来源包括“用户上下文输入和用户意图”、“大模型知识”和“外部文档”。RAG 位于三个知识源的交集处,结合了外部文档、用户输入的上下文、模型的知识进行生成。RCG(Retrieval-Centric Generation)专注于将知识检索与 LLM 的生成分开,把检索知识作为核心来源,而微调(Fine-Tuned LLM)则通过使用外部数据微调模型,提升模型在特定领域的理解能力。

img

RAG 的核心流程可以简化为以下三个步骤:

  1. 知识库构建(Indexing):对外部文档进行解析、清洗、向量化,构建高质量的索引。
  2. 检索(Retrieval):根据用户的查询,在向量空间中检索最相关的内容。
  3. 生成(Generation):大模型基于检索结果生成最终的回答。

在这个流程中,知识库构建和检索是关键的技术环节,直接影响最终生成的质量。

img

尽管 RAG 有着广阔的应用前景,但在实际落地过程中,我们发现了许多问题。一篇研究论文总结了 RAG 应用中常见的 12 个问题,包括:

img

  • 内容缺失:检索结果未能覆盖用户的问题。
  • 不完整回答:生成的内容缺乏细节或关键信息。
  • 性能不足:检索和生成过程耗时过长,无法满足实时性要求。
  • 不可扩展性:面对海量数据时,系统的性能显著下降。

等等这些问题的存在,使得很多 RAG 产品难以从原型(MVP)走向真正满足市场需求的产品(PMF)。

在 AI 产品的开发中,最小可行产品(MVP) 的构建相对容易,但要实现产品市场契合(PMF),真正满足用户需求,却充满挑战。

  1. 理解大模型的技术边界:既不要过度高估大模型的能力,也不要忽视其潜力。明确其适用范围和限制。
  2. 深入理解业务场景:识别大模型和 RAG 技术最适合的应用领域,确保技术与业务需求的契合。
  3. 优先使用最好的模型:在验证方案可行性时,尽可能使用性能最优的模型。如果最佳模型仍无法满足需求,可能需要重新评估方案。
  4. 构建产品壁垒:考虑产品的独特价值和竞争优势,而不仅仅是技术实现。确保产品在市场上具有可持续的竞争力。

img

从第一性原理出发,要解决上述问题,我们需要回归本质,关注 RAG 流程中的关键环节:

  1. 高质量的知识库构建:确保文档解析的准确性,将领域知识准确地转化为文本和向量表示。
  2. 精确的检索机制:利用先进的嵌入模型,提高在向量空间中检索相关内容的准确性。

img

文档解析技术

在大模型 RAG 应用中,文档解析是一个关键环节。如何将复杂的 PDF 文档准确、高效地转换为大模型能够理解的格式,直接影响到模型的性能和应用效果。下面将深入探讨通用文档解析的挑战与解决方案,重点介绍从 PDF 到 Markdown 的转换过程,以及如何通过物理和逻辑版面分析,实现对各种复杂文档的高质量解析。

从计算机的角度来看,文档主要分为两类:

  1. 有标记的文档:如 Word、Markdown、HTML、JSON 等。这些文档具有明确的结构,计算机可以直接解析和理解。
  2. 无标记的文档:如图像、 PDF 等。这些文档缺乏结构信息,计算机无法直接理解其内容。

img

PDF 是一种常见的文档格式,其本质是一系列显示打印指令的集合,而非结构化的数据格式。例如,一个简单的“ Hello World ” PDF 文件,用文本编辑器打开后会发现大量的排版指令。这使得计算机在解析 PDF 时,难以直接获取其中的结构化信息。

img

解析 PDF 的挑战有:

  • 结构缺失:PDF 以视觉呈现为主,缺乏逻辑结构,难以直接提取段落、标题、表格等元素。
  • 复杂排版:多栏布局、跨页内容、嵌入图像和公式等,增加了解析难度。
  • 元素遮挡:印章、手写批注等覆盖在文本上,干扰内容识别。

为了让大模型有效地理解 PDF 中的内容,需要将其转换为一种模型熟悉的格式。Markdown 成为了最佳选择,原因如下:

  • 结构清晰:支持多层标题、粗体、斜体、列表、表格、数学公式等,能够完整地表达 PDF 中的信息。
  • 专注内容:Markdown 关注内容本身,而非排版,符合大模型的训练特点。
  • 模型友好:大模型在训练过程中,接触了大量的 Markdown 语料,对其有良好的理解能力。

Markdown 的优势:

  • 简洁优雅:语法简单,易于编写和阅读。
  • 广泛应用:在技术文档、博客等领域被广泛使用,具备良好的生态环境。
  • 易于转换:可以方便地转换为 HTML、 PDF 等格式,满足多种需求。

img

复杂文档布局的解析难点有很多,比如:

  • 法律条文:包含多级标题和列表,需要准确识别层次关系。
  • 扫描书籍:可能存在噪声、阴影,OCR 识别难度大。
  • 学术论文:包含复杂的公式、表格和引用格式。
  • 产品说明书:双行表头、多栏布局,对解析精度要求高。

有以下的典型挑战:

  • 多栏布局双列、三列布局,跨页内容,如何保持正确的阅读顺序?
  • 复杂表格合并单元格、嵌套表格,需要精确解析结构。
  • 公式和图像数学公式、图像与文字混排,要求高精度的识别和定位。
  • 元素遮挡和噪声印章、手写批注、扫描噪声,干扰内容的提取。

现有解析方法具备一定的局限性。基于规则的解析库,典型代表 PDF Miner、Py PDF 、Mu PDF 等。优点对电子版 PDF 的解析效果较好,速度快。缺点是无法处理扫描件和图像型 PDF 以及对复杂布局支持不足,难以准确还原阅读顺序。

基于深度学习的解析库,典型代表 Unstructured、Layout-Parser、PP-StructureV2 等。优点是能处理扫描件,具备一定的版面分析能力。缺点是效率较低,处理大型文档耗时长以及对复杂布局的支持有限,精度有待提高。

基于大模型的解析库,典型代表 GPT- PDF 。优点是具备多模态理解能力,直接处理图像和文本。缺点是计算资源消耗大,实时性差以及受限于大模型的输入长度,对长文档支持不足。

img

针对上述挑战,我们提出 TextIn 文档解析技术:

  1. 解析更稳:无论何种排版和格式,都能正确提取文档元素,并还原正确的阅读顺序。
  2. 识别更准:高精度地识别文本、表格、公式、图像等内容。
  3. 性能更优:满足实时性需求,支持大规模文档的快速解析,适用于 RAG (检索增强生成)应用场景。

具备以下功能特性:

  • 全面支持兼容电子版和扫描版 PDF 。
  • 预处理优化文档图像预处理,提高 OCR 精度,减少噪声干扰。
  • 深度分析物理版面分析和逻辑版面分析相结合,准确还原文档结构。
  • 元素识别全面识别段落、标题、表格、公式、页眉页脚等内容。

img

我们的解析流程主要分为三个阶段:

1. 文档预处理

拆分文档将多页文档拆分为单页,便于并行处理。

类型识别区分电子版和扫描版,选择适当的处理策略。

2. 版面分析

物理版面分析基于视觉特征,划分页面区域,如段落、列、图像、表格等。

逻辑版面分析基于语义特征,构建文档的目录树,确定元素的层次关系和阅读顺序。

3. 内容重建

元素识别对文本、表格、公式、图像等进行精确识别。

格式转换根据需求生成 Markdown 或 JSON 格式,方便大模型理解或产品呈现。

img

物理版面分析逻辑如下:方法选择采用单阶段检测模型,兼顾精度和效率,避免复杂的多阶段流水线。数据处理注重数据的多样性和分布,增强模型的泛化能力。层级结构按照页(Page)→ 区块(Section)→ 列(Column)→ 段落(Paragraph)→ 文本片段(Text Slice)进行解析。阅读顺序还原策略从上到下、从左到右,结合页面布局和元素位置,准确还原阅读顺序。

img

逻辑版面分析逻辑如下:模型架构采用 Transformer,利用自注意力机制,捕获元素间的全局关系。父子关系确定标题与其子内容的从属关系,旁系关系识别同级元素之间的顺序关系,目录树构建通过关系预测结果,生成文档的逻辑结构树,方便内容的组织和导航。

img

面对多种复杂的文档解析需求,如何客观评估不同解析方法的效果,是一个重要问题。传统的文字和表格评估方法,无法全面衡量复杂布局和结构的解析质量。我们开源了 Markdown Tester,指标定义针对段落、标题、表格、公式、阅读顺序等核心元素,定义了识别率、召回率、F1 值等评价指标。结构评估引入树状编辑距离,评估目录树、表格结构与原文档的相似程度。可视化展示通过雷达图等方式,直观展示各解析方法在不同指标上的表现。

img

在实际应用中,解析效率至关重要。特别是在 RAG 场景下,需要对大量文档进行实时解析,要求解析过程既快又准。我们进行了以下优化策略,算法模块优化针对耗时模块,如版面分析和元素识别,优化算法,提高执行效率。并行处理采用分布式集群结构,对文档解析流程进行并行化处理,充分利用计算资源。资源调度智能调度计算任务,平衡负载,减少等待时间。

我们目前实现处理速度实现了对 100 页文档的解析,P90(90% 请求的响应时间)小于 1.5 秒。稳定性在大规模文档解析任务中,保持了高稳定性和低失败率。扩展性系统设计支持水平扩展,能够应对更大的数据量和更高的并发需求。

img

向量化技术

在现代自然语言处理任务中,向量化(Vectorization)技术扮演着关键角色,特别是在检索增强生成( RAG )模型中。下面将探讨向量化的原理、模型选择以及多尺度训练方法,揭示其在实际应用中的重要性和优化策略。

向量化的核心思想是将大量的文本数据转换为具有方向和数值的向量列表。这种表示方式使计算机能够利用矩阵运算的高效性,快速计算文本之间的语义相似度。在 RAG 模型中,向量化主要用于信息检索,即通过计算用户问题和文档块的向量相似度,找到最相关的文本内容。

img

在选择嵌入(Embedding)模型时,许多人可能会在网上查找评价效果较好的模型,或者自行进行评测。然而,在评估之前,建议先查看像 Hugging Face 上 MTEB 和 C-MTEB 评测基准排名,这些指标涵盖了文本分类、聚类、成对分类、重排序、检索等任务,能够大致了解每个模型在不同任务上的表现。

img

在选择合适的嵌入模型时,需要考虑以下六个关键因素:

1. 特定领域适应性:嵌入模型的训练依赖于大量语料,不同领域的语料量和质量会影响模型在该领域的表现。例如,在工业领域,如果训练语料较少,模型的性能可能不理想。因此,即使某个模型在排行榜上名列前茅,也应在自己的领域数据上进行测试。

2. 检索精度:对于以检索为核心的任务,模型的检索精度至关重要。需要评估模型在实际检索场景下的准确率和召回率。

3. 语言支持:根据业务需求,选择支持所需语言的模型,确保在多语言环境下的有效性。

4. 文本块长度(Chunk Size):文本块的长度应根据任务需求进行调整。如果处理的是信息密度较低的长文本,如小说,可能需要更长的文本块。而对于信息密度高、需要精确检索的内容,较短的文本块可能更合适。

5. 模型大小与推理成本:模型的大小直接影响推理的资源消耗和成本。在资源有限的情况下,需要在模型性能和资源消耗之间取得平衡。

6. 检索效率:在需要处理海量数据的场景下,检索效率变得尤为重要。模型的计算复杂度和向量维度都会影响检索速度。

img

我们的模型采用了对比学习的方法,这与业界领先的实践保持一致。其中一个较为特殊的点是引入了多尺度训练(Multi-Resolution Learning,MRL)。在训练过程中,我们采用不同的尺度,如 1024、512、256、128 等长度的 Token,计算整体的损失函数。这样做的目的是:

  • 保证信息质量集中在前序序列:通过多尺度训练,模型能够在较短的序列中捕获高质量的信息,确保在截断或限制序列长度时,重要信息不会丢失。
  • 提高检索效率:在资源受限或需要高效检索的情况下,可以使用较短的向量表示,而不会显著降低精度。
  • 减少维度,保持精度:通过多尺度训练,模型在降低向量维度的同时,尽可能保持了语义表示的准确性。

img

综上所述,向量化技术在 RAG 模型中具有不可替代的作用。通过慎重选择嵌入模型,结合多尺度训练等优化方法,我们能够在提高检索精度的同时,优化资源使用,实现高效、准确的文本信息检索。

总结

我们的目标始终是打造真正可用、好用的产品,实现从 MVP(最小可行产品)到 PMF(产品市场契合)的飞跃。只有当产品真正满足用户需求,具备市场推广价值,才能称之为成功的产品。

在 RAG (检索增强生成)应用中,我们发现了两个突出的核心问题:文档解析和向量化。为了解决这两个问题,我们专注于以下研究方向:

1. 通用文档解析

我们致力于实现快速、精准、稳定的文档解析,支持各种类型的文档,包括扫描件和多种版式。通过提高解析的稳定性,确保阅读顺序的正确,还原文档的真实结构。同时,提升解析的精度和效率,使解析过程更准确、更高效。

2. 高性能的嵌入模型(Embedding)

在向量化过程中,我们注重模型的精度和效率。选择最适合业务需求的嵌入模型,能够更高效地进行信息检索,提高检索的精确度和速度。这不仅包括模型本身的优化,还涉及对领域数据的深入理解和应用。

img

我们相信,专注于问题的本质,才能取得最大的收益。如果您对我们的技术和产品感兴趣,欢迎访问我们的官网 textin.com。在网站上,您可以了解更多关于通用文档解析、嵌入模型技术,以及我们的财报分析、分析师问答等产品信息。

那么,如何系统的去学习大模型LLM?

我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。

作为一名热心肠的互联网老兵,我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。

但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

所有资料 ⚡️ ,朋友们如果有需要全套 《LLM大模型入门+进阶学习资源包》,扫码获取~

篇幅有限,部分资料如下:

👉LLM大模型学习指南+路线汇总👈

💥大模型入门要点,扫盲必看!
在这里插入图片描述
💥既然要系统的学习大模型,那么学习路线是必不可少的,这份路线能帮助你快速梳理知识,形成自己的体系。

路线图很大就不一一展示了 (文末领取)
在这里插入图片描述

👉大模型入门实战训练👈

💥光学理论是没用的,要学会跟着一起做,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
在这里插入图片描述

👉国内企业大模型落地应用案例👈

💥两本《中国大模型落地应用案例集》 收录了近两年151个优秀的大模型落地应用案例,这些案例覆盖了金融、医疗、教育、交通、制造等众多领域,无论是对于大模型技术的研究者,还是对于希望了解大模型技术在实际业务中如何应用的业内人士,都具有很高的参考价值。 (文末领取)
在这里插入图片描述

👉GitHub海量高星开源项目👈

💥收集整理了海量的开源项目,地址、代码、文档等等全都下载共享给大家一起学习!
在这里插入图片描述

👉LLM大模型学习视频👈

💥观看零基础学习书籍和视频,看书籍和视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。 (文末领取)
在这里插入图片描述

👉640份大模型行业报告(持续更新)👈

💥包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。
在这里插入图片描述

👉获取方式:

这份完整版的大模型 LLM 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

😝有需要的小伙伴,可以Vx扫描下方二维码免费领取🆓

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Linux系统下串口AT指令控制EC20连接华为云物联网平台

一、前言 在当今万物互联的时代背景下,物联网技术的快速发展极大地推动了智能化社会的构建。作为其中的关键一环,设备与云端平台之间的通信变得尤为重要。本文介绍如何在Linux操作系统环境下,利用串口通信来实现EC20模块与华为云物联网平台的…

Word中Normal.dotm样式模板文件

Normal.dotm文档 首先将自己电脑中C:\Users\自己电脑用户名\AppData\Roaming\Microsoft\Templates路径下的Normal.dotm文件做备份,在下载本文中的Normal.dotm文件,进行替换,重新打开word即可使用。 字体样式如下(可自行修改&#…

基于opencv答题卡识别判卷

项目源码获取方式见文章末尾! 回复暗号:13,免费获取600多个深度学习项目资料,快来加入社群一起学习吧。 **《------往期经典推荐------》**项目名称 1.【基于DDPG算法的股票量化交易】 2.【卫星图像道路检测DeepLabV3Plus模型】 3…

蓝桥杯 单片机 DS1302和DS18B20

DS1302 时钟 时钟试题 常作为实验室考核内容 控制三个引脚 P17 时钟 P23输入 P13复位 其他已经配置好 寄存器原理 定位地址 0x80地址 固定格式 0x57 5*107*1 57 小时写入格式 不同 首位区分 A上午 P下午 0为24小时制 1为12小时制 写入8小时 0x87 //1000 7 十二小时制 7…

H5的Canvas绘图——使用fabricjs绘制一个可多选的随机9宫格

📢欢迎点赞 :👍 收藏 ⭐留言 📝 如有错误敬请指正,赐人玫瑰,手留余香!📢本文作者:由webmote 原创📢作者格言:新的征程,最近一直被测试…

Django+Vue全栈开发旅游网项目首页

一、前端项目搭建 1、使用脚手架工具搭建项目 2、准备静态资源(图片资源) 将准备好的静态资源拖至public目录下 3、调整生产项目结构 公共的样式 公共js 首页拆解步骤 ①分析页面结构 标题、轮播图、本周推荐、精选景点、底部导航 ②新建页面组…

VAE中的“变分”什么

写在前面 VAE(Variational Autoencoder),中文译为变分自编码器。其中AE(Autoencoder)很好理解。那“变分”指的是什么呢?—其实是“变分推断”。变分推断主要用在VAE的损失函数中,那变分推断是什么&#x…

第十二部分 Java Stream、File

第十二部分 Java Stream、File 12.1 Java Stream流 12.1.1体验Stream流 案例需求 按照下面的要求完成集合的创建和遍历 创建一个集合,存储多个字符串元素把集合中所有以"张"开头的元素存储到一个新的集合把"张"开头的集合中的长度为3的元素存…

OpenTelemetry 实际应用

介绍 OpenTelemetry“动手”指南适用于想要开始使用 OpenTelemetry 的人。 如果您是 OpenTelemetry 的新手,那么我建议您从OpenTelemetry 启动和运行帖子开始,我在其中详细介绍了 OpenTelemetry。 OpenTelemetry开始改变可观察性格局,它提供…

开挖 Domain - 前奏

WPF App 主机配置 Microsot.Extension.Hosting 一键启动(配置文件、依赖注入,日志) // App.xaml.cs 中定义 IHost private readonly IHost _host Host.CreateDefaultBuilder().ConfigureAppConfiguration(c > {_ c.SetBasePath(Envi…

JVM(HotSpot):GC之G1垃圾回收器

文章目录 一、简介二、工作原理三、Young Collection 跨代引用四、大对象问题 一、简介 1、适用场景 同时注重吞吐量(Throughput)和低延迟(Low latency),默认的暂停目标是 200 ms超大堆内存,会将堆划分为…

CentOS 7 上安装 MySQL 8.0 教程

🌟 你好 欢迎来到我的技术小宇宙!🌌 这里不仅是我记录技术点滴的后花园,也是我分享学习心得和项目经验的乐园。📚 无论你是技术小白还是资深大牛,这里总有一些内容能触动你的好奇心。🔍 &#x…

C#使用log4net结合sqlite数据库记录日志

0 前言 为什么要把日志存到数据库里? 因为结构化的数据库存储的日志信息,可以写专门的软件读取历史日志信息,通过各种条件筛选,可操作性极大增强,有这方面需求的开发人员可以考虑。 为什么选择SQLite? …

node和npm

背景(js) 1、为什么js能操作DOM和BOM? 原因:每个浏览器都内置了DOM、BOM这样的API函数 2、浏览器中的js运行环境? v8引擎:负责解析和执行js代码 内置API:由运行环境提供的特殊接口,只能在所…

Java面向对象编程高阶(一)

Java面向对象编程高阶(一) 一、关键字static1、static修饰属性2、静态变量与实例变量的对比3、static修饰方法4、什么时候将属性声明为静态的?5、什么时候将属性声明为静态的?6、代码演示 一、关键字static static用来修饰的结构…

从0到1学习node.js(npm)

文章目录 一、NPM的生产环境与开发环境二、全局安装三、npm安装指定版本的包四、删除包 五、用npm发布一个包六、修改和删除npm包1、修改2、删除 一、NPM的生产环境与开发环境 类型命令补充生产依赖npm i -S uniq-S 等效于 --save -S是默认选项npm i -save uniq包的信息保存在…

首席数据官和首席数据分析官

根据分析人士的预测,首席数据官(CDO)和首席数据分析官(CDAO)必须更有效地展示他们对企业和AI项目的价值,以保障其在高管层的地位。Gartner的最新报告指出,CDO和CDAO在AI时代需要重新塑造自身定位…

HDFS异常org.apache.hadoop.hdfs.protocol.NSQuotaExceededException

HDFS异常org.apache.hadoop.hdfs.protocol.NSQuotaExceededException 异常信息: Hive:org.apache.hadoop.hdfs.protocol.NSQuotaExceededException: The NameSpace quota (directories and files) of directory /xxxdir is exceeded: quota10000 file count15001N…

【Python】为Pandas加速(适合Pandas中级开发者)

非常好的一篇文章,解决问题的方式和思路层层递进,透彻深刻。 Pandas是个好工具,好工具要用正确高效的方式使用,才能发挥出万钧之力。 英文水平较高可直接阅读原文。Fast, Flexible, Easy and Intuitive: How to Speed Up Your p…