RAG 效果评估

16
0
0
2024-03-06

RAG 效果评估

RAG模块拆分

代入产品经理需求沟通的视角回顾下:

  • 改写(Query Rewriting):优化查询以便更好地与检索系统交互。机器人也需要做需求分析,改写约等于产品经理的需求分析,让你更好的理解用户的需求,需要做背景调研等工作。

  • 检索(Retrieval):从一个大型的文档集合中找到与改写后的查询相关的信息。了解用户的需求后,需要检索一下产品经理自己的经验库,检索出 A、B、C 功能设计方案。

  • 排序(Ranking):对检索到的文档或信息进行评分,以确定它们的相关性。方案给了,那么要做一些排序,可能 C 方案是最优的,排序=C>A>B。

  • 生成(Generation):基于排序后的文档生成人类般自然的语言回答。然后方案确认后,需要生成需求文档进行业务评审了,业务(甲方爸爸)点头的话,甲方爸爸点赞后,产品经理就完成了这一轮次和甲方爸爸的对话了,可以接下一个需求了。如果甲方爸爸不满意,那么就要重新再从改写开始下一个轮次的 battle。

每次接触新概念的时候不要害怕,一下子觉得毫无头绪,如上述这个小技巧一样,可以把哪些看起来很陌生的名词,做一些转化,比如熟悉的产品经理需求沟通流程,先和这些陌生概念通过熟悉的方式交朋友,虽然这样的方式有时候会存在概念理解不够精准的情况,但是只要你对这个概念使用得足够多次,那么自然对概念的理解更为精准了,也是一步步迭代的过程。

各个模块的指标和指标的具体执行

改写模块

  1. 准确率 (Accuracy)

  • 指标解释:准确率衡量改写的 Query 是否准确捕捉了原始 Query 的意图。

  • 判断方法及计算:准确率可以通过人工评估获得,即由人类专家比较原始 Query 和改写 Query,并评分其准确性。此外,也可以使用自动化的语义相似度评估工具,如使用预训练的 BERT 模型进行语义编码,然后计算原始和改写 Query 之间的余弦相似度。

  1. 完整性 (Completeness)

  • 指标解释:衡量改写后的 Query 是否包含了执行搜索所需的所有关键信息。

  • 判断方法及计算:可以通过将改写的 Query 输入到搜索系统中,并检查返回的结果是否全面覆盖了用户的信息需求。具体的自动化方法可能包括从改写的 Query 中提取实体和概念,并与原始 Query 的实体和概念进行对比,确保关键信息未丢失。

  1. 语法正确性 (Grammatical Correctness)

  • 指标解释:评估改写的 Query 在语法上是否正确无误。

  • 判断方法及计算:自动化工具如语言检测工具(Grammarly API)或自然语言处理工具(如SpaCy或NLTK)可以用来检测和评分改写 Query 的语法正确性。

  1. 流畅度 (Fluency)

  • 指标解释:评估改写的 Query 是否在自然语言处理上流畅。

  • 判断方法及计算:可以通过使用统计语言模型来计算改写 Query 的困惑度(Perplexity)。Perplexity 越低,流畅度越高。此外,也可以利用GPT等语言模型生成的文本作为参考标准,通过专家评分来衡量流畅度。

  1. 查询效果 (Query Effectiveness)

  • 指标解释:衡量改写的 Query 是否能够有效地提升检索系统返回相关结果的能力。

  • 判断方法及计算:可以通过A/B测试,比较使用原始 Query 和改写 Query 对搜索引擎进行查询时,返回结果的相关性。相关性可以通过点击率(Click-Through Rate, CTR)或者用户满意度调查来衡量。

检索模块

  1. 准确率 (Precision)

  • 指标解释:衡量检索到的结果中有多少是相关的。

  • 判断方法及计算

    • 自动化计算Precision = (检索到的相关文档数量) / (检索到的文档总数)

    • 工具/模型:可以使用测试集(已知哪些文档是相关的)来自动计算准确率。

  1. 召回率 (Recall)

  • 指标解释:衡量检索系统能够找到多少比例的所有相关文档。

  • 判断方法及计算

    • 自动化计算Recall = (检索到的相关文档数量) / (数据库中所有相关文档的数量)

    • 工具/模型:需要一个带有标记的数据集来评估召回率。

  1. F1 分数 (F1 Score)

  • 指标解释:准确率和召回率的调和平均,是一个综合指标。

  • 判断方法及计算

    • 自动化计算F1 Score = 2 * (Precision * Recall) / (Precision + Recall)

    • 工具/模型:同样依赖于测试集的正确标注。

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

  • 指标解释:考虑到排名的准确率的平均值,对于每个查询,计算其精度@k的平均值,然后对所有查询求平均。

  • 判断方法及计算

    • 自动化计算:计算每个查询的平均精确率,然后对所有查询结果的平均精确率取平均。

    • 工具/模型:需要一个标注好的测试集,以及一个能够处理排名和相关性评分的评估工具。

