RAG

RAG理论-第二篇-评估

Posted by BUAADreamer on 2024-01-15
Words 2k and Reading Time 8 Minutes
Viewed Times

RAG理论-第二篇-评估·

0.前言·

本系列以同济大学的检索增强生成(RAG)综述[1],ACL2023 检索增强语言模型(RALM) Tutorial[2]作为参考材料,讲解RAG的前世今身,包含概述,评估方法,检索器,生成器,增强方法,多模态RAG等内容。

本篇为评估篇,介绍RAG的评估目标以及常见的基准和工具

1.评估目标·

质量·

一般从检索质量生成质量两方面进行评估。

检索质量·

首先需要评估数据,可以采用现有信息检索数据集或用LLM构造自己领域的专属数据集,对每个查询-文档对都需要标注是否相关,或者相关程度

一般采用搜索引擎,推荐系统和信息检索系统中的指标来衡量RAG检索效果。比如Hit Rate(类似Recall@K),MRR,NDCG[3]。

生成质量·

生成质量评估可以根据生成内容的目标来分类,即无标签的和有标签。对于无标签内容,主要从生成答案的诚实性,相关性和无害性来评估。对于有标签内容,可以从生成内容的准确性来评估。检索和生成质量都可以用人工自动评估方法[4,5]。

需求·

质量需求·

