RAG系统的7个检索指标:信息检索任务准确性评估指南

news2024/11/26 14:46:11

大型语言模型(LLMs)作为一种生成式AI技术,在近两年内获得了显著的关注和应用。但是在实际部署中,LLMs的知识局限性和幻觉问题仍然是一个挑战。检索增强生成(Retrieval Augmented Generation,RAG)通过为LLM提供额外的外部知识和上下文,有效地解决了这些问题。截至2024年RAG已经成为应用生成式AI领域中最具影响力的技术之一。事实上,几乎所有基于LLM的应用都在某种程度上采用了RAG技术。

RAG通过引入非参数记忆访问来增强LLM的参数记忆能力

RAG评估:超越表面实现

为了充分发挥RAG的潜力,使LLM的响应能够切实地建立在可靠数据基础之上,我们需要超越简单的索引、检索、增强和生成的实现方式。要实现这一目标,首先需要建立有效的性能度量标准。RAG评估为建立系统性能基准提供了重要依据,进而为后续的优化提供了方向。

构建RAG概念验证(PoC)管道的复杂度相对较低。借助LangChain和LlamaIndex等工具,这一过程已经变得相对简单。通过简短的训练和有限样本的验证即可实现初步功能。但是为了提高系统的鲁棒性,在真实反映生产环境用例的数据集上进行全面测试至关重要。值得注意的是RAG管道本身也可能产生幻觉。从宏观角度来看,RAG系统存在三个主要的失效点:

  1. 检索器未能检索到完整或相关的上下文
  2. LLM虽然接收到上下文,但未能有效利用
  3. LLM没有针对查询给出回答,而是从上下文中提取了不相关信息

本文将重点讨论几个专注于评估第一个失效点的指标 —— “检索器未能检索到完整或相关上下文”。换言之这些指标旨在评估检索器的质量。

检索指标概述

用于评估RAG系统的指标可以大致分为三类:

  1. 信息检索任务中使用的检索指标(本文的讨论重点)
  2. 专注于评估生成内容流畅性、相关性和语义相似性的指标,如BLEU、ROUGE、METEOR等
  3. 随RAG应用发展而演变的特定指标

RAG的检索组件可以独立评估确定检索器满足用户查询的能力。我们将详细介绍七个广泛应用于RAG、搜索引擎、推荐系统等信息检索任务的重要指标。

注:在RAG中,知识库是一个核心概念。它是一个非参数记忆存储,用于存储RAG系统将处理的所有文档。

核心检索指标详解

1. 准确率(Accuracy)

准确率在信息检索领域通常定义为正确预测(包括真阳性和真阴性)占总样本的比例。这一概念源自监督学习中的分类问题,但在检索和RAG语境下有其特定解释:

准确率 = (检索到的相关文档数 + 未检索到的不相关文档数) / 知识库中总文档数

尽管准确率是一个直观的指标,但它并不是评估检索系统的最佳选择。在大型知识库中,对于任何给定查询大多数文档通常都是不相关的,这可能导致准确率呈现误导性的高值。此外该指标并不考虑检索结果的排序质量。

2. 精确率(Precision)

精确率聚焦于检索结果的质量,衡量检索到的文档中与用户查询相关的比例。它回答了这样一个问题:在所有被检索到的文档中,有多少是真正相关的?

精确率 = 检索到的相关文档数 / 检索到的总文档数

高精确率表明检索器能够有效地识别和提取相关文档。

:精确率在分类任务中也是一个常用指标,定义为模型预测为正例的样本中实际为正例的比例,即真阳性 /(真阳性 + 假阳性)。

Precision@k

Precision@k是精确率的一个变体,它仅考虑检索结果中排名前k的文档。这一指标在RAG系统中尤为重要,因为通常只有排名靠前的结果会被用于增强。例如如果RAG系统仅使用前5个文档进行增强,那么Precision@5就成为一个关键指标。

Precision@k = 前k个结果中相关文档的数量 / k

例如,Precision@5为0.8(或4/5)意味着在前5个检索结果中,有4个是相关的。

Precision@k在比较不同系统的检索性能时特别有用,尤其是当系统间检索的总文档数可能不同时。但是它的局限性在于k值的选择可能带有主观性,且该指标不考虑k之外的结果。

3. 召回率(Recall)

召回率评估检索系统的覆盖范围,衡量从知识库中所有相关文档中成功检索到的比例。它回答了这样一个问题:在所有相关文档中,实际检索到了多少?

召回率 = 检索到的相关文档数 / 知识库中相关文档总数

与精确率不同召回率的计算需要预先知道知识库中相关文档的总数。在大规模系统中这可能是一个挑战。召回率同样不考虑检索文档的排序。理论上检索所有文档可以获得完美的召回率,但这显然不符合实际需求。

Recall@k

类似于Precision@k,Recall@k考虑了前k个检索结果中的相关文档比例:

Recall@k = 前k个结果中相关文档的数量 / 知识库中相关文档总数

召回率和精确率的不同场景

4. F1分数

F1分数是精确率和召回率的调和平均值,提供了一个平衡检索器质量和覆盖范围的单一指标。

F1分数 = 2 * (精确率 * 召回率) / (精确率 + 召回率)

F1分数的特点是当精确率或召回率任一指标较低时,分数会受到显著影响。只有当两个指标都较高时,F1分数才会较高。这种特性使得F1分数不会被单一指标的高值所误导。

F1分数平衡了精确率和召回率。中等水平的精确率和召回率可能获得比一个指标很高而另一个很低时更高的F1分数。

F1分数提供了一个综合度量,便于比较不同系统的整体性能。但是它不考虑检索结果的排序,且默认给予精确率和召回率相同的权重,这在某些应用场景中可能不够理想。

重要说明:

文档相关性判定:大多数讨论的指标都涉及"相关"文档的概念。确定文档相关性的最直接方法是通过人工评估。通常由领域专家审查文档并判定其相关性。为减少个人偏见,这种评估往往由专家小组而非个人完成。但是从规模和成本的角度考虑,人工评估存在局限性。因此任何能可靠建立相关性的数据都变得极为宝贵。在这一背景下,基准事实(Ground Truth)指的是已知真实或正确的信息。在RAG和生成式AI领域,基准事实通常表现为一组预先准备的提示-上下文-响应或问题-上下文-响应示例,类似于监督学习中的标记数据。为知识库创建的基准事实数据可用于RAG系统的评估和优化。

高级检索评估指标

前面讨论的四个指标主要关注检索的整体效果,而不考虑结果的排序。接下来介绍的三个指标则进一步考虑了检索结果的排序质量,为评估提供了更深入的视角。

5. 平均倒数排名(Mean Reciprocal Rank, MRR)

平均倒数排名(MRR)是一个专门用于评估相关文档排名的指标。它计算的是一组查询中,每个查询的第一个相关文档的排名倒数的平均值。其数学表达式如下:

MRR = 1/N * Σ(i=1 to N) [1/rank(i)]

其中,N为查询总数,rank(i)为第i个查询中第一个相关文档的排名

MRR特别适用于评估系统快速找到相关文档的能力,因为它考虑了结果的排序。但是由于MRR只关注第一个相关结果,在需要多个相关结果的场景中,其应用可能受到限制。

![]

MRR考虑了排名,但仅关注第一个相关文档

6. 平均精确率均值(Mean Average Precision, MAP)

平均精确率均值(MAP)是一个综合性指标,它结合了不同截断级别(k值)的精确率和召回率。MAP首先计算每个查询的平均精确率,然后取所有查询的平均值。其计算过程如下:

  1. 单个查询(i)的平均精确率:

AP(i) = 1/R(i) * Σ(k=1 to n) [Precision@k * rel(k)]

其中,R(i)为查询i的相关文档总数,Precision@k为前k个结果中的精确率,rel(k)为第k个文档的相关性(0或1)

  1. 平均精确率均值:

MAP = 1/N * Σ(i=1 to N) [AP(i)]

其中,N为查询总数

MAP提供了一个在不同召回率水平上的综合质量度量。当结果的排序质量很重要时,MAP是一个非常有效的指标。但是其计算过程相对复杂。

MAP考虑了所有检索到的文档,并对更好的排序给予更高的分数

7. 归一化折损累积增益(Normalized Discounted Cumulative Gain, nDCG)

归一化折损累积增益(nDCG)是一个更为精细的排序质量评估指标。它不仅考虑了相关文档的位置,还为较早出现的相关文档分配更高的权重。nDCG特别适用于文档具有不同程度相关性的场景。

计算nDCG涉及以下步骤:

  1. 计算折损累积增益(DCG):

DCG = Σ(i=1 to n) [(2^rel(i) - 1) / log2(i+1)]

其中,rel(i)为第i个文档的相关性分数

  1. 计算理想DCG(IDCG),即完美排序情况下的DCG
  2. 计算nDCG:

nDCG = DCG / IDCG

nDCG考虑了文档的相关性程度,并对不正确的排序进行惩罚

nDCG是一个计算较为复杂的指标。它要求为每个文档分配相关性分数,这可能引入一定的主观性。折损因子的选择也会显著影响最终结果。尽管如此nDCG能够有效地处理文档间不同程度的相关性,并给予排名较高的项目更多权重,使其成为评估高级检索系统的有力工具。

结语

检索系统不仅在RAG中发挥关键作用,还广泛应用于网络和企业搜索引擎、电子商务产品搜索、个性化推荐、社交媒体广告投放、档案管理系统、数据库查询优化、智能虚拟助手等多个领域。上述检索指标为评估和改进这些系统的性能提供了重要依据,有助于更好地满足用户需求。

本文详细介绍了七个核心检索指标,从简单的准确率到复杂的nDCG,每个指标都有其特定的应用场景和优缺点。在实际应用中,选择合适的指标组合对于全面评估和优化RAG系统至关重要。

https://avoid.overfit.cn/post/ab01407621314acba8e53099b94eba11

作者:Abhinav Kimothi

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2124641.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

好网站包含哪些方面

好网站通常在多个方面都表现出色,包括但不限于设计、内容、导航、性能和互动性。下面将详细介绍这些方面。 首先,设计是一个网站吸引用户的第一印象。一个好的网站设计应该是清晰、直观、美观,并且符合用户体验原则。页面布局应该合理&#x…

Spire.PDF for .NET【文档操作】演示:创比较 PDF 文档

PDF 已成为跨不同平台共享和保存文档的标准格式,在专业和个人环境中都发挥着无处不在的作用。但是,创建高质量的 PDF 文档需要多次检查和修订。在这种情况下,了解如何有效地比较 PDF 文件并找出它们的差异变得至关重要,这使文档编…

【Go】Go语言基本语法--注释、变量、常量

✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,…

Memfire Cloud使用技巧:让开发更简单,更高效

在软件开发的世界里,Memfire Cloud就像是一位隐形的助手,它悄无声息地帮助开发者们解决了一个又一个难题。如果你还在为搭建服务、开发API接口而头疼,那么Memfire Cloud无疑是你的救星。今天,我们就来聊聊如何使用Memfire Cloud&a…

面试官:v-if和v-for的优先级是什么?

一、作用 v-if 指令用于条件性地渲染一块内容。这块内容只会在指令的表达式返回 true值的时候被渲染 v-for 指令基于一个数组来渲染一个列表。v-for 指令需要使用 item in items 形式的特殊语法,其中 items 是源数据数组或者对象,而 item 则是被迭代的…

【人工智能学习笔记】4_4 深度学习基础之生成对抗网络

生成对抗网络(Generative Adversarial Network, GAN) 一种深度学习模型,通过判别模型(Discriminative Model)和生成模型(Generative Model)的相互博弈学习,生成接近真实数据的数据分…

Rust程序结构与代码注释

【图书介绍】《Rust编程与项目实战》-CSDN博客 《Rust编程与项目实战》(朱文伟,李建英)【摘要 书评 试读】- 京东图书 (jd.com) Rust编程与项目实战_夏天又到了的博客-CSDN博客 3.1 Rust程序结构 我们从一个最简单的程序入手,来观察一个Rust的程序结…

Express框架中的res

中间件由两部分组成,中间件方法和请求处理函数; 中间件方法由express提供,负责拦截请求,请求处理函数由开发人员提供,负责处理请求; app.get(‘请求路径’,‘处理函数’); //接收并处理get请求 app.post(‘请求路径’,‘处理函数’); //接收并处理post请求 可以对同一个请求…

盘点ai可以变现的3大生意,看看你猜到了几个?

一、做动物ai视频,通过流量变现 最近各个视频平台都很火的猫meme,不仅在各个蓝v账号混的风生水起,也是很多文旅的爆款密码。 有很多个人账号也会做比如动物跳舞,做饭的视频,通过流量收入和接广告来变现。 ** 二、小说…

【OJ刷题】双指针问题

这里是阿川的博客,祝您变得更强 ✨ 个人主页:在线OJ的阿川 💖文章专栏:OJ刷题入门到进阶 🌏代码仓库: 写在开头 现在您看到的是我的结论或想法,但在这背后凝结了大量的思考、经验和讨论 目录 1…

【NOI-题解】1272. 郭远摘苹果1274. 求各个科目成绩的平均分1275. 输出杨辉三角的前N行1496. 地雷数量求解

文章目录 一、前言二、问题问题:1272. 郭远摘苹果问题:1274. 求各个科目成绩的平均分问题:1275. 输出杨辉三角的前N行问题:1496. 地雷数量求解 三、感谢 一、前言 欢迎关注本专栏《C从零基础到信奥赛入门级(CSP-J&…

《旧衣服的销路在哪里》

在当今社会,随着人们生活水平的不断提高,衣物的更新换代速度愈发加快,大量的旧衣服亟待处理,旧衣服回收市场由此应运而生,且发展态势日益蓬勃。 旧衣服回收的类型丰富多样。从材质上区分,有柔软的棉质、透…

从代理协议的角度出发:解锁住宅代理

在各类代理中,代理协议扮演着至关重要的角色,它规定了代理运作的规则和要求。和其他代理相同,住宅代理也依赖于多种代理协议来处理不同类型的流量。在本文中,我们将深入研究HTTP和HTTPS代理的工作原理,比较它们的差异&…

IDC基础学习笔记

一、数据中心介绍 1、数据中心级别划分: 2、数据中心结构: 3、IT系统组成 二、数据中心硬件知识 1、服务器组件 服务器的正面接口: 服务器的反面接口: (1)CPU CPU定义:中央处理器&#xff08…

【信创】统信UOS图形界面登录闪退的解决方法

原文链接:【信创】统信UOS图形界面登录闪退的解决方法 Hello,大家好啊!今天给大家带来一篇关于统信UOS 1070桌面操作系统中,图形界面登录时出现闪退或输入正确的用户名和密码后又跳转回登录界面问题的解决方法的文章。这种问题可能…

JAVA基础:抽象类,接口,instanceof,类关系,克隆

1 JDK中的包 JDK JRE 开发工具集(javac.exe) JRE JVM java类库 JVM java 虚拟机 jdk中自带了许多的包(类) , 常用的有 java.lang 该包中的类,不需要引用,可以直接使用。 例如&#xff1…

关于axios同步获取数据的问题

axios同步获取数据 Axios介绍问题代码修改 总结 Axios介绍 Axios 是一个基于 promise 网络请求库,作用于node.js 和浏览器中。 它是 isomorphic 的(即同一套代码可以运行在浏览器和node.js中)。在服务端它使用原生 node.js http 模块, 而在客户端 (浏览端) 则使用 X…

利用Ai短视频原创,撸平台流量轻松月入过万!

今天分享一个利用Ai短视频原创,撸平台流量轻松月入过万!当前短视频领域尤其是原创内容的制作,主要可以通过三种方式实现:首先是自行拍摄,这种方式虽然能够确保内容的原创性,但需要一个团队来协作完成拍摄、脚本编写和后…

Samtec AI应用科普 | 人工智能中的互连

【摘要/前言】 现代生活的方方面面都受到了计算机和半导体的影响,但最能吸引公众想象力的莫过于人工智能(AI)和机器学习(ML)的兴起。 【AI推动创新】 虽然人工智能已经存在了一段时间,但最近的技术进步已…

JavaSSM框架项目 在线投票系统(ppt+详细文档)

​ 在线投票管理系统的设计与实现 1.系统需求分析 随着互联网与信息技术的快速发展,计算机已经在各行各业都得到了十分广泛的应用,人们越来越习惯使用计算机来完成各种日常的工作,"无纸化"办公模式成为当前社会的主流.传统的人工投票方式,往往需要将参与投票的人们…