AI大模型企业应用实战:RAG的核心-结果召回和重排序

1 完整RAG应用的检索流程

从用户输入Query到最终输出答案的各个步骤。整个流程包括Query预处理、检索召回、排序等关键环节,每个环节都有不同的技术和方法来提升检索效果。

2 Query预处理

2.1 意图识别

判断query问的是什么类型的问题,从而决定是否走RAG链路。

示例1
  • 深圳有啥好玩的? 闲聊问题
  • VDB支持哪些检索算法? 产品常见问题
示例2
  • 为啥某个MongoDB实例内存占用过高? 检查类问题
  • 云Redis咋扩容? 产品常见问题
流程图

2.2 生成同义query

针对query生成同义句,不同问法提高召回,检索结果做合并。

示例1:VDB支持哪些检索算法

  • 列举一下VDB所支持的检索算法
  • VDB有哪些可用的检索算法

示例2: 腾讯云向量数据库的优势是什么

  • 腾讯云向量数据库有哪些主要优点
  • 腾讯云向量数据库的核心竞争力是什么
流程图

2.3 query标准化

针对query中的专有名词、简写、英文做标准化处理。

示例1:VDB支持哪些检索算法

腾讯云向量数据库支持哪些检索算法

示例2:COS如何上传对象

腾讯云对象存储如何上传对象

流程图

3 检索召回

每次召回时,如何提升结果的排序效果,使与Query更相关的结果更靠前?

  1. 使用更有效的索引技术:使用更高级的索引技术如倒排索引、压缩倒排索引等可以加速检索过程并提高结果的相关性。这些技术可以使得相似的文档在索引中更靠近,从而使得相关的结果更容易被召回。
  2. 优化检索模型:使用适合任务的检索模型如BM25、BERT等,这些模型可以更好地捕捉文档之间的语义和相关性,从而提升召回结果的质量。
  3. 利用用户反馈:收集用户的点击、浏览、收藏等行为反馈信息,通过机器学习算法不断优化排序模型,使得更符合用户兴趣的结果更容易被召回并排在前面。
  4. 引入上下文信息:考虑查询的上下文信息,比如用户的地理位置、设备信息、搜索历史等,可以更好地理解用户意图,提升召回结果的相关性。
  5. 使用深度学习技术:利用深度学习技术如卷积神经网络、循环神经网络等,可以更好地学习文档之间的语义关系,从而提高结果的排序效果。
  6. 结合多种特征:结合文本特征、结构特征、用户特征等多种特征进行综合排序,可以更全面地考虑到文档与查询之间的相关性。

综合运用以上方法,可以在召回阶段有效提升结果排序效果,使得与Query更相关的结果更靠前。

Query预处理中,做了生成同义Query,最终应该如何合并检索结果?

  1. 加权融合:给每个查询生成的同义Query分配一个权重,并根据权重对检索结果进行加权融合。权重可以根据同义Query的相似性、生成方法的可靠性等因素来确定。
  2. 组合排序:将原始查询和同义查询的检索结果分别进行排序,然后将两个排序结果进行组合排序。可以根据不同的排序方法(如TF-IDF、BM25等)来进行组合排序,也可以采用机器学习模型进行组合排序。
  3. 基于规则的合并:制定一些规则来合并检索结果,例如保留两个查询中都包含的结果、去除重复的结果等。这种方法比较简单直接,但需要根据具体场景制定合适的规则。
  4. 交叉验证:将生成的同义Query和原始Query分别用于检索,并根据评估指标(如准确率、召回率等)来选择最优的检索结果。可以通过交叉验证或者在线评估来验证合并结果的效果。
  5. 利用用户反馈:收集用户对不同查询结果的反馈信息,根据反馈信息调整查询结果的排序和合并策略,使得更符合用户需求的结果更容易被展示在前面。

无论采用哪种方法,都需要结合具体的业务需求和数据特点来选择合适的合并检索结果的策略,以确保最终展示给用户的结果具有更高的相关性和质量。

如何在召回阶段,将召回的结果效果做得更优质,减少干扰信息对LLM的影响?

  1. 使用更精准的召回模型:使用更高效和精准的召回模型,如基于BERT、RoBERTa等预训练语言模型的语义匹配模型,能够更好地捕捉文本之间的语义关系,减少不相关文档的召回。
  2. 利用领域知识和规则过滤:结合领域知识和规则,对召回结果进行过滤和筛选,去除明显不相关或低质量的文档。例如,可以使用领域词典、实体识别等技术进行过滤。
  3. 考虑上下文信息:在召回阶段考虑用户的上下文信息,如搜索历史、用户兴趣等,通过个性化的方式调整召回结果,提高相关性。
  4. 引入负采样:在训练召回模型时引入负采样技术,增加负样本的多样性和难度,使得模型更好地区分干扰信息和相关信息。
  5. 加入用户反馈机制:收集用户对召回结果的反馈信息,如点击、滑动、停留时间等,根据反馈信息调整召回模型和排序策略,提高用户满意度和相关性。
  6. 优化评估指标:在评估召回结果时,不仅要关注传统的准确率、召回率等指标,还要考虑到与LLM输入的匹配度、语义相似度等指标,以更全面地评估召回结果的质量。

通过综合利用以上方法,在召回阶段可以更有效地优化召回结果,减少干扰信息对LLM的影响,提高模型的性能和效果。

4 排序

4.1 为啥要排序(Rerank)

Rerank:RAG中百尺竿头更进一步

Embedding模型存在一定的局限性:实际召回结果中,embedding没办法完全反应出语义的相似性,至少这K个文件的排名并不是我们认为的从高分到低分排序的。

排序模型的目的在于对召回内容有一个更合理的排序结果,减少提供给模型的上下文长度,长度越长,对模型来说压力越大。

基于Learning2Rank的思路提升文本语义排序效果:

Listwise的优化

指示函数做近似:

最终loss function:

如何学习AI大模型?

我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。

我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

在这里插入图片描述

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

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

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

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

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

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

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

在这里插入图片描述

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

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

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

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

在这里插入图片描述

1.AI大模型学习路线图
2.100套AI大模型商业化落地方案
3.100集大模型视频教程
4.200本大模型PDF书籍
5.LLM面试题合集
6.AI产品经理资源合集

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

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值