包含上下文相关性,答案诚实性和答案相关性[6,7,8]。

  • 上下文相关性:检索到的文档的准确性和特异性,确保相关性,尽量降低无关内容的处理成本。(检索

  • 答案诚实性:生成的答案相对于检索到的上下文保持真实和一致。(生成

  • 答案相关性:生成的答案和用户提出问题相关,有效地解决核心问题。(生成

能力需求·

包含四个方面的能力用来评估RAG的适应性和效率[9,10]:

  • 噪声鲁棒性:模型管理和问题相关缺乏足够信息的文档的能力。(检索
  • 负排斥:当检索到的文档不包含回答问题所必需的知识时,模型是否能够拒绝回答。(生成
  • 信息集成:从多个文档中综合信息来解决复杂问题能力。(生成
  • 反事实鲁棒性:测试模型识别和忽略文档中不准确信息的能力,即使已经被要求使用错误信息。(检索

评价指标·

[1]中的下图展示了各个需求对应的指标:

image-20240115225401879

接下来介绍常见指标的定义。首先是机器学习常见指标:

  • Accuracy:正确识别正负样本的比例(即考虑每个样本的预测是否正确)。$accuracy=\frac {TP+TN} {P+N}$
  • Recall:正确识别正样本的比例。(即所有的正样本被召回的比例)。$recall=\frac {TP} {TP+FN}$
  • Precision预测为正样本的样本中确实为正样本的比例(只考虑预测为正样本的这一部分)。$precision=\frac {TP} {TP+FP}$
  • F分数:$F_\beta=\frac {(1+\beta^2)\times precision\times recall} {\beta^2\times precision + recall}$

之后是一些常见的推荐/检索指标:

  • EM(Exact Match):常用于问答系统,预测中和正确答案(ground truth answers)完全匹配的百分比
  • MRR(mean reciprocal rank):评估排序性能,每个rank表示这个query对应的target文档在候选文档中的排序。$MRR=\frac 1 Q \sum_{i=1}^Q\frac 1 {rank_i}$
  • Cosine Similarity:两个文档的表征的余弦相似度
  • MAP:AP的平均值。AP可以被简单定义为:如果某个查询有K个相关文档,返回结果中这K个文档的排序为$rank_i$(从小到大),则$AP=\sum_{i=1}^K\frac i {rank_i}$,MAP是多个查询的AP的平均值。
  • NDCG
    • $NDCG=DCG/IDCG$
    • $DCG=\sum_{i=1}^k\frac {rel(i)} {log_2 (i+1)}$ $rel(i)$代表返回列表中第i个文档与查询的相关程度
    • $IDCG$代表最理想的返回列表的$DCG$结果,即按照$rel(i)$从高到低排序。
  • Hit Rate(Recall@K):对每个查询返回的前K个文档中含有正确文档的比例

2.评估基准与工具·

基准·

主流的基准有RGB[9]和RECALL[10],侧重评估RAG的基础能力。

  1. RGB
    • 开源地址:https://github.com/chen700564/RGB
    • 问答对形式,1000个问题,600个基础问题,200个专门面向信息集成的问题,200个专门面向反事实鲁棒性的问题。一半中文一半英文。
    • 从互联网和新闻中搜寻文档,利用编码模型m3e(中文)和mpnet(英文)进行重排。
    • 评估模型:ChatGPT,ChatGLM,Vicuna-7B,Qwen-7B,BELLE-7B-2M
    • 结论:对于噪声鲁棒性,随着噪声文档的增加(即不相关文档数量增加),RAG的性能逐渐下降;负排斥,信息集成,反事实鲁棒性对于RAG都很困难,提升空间都很大。
    • 关注RAG的整体
  2. RECALL
    • 问答对形式,每个问题的提示都含有一段包含错误内容的文本,有的文本修改答案文本,有的文本修改非答案文本。模型被提供正确和错误答案两个选项。
    • 评估模型:ChatGLM2,Llama2,Vicuna,Baichuan2
    • 结论:模型很容易被错误的上下文误导,且内在知识和上下文矛盾时很容易产生质量较低的回复。通过提示词优化推理干预方法没法很好的解决,需要设计更好的方法。
    • 只关注生成

工具·

最先进的自动化工具有RAGAS[6],ARES[7]和Trulens[11],使用LLM来自动评估。这部分工作主要以和人类的标注对齐为主要贡献,没有给出不同方法的对比。

  1. RAGAS
    • 开源地址:https://github.com/explodinggradients/ragas
    • 创建了WikiEval数据集:https://huggingface.co/datasets/explodinggradients/WikiEval。根据50个wiki页面提示ChatGPT得到问题和答案。
    • 提示ChatGPT的方式评估,实验表明人类标注和RAGAS提出的标注方式的结果基本一致。
    • 评估目标包含上下文相关性,答案诚实性,答案相关性。
    • 关注RAG整体
  2. ARES
    • 开源地址:https://github.com/stanford-futuredata/ARES
    • 和RAGAS的评估目标一致。训练一个小型LM来进行评估。
    • 包含KILT和SuperGLUE中的6个不同的知识密集型任务。
    • 关注RAG整体
  3. Trulens
    • 开源地址:https://github.com/truera/trulens
    • 和RAGAS的评估目标一致。
    • 关注RAG整体

3.结论·

[1]中的下图展示了各个基准或工具的相应评估目标,其中Evaluation Targets代表是哪个方面的质量,Evaluation Aspects代表是哪个方面的需求。个人认为,综合易用性和全面性,比较适合用于学术评估的是RGB和RAGAS。TruLens含有对向量数据库的支持,ARES需要对特定领域进行打分器训练后再评估,可以考虑根据不同用途选用这两个工具进行评估。

image-20240115231628173

4.引用·

[1]Gao Y, Xiong Y, Gao X, et al. Retrieval-augmented generation for large language models: A survey[J]. arXiv preprint arXiv:2312.10997, 2023.

[2]Asai A, Min S, Zhong Z, et al. Retrieval-based language models and applications[C]//Proceedings of the 61st Annual Meeting of the Association for Computational Linguistics (Volume 6: Tutorial Abstracts). 2023: 41-46.

[3]Isabelle Nguyen. Evaluating rag part i: How to evaluate document retrieval. https://www.deepset.ai/blog/rag-evaluation-retrieval, 2023.

[4]Tian Lan, Deng Cai, Yan Wang, Heyan Huang, and Xian-Ling Mao. Copy is all you need. In The Eleventh International Conference on Learning Representations, 2022.

[5]Quinn Leng, Kasey Uhlenhuth, and Alkis Polyzotis. Best practices for llm evaluation of rag applications. https://www.databricks.com/blog/LLM-auto-eval-best-practices-RAG, 2023.

[6]Es S, James J, Espinosa-Anke L, et al. Ragas: Automated evaluation of retrieval augmented generation[J]. arXiv preprint arXiv:2309.15217, 2023.

[7]Saad-Falcon J, Khattab O, Potts C, et al. Ares: An automated evaluation framework for retrieval-augmented generation systems[J]. arXiv preprint arXiv:2311.09476, 2023.

[8]Colin Jarvis and John Allard. A survey of techniques for maximizing llm performance. https://community.openai.com/t/openai-dev-day-2023-breakout-sessions/505213#a-survey-of-techniques-for-maximizing-llm-performance-2, 2023.

[9]Chen J, Lin H, Han X, et al. Benchmarking large language models in retrieval-augmented generation[J]. arXiv preprint arXiv:2309.01431, 2023.

[10]Liu Y, Huang L, Li S, et al. RECALL: A Benchmark for LLMs Robustness against External Counterfactual Knowledge[J]. arXiv preprint arXiv:2311.08147, 2023.

[11]https://www.trulens.org/trulens_eval/core_concepts_rag_triad/