上下文是关键
大型语言模型(LLM)是一种生成式人工智能技术,在过去两年中获得了极大的关注。然而,当我们将LLM应用于实际场景时,仍然面临知识局限性和“幻觉”问题。检索增强生成(RAG)通过为LLM提供额外的记忆和上下文来解决这些问题。在2024年,RAG已成为应用生成式AI领域最受欢迎的技术之一。事实上,可以假设任何基于LLM的应用程序都以某种方式使用了RAG。
RAG通过访问非参数化记忆增强了LLM的参数化记忆
图片来源:https://medium.com/the-rag-explorer/7-retrieval-metrics-for-better-rag-systems-f04c098abbe7
RAG评估
通过指标评估超越简单RAG(Naive RAG)
为了让RAG兑现其将LLM响应扎根于数据的承诺,我们需要超越简单的索引、检索、增强和生成的实现。然而,要改进某件事,首先需要衡量其性能。RAG评估有助于为您的RAG系统性能设定基准,以便后续进行优化。
构建一个概念验证(PoC)RAG管道并不复杂。LangChain 和 LlamaIndex 等工具已经使其变得相当简单。通过简短的培训和对有限示例集的验证即可完成。然而,为了提高其鲁棒性,必须在一个能够准确反映生产用例的数据集上进行全面测试。RAG管道可能会产生自身的“幻觉”。从高层次来看,RAG系统有三个主要的失败点:
- 检索器未能检索到完整的上下文,或检索到了无关的上下文;
- 即使提供了上下文,LLM也未考虑它;
- LLM没有回答查询,而是从上下文中选择了无关的信息。
检索质量是RAG管道的第一个可能的失败环节
在这篇文章中,我们将重点介绍一些评估指标,这些指标专注于第一个失败点—— “检索器未能检索到完整的上下文,或检索到了无关的上下文”。 换句话说,这些指标用于评估检索器的质量。
检索指标
评估RAG(检索增强生成)系统的评价指标可以分为三大类:
- 用于信息检索任务的检索指标 (本文重点讨论的内容)
- 生成特定指标 ,如BLEU、ROUGE、METEOR等,这些指标关注生成内容的流畅性,并衡量相关性和语义相似性。
- RAG特定指标 , 随着RAG应用的普及而逐渐发展改变 。
RAG中的检索组件可以独立评估,以判断检索器是否能够很好地满足用户查询需求。接下来,我们将介绍七种流行的指标,它们不仅适用于RAG系统,还广泛应用于搜索引擎、推荐系统等信息检索任务中。
知识库的概念
在RAG中,知识库是一个非常重要的概念。它是一种非参数化的存储器,保存了RAG系统所处理的所有文档。
七大检索指标详解
- 准确率(Accuracy)
准确率通常定义为正确预测的比例(包括真正例和真负例)与总案例数之比。如果你熟悉监督学习中的分类问题,可能已经对这个指标有所了解。在检索和RAG的背景下,它的计算方式如下:
公式:
准确率 = (检索到的相关文档数量 + 未检索到的不相关文档数量) / 知识库中文档总数
虽然准确率是一个简单直观的指标,但它并不是检索任务的主要指标。在大型知识库中,大多数文档通常与任何给定查询无关,这可能导致误导性的高准确率分数。此外,它没有考虑检索结果的排序。
- 精确率(Precision)
精确率关注的是检索结果的质量,衡量检索到的文档中有多少是与用户查询相关的。它回答的问题是:“在所有检索到的文档中,有多少是真正相关的?”
公式:
精确率 = 检索到的相关文档数量 / 总检索文档数量
较高的精确率意味着检索器表现良好,主要返回相关文档。
注意:
精确率也是分类任务中常用的指标,在分类任务中,它被定义为模型预测为正类的样本中实际为正类的比例,即:
精确率 = 真正例 / (真正例 + 假正例)
Precision@k:
这是精确率的一个变体,衡量前“k”个检索结果中相关文档的比例。它特别重要,因为它专注于顶部结果,而不是所有检索到的文档。对于RAG来说,这一点尤为重要,因为只有顶部结果最有可能被用于增强生成。
公式:
Precision@k = 前“k”个结果中的相关文档数量 / k
例如,如果我们的RAG系统考虑前5个文档进行增强,那么Precision@5就变得至关重要。一个Precision@5值为0.8或4/5表示,在前5个结果中,有4个是相关的。
优点:
Precision@k还可以用来比较不同系统,尤其是在不同系统检索结果总数不同的情况下。然而,其局限性在于“k”的选择可能是任意的,且该指标不会考虑超出“k”范围的结果。
- 召回率(Recall)
召回率关注的是检索器的覆盖范围,衡量从知识库中所有相关文档中检索出的相关文档比例。它回答的问题是:“在所有相关文档中,有多少被实际检索到了?”
公式:
召回率 = 检索到的相关文档数量 / 知识库中的相关文档总数
需要注意的是,与精确率不同,召回率的计算需要事先知道相关文档的总数。在拥有大量文档的知识库中,这一点可能会变得具有挑战性。
注意:
与精确率一样,召回率也不考虑检索结果的排序。它可能会产生误导,因为检索知识库中的所有文档会导致完美的召回率值。
Recall@k:
类似于Precision@k,Recall@k衡量的是前“k”个结果中相关文档的比例,相对于知识库中所有相关文档的数量。
公式:
Recall@k = 前“k”个结果中的相关文档数量 / 知识库中的相关文档总数
召回率和准确率的不同场景
- F1分数(F1-score)
F1分数是精确率和召回率的调和平均值,提供了一个平衡质量和覆盖率的单一指标。
公式:
F1-score= 2 x (Precision x Recall) / (Precision + Recall)
f1 分数平衡了准确率和召回率。准确率和召回率都为中等时,其 f1 分数会高于一个值非常高而另一个值非常低的情况。
该公式的特点是,当精确率或召回率较低时,F1分数会被惩罚;只有当两者都较高时,才能获得较高的F1分数。这意味着单靠某一项指标无法使F1分数偏高。
优点:
F1分数提供了一个单一、平衡的度量标准,可以轻松比较不同系统。然而,它不考虑排序,并且对精确率和召回率赋予相同的权重,这可能并不总是理想的。
注意:
“相关”文档:我们讨论的大多数指标都涉及“相关”文档的概念。例如,精确率是通过检索到的相关文档数量除以总检索文档数量来计算的。问题是——如何确定某个文档是相关的?简单的答案是采用人工评估方法。领域专家查看文档并判断其相关性。人工评估会带来主观性,因此通常由专家组而非个人完成。但人工评估在规模和成本上存在限制。任何能够可靠建立相关性的数据都会变得极其有用。
Ground Truth 是已知真实或正确的信息。在RAG和生成式AI领域中,Ground Truth是一组预先准备好的Prompt-Context-Response或Question-Context-Response示例,类似于监督学习中的标注数据。为你的知识库创建的Ground Truth数据可用于评估RAG系统。
前四个指标不考虑文档的排名。它们从整体检索角度评估系统的有效性。接下来的三个指标也会考虑结果的排名。
- 平均倒数排名(MRR, Mean Reciprocal Rank)
MRR特别适用于评估相关文档的排名。它衡量的是第一个相关文档在结果列表中的倒数排名。MRR是针对一组查询计算的。
公式:
MRR= 1/N x [Summation i=1 to N (1/rank(i))]
MRR 考虑排名,但不考虑所有文档
其中,N是查询总数,rank(i)是第i个查询中第一个相关文档的排名。
优点:
MRR特别适合关注系统找到相关文档的速度,并考虑结果的排序。然而,由于它只关注第一个相关结果,因此在多个相关结果重要的场景下可能不够理想。
- 平均精度均值(MAP, Mean Average Precision)
MAP是一种结合了精确率和召回率的指标,它在不同“k”截断水平下计算。首先计算每个查询的平均精度(Average Precision),然后对所有查询取平均值。
公式:
Average Precision (单个查询) = 1/R(i) × [求和 k=1 到 n (Precision@k × 第k个文档的相关性)]
MAP 考虑所有检索到的文档,并给出更高的分数以获得更好的排名
其中,
是查询i的相关文档数量,
是截断“k”时的精确率,rel@k是一个二进制标志,指示第k个文档的相关性。
MAP公式:
MAP= 1/N x [Summation i=1 to N (Average Precision (i)]
优点:
MAP提供了一个跨召回水平的单一质量度量,非常适合关注结果排序的场景,但计算较为复杂。
- 归一化折损累计增益(nDCG, Normalized Discounted Cumulative Gain)
nDCG通过考虑相关文档在结果列表中的位置来评估排序质量,并为出现在前面的相关文档分配更高的分数。它特别适用于文档具有不同程度相关性的场景。
公式:
DCG = 求和 i=1 到 n ((2^rel(i) - 1) /
log
(i+1))
其中,
是位置i处文档的相关性得分。IDCG是理想情况下的DCG,即完美排序的DCG。nDCG是实际DCG与理想DCG的比值。
公式:
nDCG = DCG / IDCG
优点:
nDCG考虑了文档的不同相关程度,并对高排名的项目赋予更高的权重。 然而,它计算复杂,需要为文档分配相关性得分,这可能带来主观性,同时折扣因子的选择会显著影响结果。
总结
检索系统不仅用于RAG,还广泛应用于网络和企业搜索引擎、电商产品搜索、个性化推荐、社交媒体广告检索、档案系统、数据库、虚拟助手等领域。这些检索指标有助于评估和改进性能,从而更好地满足用户需求。
你认为还有哪些指标可以补充到这个列表中呢?欢迎留言告诉大家!
送书福利
为了感谢读者的长期支持,今天我们将送出 三本 由机械工业出版社出版的:《多模态大模型——算法、应用与微调》 。
点击下方小程序参与抽奖, 活动真实有效,免费包邮 ,欢迎大家积极参与!如果抽奖未中,可通过下面链接直接购买!