排序模块

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

  • 指标解释:对于一系列查询,MAP 计算每个查询的平均精确率(AP),然后计算所有查询的 AP 的平均值。

  • 计算方法

    • 对于每个查询,按照文档的相关性和排名计算精确率。

    • 对每个查询点的精确率求平均,得到 AP。

    • 对所有查询的 AP 求平均,得到 MAP。

  1. 正确率@K (Precision@K)

  • 指标解释:在前 K 个检索结果中,有多少是相关的。

  • 计算方法

    • Precision@K = (前 K 个文档中相关文档的数量) / K

  1. 召回率@K (Recall@K)

  • 指标解释:在前 K 个检索结果中,检索到的相关文档的数量占总相关文档数量的比例。

  • 计算方法

    • Recall@K = (前 K 个文档中相关文档的数量) / (数据库中所有相关文档的数量)

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

  • 指标解释:在一组查询中,每个查询的第一个相关文档的排名倒数的平均值。

  • 计算方法

    • 对于每个查询,找到第一个相关文档的排名。

    • 计算该排名的倒数。

    • 对所有查询的倒数求平均,得到 MRR。

  1. NDCG (Normalized Discounted Cumulative Gain)

  • 指标解释:考虑到文档的相关性和它们在排名中的位置,NDCG 是一个衡量排名质量的指标。

  • 计算方法

    • 计算每个位置的折扣累积增益(DCG)。

    • 对 DCG 进行归一化处理,得到 NDCG。

  1. 排名损失 (Ranking Loss)

  • 指标解释:在多标签排序问题中,衡量模型预测的排名与真实排名之间的平均配对损失。

  • 计算方法

    • 对于每对文档,如果相关文档的排名低于不相关文档的排名,则计数。

    • 计算所有不正确配对的比例。

  1. 错误发现率 (Error Discovery Rate, EDR)

  • 指标解释:在某个截断点 K 时,错误排名的文档数量与前 K 个文档总数的比例。

  • 计算方法

    • EDR@K = (前 K 个文档中错误排名的数量) / K

这些指标可以使用自动化的信息检索评估工具或自定义脚本来计算,通常需要一个带有标记的测试集来确定哪些文档是相关的。在实际应用中,根据业务需求和特定场景选择最合适的指标。例如,如果用户更关心顶部的搜索结果,那么 Precision@K 和 NDCG 可能是更合适的指标。如果用户期望系统能检索到所有相关文档,那么 MAP 和 Recall@K 可能更为重要。

生成模块

1. BLEU (双语评估替补)

  • 指标解释:BLEU 比较机器生成的文本与一个或多个参考文本之间的重叠度,通常用于评估机器翻译质量。

  • 计算方法

    • 从机器翻译的文本中提取 n-grams,并计算这些 n-grams 与参考翻译中 n-grams 的匹配度。

    • 对各个 n-gram 计算精确度,并计算这些精确度的加权平均值。

    • 为避免短句偏好问题,引入长度惩罚因子。

2. ROUGE (召回率取向摘要评估)

  • 指标解释:ROUGE 用于评估自动文本摘要或机器翻译的质量,通过衡量生成的摘要或翻译与一组参考摘要之间的重叠度。

  • 计算方法

    • ROUGE-N:计算 n-grams 的召回率,即参考摘要中出现的 n-grams 在生成摘要中的频率。

    • ROUGE-L:基于最长公共子序列(LCS),衡量生成文本与参考文本之间的序列相似度。

    • ROUGE-S:基于跳跃的二元组(skip-bigram)来计算相似性。

3. METEOR (度量评估翻译编辑率)

  • 指标解释:METEOR 考虑了同义词和句法结构,是对 BLEU 的改进,更能反映人类翻译质量评价。

  • 计算方法

    • 对齐生成文本和参考文本中的单词,考虑同义词和词形变化。

    • 计算对齐单词的精确度和召回率,并计算它们的调和平均值。

    • 根据对齐的单词顺序,引入惩罚因子来计算最终分数。

4. Perplexity (困惑度)

  • 指标解释:困惑度是评估语言模型性能的一个指标,衡量模型预测样本的能力。

  • 计算方法

    • 使用语言模型计算测试集中每个词的条件概率。

    • 计算整个测试集的概率的对数似然。

    • 对这个对数似然取负值,然后求平均,并指数化。