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

发布于 2025-8-12 09:16
浏览
0收藏

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

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

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

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

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

1. 召回率

2. 召回准确率

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

RAG中召回率和召回准确度的区别和联系-AI.x社区

RAG召回率和准确率问题

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

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

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

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

RAG中召回率和召回准确度的区别和联系-AI.x社区

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

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

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

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

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

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

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

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

2. rerank是解决召回准确率的问题

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

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

**区别与联系**

区别:   

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

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

联系:     

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

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


本文转载自​​​AI探索时代​​​ 作者:DFires

©著作权归作者所有,如需转载,请注明出处,否则将追究法律责任
标签
收藏
回复
举报
回复
相关推荐