微信扫码
添加专属顾问
我要投稿
利用大模型打造私有知识库,提升信息检索精准度。 核心内容: 1. RAG技术如何通过检索增强回答能力 2. 文档切块及向量化存储的关键步骤 3. 长文本处理中的挑战和解决方案
RAG 就像我们做开卷考试,在回答考题之前,先翻我们准备的资料(通过检索相关文档来增强自己的能力),这样一来,答题不仅更准确,还能带上更多上下文信息,显得更有深度和针对性。
在 RAG 中,我们需要提前预备知识资料,然后向量化后存到向量数据库中,在回答问题的时候,并对问题进行向量化,然后去检索我们数据库是否有相似的内容,如果相似则召回,并把召回的内容一并给到大模型(如:Deepseek),然后通过大模型的推理归纳给出相应的答案。
类似下面步骤:
第一步:预备数据 首先,把我们准备的资料知识文档,“切”成一个个小文档块,然后存到数据库里。如果这些小文档块还生成了对应的“嵌入”(可以理解成一种数学表示),那这个数据库就可以升级成向量存储,方便后续的快速查找。
第二步:检索 当用提问时,系统先把问题向量化,并通过向量搜索、全文搜索,或者多模态的方式,去数据库里检索最相关的小文档块。当定位到那些和用户问题最匹配的信息片段后,以上下文的方式喂给大模型,这样大模型不仅能更快找到答案,还能确保回答得更精准、更有针对性,同时也减少了幻觉。
对于企业或者个人来说,有很多政策条文,或者文献,通常都是很长篇幅的内容。如果把这些很长的篇幅给到大模型,基于现有大模型的计算能力则无法一次性处理,那就需要对文本进行切块,然而切块不是越大越好,在向量化时,长文本面临以下核心挑战:
在上面我们看到“分块”在 RAG 中起到关键角色和面临的挑战,它直接决定了我们召回知识的准确性,因此选择合适的分块方法尤为重要;有效切割文件的关键在于平衡信息的完整性和管理的便捷性, 可以采用固定大小分块、语义分块、递归分块、基于文档结构的分块以及基于 LLM 的分块等多种策略 。
总结表格如下:
1. 固定大小分块 |
|
|
|
2.语义分块 |
|
|
|
3. 递归分块 |
|
|
|
4. 文档结构分块 |
|
|
|
5. 基于 LLM 的分块 |
|
|
|
结合业务场景与文本特点选择合适分块策略是相对较好的方式,在 RAGFlow 中就支持多种分块的方法,下面表格展示了不同分块方法说明及其支持的文档格式
分块方法:
General(通用) | ||
Resume(简历) | ||
Q&A (问答) | ||
Manual(手册) | ||
Table(表格形式文件 | ||
Paper(论文) | ||
Book(书籍类型) | ||
Laws(律法相关) | ||
Presentation(演示文稿) | ||
Picture(图片) | ||
One(完整文件) | ||
Tag(标签) |
虽然我们掌握了如何对文档进行分块,但对分块的数据召回也是很关键的步骤,怎么提升数据的召回准确率也是一项亟待解决的问题。
影响数据召回准确率的原因有很多,从单一方面很难甚至可以说根本无法解决这个问题,因此提升数据的准确性就需要从多个方面入手。
以下是目前主流的一些方式:
1. 混合检索方法 同时执行向量检索(语义匹配)和全文检索(关键词匹配),通过线性加权或倒序融合(RRF)合并结果。 引入重排序模型(如BGE-Reranker),对多路召回结果二次排序,优先保留高相关片段。
2. 多路召回策略 采用多模型并行检索(如BM25、DPR、Embedding模型),覆盖不同粒度的匹配需求。 对于复杂查询,将问题拆解为多个子查询,分别检索后合并结果。
3. 动态参数调整 设置相似度阈值(如0.5-0.7),过滤低相关片段;根据业务反馈动态调整分块大小和召回数量
在RAGFlow中已使用了上述的方法对数据进行召回增强,我们在使用的时候可以对相关参数进行调整验证,以达到更好的效果。
53AI,企业落地大模型首选服务商
产品:场景落地咨询+大模型应用平台+行业解决方案
承诺:免费场景POC验证,效果验证后签署服务协议。零风险落地应用大模型,已交付160+中大型企业
2024-10-27
2024-09-04
2024-07-18
2024-05-05
2024-06-20
2024-06-13
2024-07-09
2024-07-09
2024-05-19
2024-07-07