你的AI为何答非所问?解密RAG文档解析与知识切分(Chunking)的核心挑战
本文已收录在Github,关注我,紧跟本系列专栏文章,咱们下篇再续!
- 🚀 魔都架构师 | 全网30W技术追随者
- 🔧 大厂分布式系统/数据中台实战专家
- 🏆 主导交易系统百万级流量调优 & 车联网平台架构
- 🧠 AIGC应用开发先行者 | 区块链落地实践者
- 🌍 以技术驱动创新,我们的征途是改变世界!
- 👉 实战干货:编程严选网
1 开源解析和拆分文档
第三方工具去对文件解析拆分,提取文件内容,并将文档内容拆分成一个小chunk。
PDF、word、markdown、JSON、HTML等都有很好的模块执行提取。
1.1 优势
- 支持丰富的文档类型
- 每种文档多样化选择
- 与开源框架无缝集成
但有时效果很差,内容跟原文件差别大。
2 PDF格式多样性
复杂多变的文档格式,提高解析效果困难。
3 复杂文档格式解析问题
文档内容质量很大程度影响最终效果,文档处理涉及问题:
3.1 内容不完整
对文档的内容提取时,可能发现提取出的文档内容会被截断。跨页形式,提取出来它的上下页,两部分内容就会被截断,导致文档内部分内容丢失,去解析图片或双栏复杂的这种格式,它会有一部分内容丢失。
3.2 内容错误
同一页PDF文件可能存在文本、表格、图片等混合。
PDF解析过程中,同一页它不同段落其实会也会有不同标准的一些格式。按通用格式去提取解析就遇到同页不同段落格式不标准情况。
3.3 文档格式
像常见PDF md文件,需要去支持把这些各类型的文档格式的文件都给提取。
3,4 边界场景
代码块还有单元格这些,都是我们去解析一个复杂文档格式中会遇到的一些问题。
4 PDF内容提取流程
5 为啥解析文档后,要做知识片段拆分?
5.1 Token限制
- 绝大部分开源限制 <= 512 Tokens
- bge_base、e5_large、m3e_base、text2vector_large_chinese、multilingnal-e5-base..
5.2 效果影响
- 召回效果:有限向量维度下表达较多的文档信息易产生失真
- 回答效果:召回内容中包含与问题无关信息对LLM增加干扰
5.3 成本控制
- LLM费用:按Token计费
- 网络费用:按流量计费
6 Chunk拆分对最终效果的影响
6.1 Chunk太长
信息压缩失真。
6.2 Chunk太短
表达缺失上下文;匹配分数容易变高。
6.3 Chunk跨主题
内容关系脱节。
原文连续内容(含表格)被截断
单个Chunk信息表达不完整,或含义相反
干扰信息
如空白、HTML、XML等格式,同等长度下减少有效信息、增加干扰信息
主题和关系丢失
缺失了主题和知识点之间的关系
7 改进知识的拆分方案
8 商用向量数据库AI套件
Vector DB AI套件: