返回顶部
热门问答 更多热门问答
技术文章 更多技术文章

RAG中召回率和召回准确度的区别和联系

[复制链接]
链载Ai 显示全部楼层 发表于 4 小时前 |阅读模式 打印 上一主题 下一主题

RAG的优化方向只有两个,召回率和准确率也就是精度。



在前面的文档中简单介绍过RAG的几种优化方式,因为从本质上来说RAG的目的只有一个,那就是快速并且准确的召回数据。


但在实际的RAG系统中,我们往往会面临着一个问题,那就是召回率和准确率的问题;如果RAG系统的召回率太低,那么RAG就没有了存在的意义。


以作者目前遇到的实际问题为例,就是数据召回率不足,更不用说召回的准确率了,也就是精度。


虽然说影响RAG效果的因素有很多,但单纯的从RAG的角度来说,主要就两个方面:


1. 召回率

2. 召回准确率


任何与RAG有关的优化方案,基本上可以说都是从这两个角度出发;所以,今天我们就主要来讨论一下这两个问题。




RAG召回率和准确率问题




很多人在做RAG的时候都没有搞明白一个问题,那就是召回率和准确率,以及其之间的关系。


我们知道在大模型的应用中,召回文档的质量直接影响到模型的输出结果;因此,召回文档的重要性就不言而喻了。


甚至很多人都不知道怎么去评判一个RAG系统的好坏,以及具体是哪些因素影响了RAG的表现?


作者刚开始在做RAG系统的时候感觉RAG好简单,流程明确,也不复杂;无非就是切分一下文档,然后通过嵌入模型和相似度检索对文档进行召回即可。


但在实际的操作过程中却发现,虽然RAG系统实现起来很简单,但要真的想把RAG给做好,却不是一件容易的事情。


作者目前遇到的一个问题就是,RAG系统整体是跑起来了,但其召回率特别低,还不到百分之五十;其中一部分是文档处理的质量不太好,其次就是召回策略的问题。


但不管是什么问题,总之就涉及到两个概念;召回率和准确率。


召回率解决的是召回相关文档的数量,准确率解决的是召回相关文档的准确性,也是有效性。


但很多时候召回率和准确率是一个矛盾体,想提升精度,就必须限制其检索范围,但限制检索范围就肯定会影响到召回率;反之亦然。


当然,面对这种问题业界的普遍做法还是分为两步,第一步是先解决召回率问题,第二步再通过精排或其它方式解决准确性问题。


以相似度检索和重排序为例:


1. 相似度检索是解决召回率的问题
2.rerank是解决召回准确率的问题


1. **召回率(Recall)**: - 定义:在所有相关文档中,系统成功检索出的比例。 - 公式:Recall = (检索出的相关文档数) / (总相关文档数) - 目标:尽量不遗漏任何相关文档(即减少漏检)。

2. **准确度(Precision)**: - 这里我们特指召回的准确度,即检索结果中相关文档的比例。通常我们关注Top K的准确度(Precision@K)。 - 公式:Precision@K = (前K个结果中相关文档数) / K - 目标:确保返回的文档尽可能都是相关的(即减少噪声)。

**区别与联系**


区别:

- 召回率关注的是系统找到所有相关文档的能力,强调“全”。

- 准确度关注的是系统返回的文档中有多少是相关的,强调“准”。


联系:


- 两者通常是一对矛盾(召回率高时,准确度往往低;反之亦然)。


因为为了追求高召回率,我们可能会放宽检索条件,导致返回更多不相关文档(准确度下降)。而为了追求高准确度,我们可能会设置严格的检索条件,导致漏掉一些相关文档(召回率下降)。

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

链载AI是专业的生成式人工智能教程平台。提供Stable Diffusion、Midjourney AI绘画教程,Suno AI音乐生成指南,以及Runway、Pika等AI视频制作与动画生成实战案例。从提示词编写到参数调整,手把手助您从入门到精通。
  • 官方手机版

  • 微信公众号

  • 商务合作

  • Powered by Discuz! X3.5 | Copyright © 2025-2025. | 链载Ai
  • 桂ICP备2024021734号 | 营业执照 | |广西笔趣文化传媒有限公司|| QQ