RAG 召回率低?可能是知识库分段没做好!求问大佬们的经验​

136 天前
 larisboy
各位做 RAG 的小伙伴们,最近在搞知识库的时候遇到个问题,想请教一下大家:

向量库召回率不太行,初步排查可能是知识库的分段方式有问题。比如,一段太长或者分段不合理,导致模型检索不到关键信息。

​想问大家几个问题​:

​1 、知识库文档一般用什么格式?​​ 比如纯文本、Markdown ,还是结构化 JSON ?哪种更适合 RAG ?
​2 、怎么分段比较合理?​​ 是按段落分,还是按章节分?有没有什么技巧能保证上下文连贯性?
​3 、如果文档里有代码、图表或者多模态内容,怎么处理?​​ 直接丢进去,还是得额外处理?目前我尝试​在 dify 中通过最大 4000tokens 进行分段,但效果不好,可能是因为上下文断了( pdf 、Markdown 无法很好的分段,因为上下文是有关联的)。


有没有现成的分段策略可以参考?或者有没有工具/库能自动优化分段?欢迎分享!感谢大佬们~ 🙏
496 次点击
所在节点    问与答
1 条回复
dandankele
16 天前
1. 知识库的源文档可以是任何形式的文件,如 docx 、ppt 、pdf 等等,那么此时需要做第一步,将这些多种形式的、非结构化的数据转化为结构化的数据结构,如都统一转化为 markdown

2. 分段问题是整个工程里比较重要的且棘手的一项问题。要考虑分段大小是否匹配模型窗口、分段后上下文如何不丢失、语义不丢失等。。应该没有固定的一种手段。。要保证上下文的话,可以分段是保留一些重叠,或者构建知识图谱(这个又引入了复杂性)。。分段策略可以网上搜一下,一大堆资料,一些 rag 框架里也会自带的

3. 多模态的还没尝试过,也在研究。可以将图片也转化为文本描述,那么入库的都是文本了,后续检索也只需要根据文本检索,但这严重依赖文本的准确性,可能导致检索精度丢失。。另一种就是用多模态模型了,让图片向量与文本向量存储在同一空间里,直接做图文检索。。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1127629

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX