RAG优化全流程指南:解决检索不准、模型胡说八道的问题

本文系统介绍了RAG技术的全流程优化策略。检索前通过精细化分块、高质量嵌入模型和合适索引结构提升知识库质量;检索中采用查询转换、混合检索和元数据过滤提高查找精度;检索后通过上下文压缩和提示工程优化生成质量。这些策略能有效解决检索不准、模型胡说八道等常见问题,提升RAG系统性能。

前排提示,文末有大模型AGI-CSDN独家资料包哦!

不知道大家在使用RAG技术进行检索优化时有没有遇到这些问题:为什么明明资料上有的内容,但是在回答用户问题时一直不对?为什么让他根据资料回答问题,但是大模型还是会胡说八道?

遇到类似的问题要怎么破?今天把现阶段RAG优化策略一次说清楚。

这些优化策略贯穿了RAG的整个流程:检索前、检索中和检索后。

一、 检索前优化:提升“知识库”质量

这是最根本也是最基础的优化,目标是让检索器能快速找到最相关的内容。正所谓用垃圾生产产品,出来的产品也是垃圾。如果知识库本身质量差,后续步骤再优秀也无济于事。

文档预处理与分块策略

精细化分段:不要简单地按固定字数分段。

通过分段标识符自定义分段内容,使用自然语言处理技术,识别段落、标题等,确保一个分段在语义上是完整的。

分段最大长度:在设置分段最大长度时,长度尽量不要太长,设置的最大长度也要在模型的上下文长度范围内,超出范围模型会忘记前面的内容。

重叠长度:在段与段之间设置重叠区域,防止关键信息被恰好切断在两个段之间。如果你的资料已经处理的很干净了,那就一定不要重叠长度,不然容易造成冗余。

清理与标准化:去除无关内容(页眉、页脚、广告)、纠正OCR错误、统一格式等。这边建议使用markdown格式存储分段内容。

向量化模型优化

选用高质量的嵌入模型:不是所有text-embedding模型都一样。选择在权威评测(如Hugginaface实时更新的测评榜单上MTEB)中排名靠前的模型, 重点关注检索命中指标(Retrieval),实际选型的话还是需要自己去测试。

语言、行业等因素在不同模型上表现出来的性能是不一样的。

领域微调:如果你的领域非常专业(如医学、法律),使用领域内的数据对通用的嵌入模型进行微调,可以让模型更好地理解专业术语和上下文。微调不等于万能,所以非必要情况下不建议微调模型。

多语言支持:如果涉及多语言,需选用支持多语言的嵌入模型。

索引结构优化

选择合适的向量数据库:根据数据规模、延迟要求和成本,选择Pinecone、Weaviate、Chroma、Milvus等。它们提供了高效的近似最近邻搜索算法。

向量检索:通过生成查询嵌入并查询与其向量表示最相似的文本分段,这个更适用于长句检索、口语化的表达以及多语言检索;

关键词检索:索引文档中的所有词汇,从而允许用户查询任意词汇,并返回包含这些词汇的文本片段。这个更适用于专有名词、生僻字、简短句,结构化查询;

混合索引:结合传统关键词检索和向量检索,形成混合检索。这能结合两者的优点:向量检索理解语义,关键词检索保证精确术语匹配。

二、 检索中优化:提升“查找”精度

这一步关注如何从知识库中精准地捞出最相关的信息。

查询转换与扩展

查询重写:让LLM在检索前先优化用户的问题。例如,将口语化的问题改写成更正式、更适合检索的查询语句。

HyDE:一个非常有效的策略。让LLM根据原始问题生成一个假设性的答案,然后用这个生成的答案去向量库中检索。因为假设答案和真实答案在语义空间上会更接近。

查询扩展:通过LLM或传统方法,为原始问题生成多个相关的查询词,扩大检索范围,避免遗漏。

检索策略进阶

混合检索:如上文所述,将向量检索和关键词检索的结果合并,并按分数重新排序。

多路召回与重排序

多路召回:使用不同的方法(如向量、关键词、甚至基于图数据库的关系查询)同时进行检索,得到多个候选文档列表。

重排序:使用一个更强大、更精细的模型(称为重排器,如bge-reranker)对多路召回的候选文档进行重新打分和排序,只保留Top-K个最相关的。这是大幅提升准确率的“杀手锏”。

元数据过滤:为每个文档段添加元数据(如来源、作者、日期、类别)。在检索时,先根据元数据过滤,再在子集内进行语义搜索。例如:“只检索2024年以后的财务报告”。

三、 检索后优化:提升“生成”质量

即使检索到了相关文档,如何让LLM更好地利用它们生成答案也同样重要。

上下文压缩与去噪

冗余去重:大模型检索出答案之后需要分析检索出来的内容是否出现重复信息时,如果出现重复信息则需要进行去重。

相关性过滤:设定一个相似度阈值,过滤掉分数过低的文档块,避免无关信息干扰LLM。

关键信息提取:让LLM先对检索到的文档进行总结和提炼,只将最核心的信息放入生成上下文中。这可以有效解决上下文窗口限制问题。

提示工程兜底优化

召回没有答案:如果没有检索到信息时,需要回复“这个问题没有被收录/这个问题资料库中没有等”,避免没有答案大模型自己造答案。

答案没有用:分析辨识大模型检索的内容,识别其中与问题相关内容,编辑后回答用户:如果内容与问题不相关,则回复"

召回答案有缺失,不完整:分析辨识大模型检索的内容,确保它们可以完整的回答用户的问题,如果内容残缺则回复“信息缺失,请联系"。

包含图片:如果上传的资料中存在以 markdown()标记的图片时,需要保留选取答案前后的图片表达式确保他们可以正常显示。


再多的优化策略,没有实操都是空谈。如果你正在做企业知识库或者在搭建智能客服系统以及等等其他情况,尝试完上面的方法后评论区留言。

今天的分享就到这里,想要了解更多AI知识,关注我~

一起学习,一起进步。

读者福利:倘若大家对大模型感兴趣,那么这套大模型学习资料一定对你有用。

针对0基础小白:

如果你是零基础小白,快速入门大模型是可行的。
大模型学习流程较短,学习内容全面,需要理论与实践结合
学习计划和方向能根据资料进行归纳总结

包括:大模型学习线路汇总、学习阶段,大模型实战案例,大模型学习视频,人工智能、机器学习、大模型书籍PDF。带你从零基础系统性的学好大模型!

😝有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费】🆓

请添加图片描述

👉AI大模型学习路线汇总👈

大模型学习路线图,整体分为7个大的阶段:(全套教程文末领取哈)

第一阶段: 从大模型系统设计入手,讲解大模型的主要方法;

第二阶段: 在通过大模型提示词工程从Prompts角度入手更好发挥模型的作用;

第三阶段: 大模型平台应用开发借助阿里云PAI平台构建电商领域虚拟试衣系统;

第四阶段: 大模型知识库应用开发以LangChain框架为例,构建物流行业咨询智能问答系统;

第五阶段: 大模型微调开发借助以大健康、新零售、新媒体领域构建适合当前领域大模型;

第六阶段: 以SD多模态大模型为主,搭建了文生图小程序案例;

第七阶段: 以大模型平台应用与开发为主,通过星火大模型,文心大模型等成熟大模型构建大模型行业应用。

👉大模型实战案例👈

光学理论是没用的,要学会跟着一起做,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

在这里插入图片描述

👉大模型视频和PDF合集👈

这里我们能提供零基础学习书籍和视频。作为最快捷也是最有效的方式之一,跟着老师的思路,由浅入深,从理论到实操,其实大模型并不难

在这里插入图片描述

👉学会后的收获:👈

• 基于大模型全栈工程实现(前端、后端、产品经理、设计、数据分析等),通过这门课可获得不同能力;

• 能够利用大模型解决相关实际项目需求: 大数据时代,越来越多的企业和机构需要处理海量数据,利用大模型技术可以更好地处理这些数据,提高数据分析和决策的准确性。因此,掌握大模型应用开发技能,可以让程序员更好地应对实际项目需求;

• 基于大模型和企业数据AI应用开发,实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能, 学会Fine-tuning垂直训练大模型(数据准备、数据蒸馏、大模型部署)一站式掌握;

• 能够完成时下热门大模型垂直领域模型训练能力,提高程序员的编码能力: 大模型应用开发需要掌握机器学习算法、深度学习框架等技术,这些技术的掌握可以提高程序员的编码能力和分析能力,让程序员更加熟练地编写高质量的代码。

👉获取方式:

😝有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费】🆓

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值