RAG的一些有趣话题:攻克切片环节中的难题

今日AI资讯
通义听悟升级,超长音视频自由问
多位专家签署《北京AI安全国际共识》
百川智能、北大成立“通用AI联合实验室”
实在Agent智能体公测招募
Stability AI推出3D视频生成模型
英伟达:发布AI旗舰芯片Blackwell GPU
OpenAI CEO:GPT-5能力提升将超乎想象

今天主要针对Langchain的文档切分中4个难点进行展开

文本切片

Langchain的文档切分存在哪些难点问题?

  1. 切片策略:固定长度分割文本,且分割窗口之间留一定重叠比例,以避免损失上下文语义信息。虽然简单便捷,但缺点也很明显。比如以下文本结构:

如果分片长度设置得太小,会导致一级标题下的段落二、三失去了与一级标题相关的重要信息。文档问答过程中,“系统主要的内容构成是什么?”,可能RAG只会检索到组件1,因为组件2和3由于分片长度的限制未能归入同一文本块内。然而,增加文本分片的长度又会增加LLM带来的冗余噪声信息,从而影响模型的回答准确性,尤其是对于一些开源LLM,其对上下文长度的支持和语义理解相对较弱。

  1. 使用RAG+LLM进行知识问答时,当知识内容较多时检索成本高,需要遍历所有文本块。

  2. 使用关键字提问时,RAG可能检索不到相关文本,需要补全问题描述。

  3. 如何将多模态知识(如包含图表的pdf、ppt等)加入知识库并进行知识问答?

那么如何做好文本切片?

答案:语义切分。语义切分方法主要包括以下两种:

  1. 篇章分析:利用自然语言处理的篇章分析工具(discourse parsing),提取段落间的主从关系,并将所有相关段落合并成一段,确保每个文本分块都在表达相同的事情。

  2. BERT判断段落相似度:除了 discourse parsing 的工具外,BERT-base-Chinese模型在预训练中采用了NSP(next sentence prediction)任务,因此可以完全判断两个句子(段落)是否具有语义上的衔接关系。可以设置相似度阈值,依次判断相邻两个段落的相似度分数是否大于阈值,若大于则合并,否则断开,本质上就是段落分割。推荐:阿里的SeqModel模型,可直接用modelscope调用。

切片后,会存在难点1:大块切片的噪声问题 和 难点2:检索成本高的问题,解决方案如下:

利用层次检索树形检索的方式,对应方式如下图所示:

篇章分析获取的文本块具有层次依存关系,检索时可以按照上至下的顺序进行,并配合剪枝策略。对于BERT段落相似判断,由于没有依存关系,需要使用LLM进行总结和摘要。2024年斯坦福大学提出的RAPTOR方法,是对固定长度分割后的文本块进行语义聚类,然后使用LLM总结摘要,生成摘要embedding作为树的节点。

在这三种层次结构中,由于语义切分后的文本块可能很长,所以采用固定长度分割可以避免引入冗余文本。如果检索成本不是问题(例如并行检索),那么可以将层次结构压平后进行检索。

难点(3):关键字提问,RAG检索不到相关文本,往往需要补全问题信息。

对此公开资料有一些解决方案:

  1. 引入追问机制:在Prompt中加入"如果无法从背景知识回答用户的问题,则根据背景知识内容,对用户进行追问,问题限制在3个以内"。这个机制主要依靠大模型的能力。不过可以改善了问答体验,用户在多轮引导中逐步明确了自己的问题,一般都能得到合适的答案。如果多轮引导后还是回答不出来,兜底:结合猜你所想给出已知的高频QA推荐。

  2. 关键词抽取:利用NLP技术(句法分析、NER、依存分析、语义角色标注、关键词提取等)抽取关键信息,将其加入到层次检索的顶部。先检索关键信息,再检索相应内容。缺点是如果用户提问的信息未被提前抽取,就无法检索到。

  3. RAG-Fusion:使用LLM优化用户查询,改写输入查询,并丰富召回结果。将召回内容通过倒排融合(Reciprocal rank fusion, RRF)得到统一得分,然后重排取 TOP k 检索结果。RAG-Fusion的缺点耗时,因为需要多次提问。

  1. 混合搜索:这是一种值得尝试的低成本高收益方案,将字面相似的传统搜索算法(Best Matching 25, BM25)与向量相似性检索相结合,实现混合搜索。可以采用加权融合分数、取各自top k检索后并集 或 RRF+Rerank等方法。

难点4:如何将多模态知识(如包含图表的pdf、ppt等)加入知识库并进行知识问答?

答案:多模态模型,通过prompt技术提取文档中图片的关键信息,形成摘要描述作为图片索引缺点是多模态模型对图片描述的细致程度可能影响索引的质量。实际上可以将图片、表格、ppt都视为图片,使用多模态模型OCR模型分别抽取摘要描述和源数据中的数据和文本要素,整理后作为源数据的知识分片。

期待

今天我们主要针对RAG中文本切片的难点进行了一一解答,后面我会从文本版式解析展开说一下相关关键技术。

引用

  • 基于LLM+向量库的文档对话痛点及解决方案:https://zhuanlan.zhihu.com/p/651179780
  • 斯坦福 | 提出PDFTriage,解决结构化文档的问题,提升「文档问答」准确率:https://zhuanlan.zhihu.com/p/657316158
  • pdf解析关键问题:https://zhuanlan.zhihu.com/p/652975673

关于我

欢迎关注,一起进步一起成长


相关推荐

  • 英伟达新一代GPU B200显卡性能参数对比:兼看LLM与KG系列专题索引及多模态评测数据集
  • 日结 :50-200元/张,AI画图即可,无需经验,在家可做
  • Puppeteer实践:复杂的问题简单化
  • 学弟还是决定去小红书了!
  • 亦仁:生财有术第七年成绩单,六组数据,一起回顾这一年
  • 阿尔特曼称GPT-5提升超想象;库克在中国首谈生成式AI;字节推出视频生成新模型丨AIGC大事日报
  • 突发!DeepMind联创空降微软:统领AI团队,还掏空了OpenAI劲敌
  • “AI+”时代长征第一步,中国企业最需要什么样的大模型?
  • 公司新来一个架构师, 将消费金融系统重构了
  • 【PDF下载】三本机器学习统计学入门好书
  • java线程池原理浅析
  • 更适合中国宝宝体质的代码
  • 书生·浦语大模型实战营第二期正式启动,内容全面升级!
  • 开源日报 | Grok使用体验完全够不上第一梯队;C++之父反驳白宫观点;Surface Duo在开源社区扶持下焕发新生
  • JDK 22正式GA;甲骨文:Java是“第一编程语言”
  • 怎么你出的MES方案像屎一样?
  • 42.3K Star开源!可私有化部署的笔记应用
  • 解锁正则表达式的秘密:regex-vis工具带你看见模式匹配的魔法!
  • ChatGPT用10秒画完一张UML流程图,而我用了。。。
  • AI时代,把手弄脏是上策