一周前分享了吴恩达|LLM何时进行微调?何时不进行微调?|拒绝技术自嗨式微调,吴恩达教授给出的最佳实践经验是“正式启动微调前,请确认是否已充分挖掘提示工程、RAG知识库、智能体工作流的潜力”。而其中的【RAG知识库】一直也被称作是智能体的【第二大脑】”,对智能体的输出质量起到了举足轻重的影响。
本文,将深入探讨如何在dify中优化RAG过程的精度,包括:知识库的设置技巧及其背后的AI原理,为什么检索阶段采用了两段式结构?混合检索加Rerank有什么奥秘?在本文中都会一一给出答案。
一、知识库创建与分段参数设置我们从最开始创建知识库开始,来到Dify的页面,点击[创建知识库],然后上传文件,建议上传MD文件,更有利于RAG“读懂”你的笔记。 在Dify平台中,分段设置是影响文本处理质量的关键因素之一。让我们从[分段设置]开始详细探讨。关键分段参数详解:分段最大长度(Chunk Size)是最重要的参数之一。最佳长度要视情况而定,但可以参考一些测试结果。例如有篇关于Azure AI Search的测试,比较了512、1024、4096和8191四种Token长度的召回结果: 测试结果显示:512 Token长度表现最优,1024、4096和8191之间的召回率差异并不显著; 召回率计算方法: 假设检索到前50个文档中有10个高质量文档,而针对该查询应该有20个优质文档,那么召回率就是10/20=0.5(50%)。
分段重叠长度设置指的是允许段落间重叠,避免因分段而丢失语义。 划重点:测试显示,Token长度512并允许25%重叠时,召回率最高可达43.9%。 通过深入理解这些参数和测试数据,可以更科学地配置Dify的分段设置,从而获得更优的文本处理效果。
二、Embedding模型选择 在文本向量化的过程中,选择合适的嵌入模型也会影响RAG的效果精准度。 目前市场上有多种选择,主要可以分为两大类: 高端付费模型:以OpenAI的text-embedding-3-large为代表,这类模型通常具有更高的精度和更强的语义理解能力,适合对准确度要求较高且预算充足的项目。 免费开源模型:比如Dify平台提供的免费嵌入模型,虽然性能可能略逊于高端付费模型,但对于预算有限的项目来说是非常实用的选择。
因为我是本地部署的Dify,比较偷懒,嵌入的是通义千问的“通用文本向量-v3” Dify的模型供应商板块,提供了大量的各类模型可供引入使用,但需要去对应的大模型平台申请接入的API-KEY,见下图:
1. 向量检索的优势向量检索是RAG的标配,擅长语义理解: 例如搜索"最新iPhone旗舰机",向量检索能返回iPhone 16 Pro/Pro Max,即使没输入具体型号。 2. 关键词检索的优势关键词检索(全文检索)擅长精确匹配: 搜索"iPhone 16 Pro"时,关键词检索能精准找到包含该词组的文档,这是向量检索难以做到的。 3. 混合检索的最佳实践混合检索就是同时使用向量和关键词两种方法。 划重点:在Azure AI Search测试中,混合检索(Hybrid)得分比单独使用任一种都高,尤其是加上Semantic Ranker重排序模型后效果更佳。
四、Rerank重排提升检索准确性 Rerank(重新排序)是一种根据查询(Query)和文档的相关性打分并进行排序的技术。这项技术在检索系统中发挥着关键作用,能够更准确地排序返回的结果,从而提升用户体验。 2. Rerank与嵌入模型的区别虽然Rerank看起来与嵌入模型的余弦相似度计算类似,但两者的实现原理存在明显差异: 双编码器模型(Bi-Encoder)- 结构特点:采用Bi-Encoder结构,通过两个神经网络分别生成查询和文档的向量表示。
- 实现方式:通常使用相同的网络架构,可以理解为用同一个Embedding模型生成独立的向量。
- 优势
交叉编码器(Cross Encoder)- 工作原理将查询(Query)和文档合并后输入同一个Transformer模型
- 特点
- 优势
3. 优化检索系统的最佳实践方案在实际检索系统中,通常会结合Bi-Encoder和Cross Encoder的优点,以平衡速度与精度,典型的实现方式是采用二阶检索设计: 第一阶段:使用Bi-Encoder进行快速检索,筛选出与查询相关的候选文档第二阶段:用Cross Encoder对这些候选文档的相关性进行更精确的评分划重点:这种两段式方法既保证了检索效率,又提升了排序准确性,因此在RAG等检索系统中被广泛应用,成为现代信息检索系统的标准实践之一。
Dify中的四种典型检索配置- 仅向量检索:通过余弦相似度排序,设置Top K控制返回结果数量。
- 向量检索+Rerank:Rerank模型优化第一阶段结果,可能将原本排名第五的文档提升至第二位。
- 全文检索+Rerank:
- 混合检索+Rerank:最强大的配置,可设置Score Threshold过滤低质量结果。
划重点:实践证明,混合检索+Rerank模型的配置方式,能极大提升RAG系统的精度。
当需要检索多个知识库时,可以参考如下方式: - 通过Top K和Score Threshold筛选最佳结果
总结:通过合理配置Dify中的混合检索和Rerank模型,可以极大提升RAG系统的精度,从而帮助我们搭建更加优质的智能体。
|