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]中的下图展示了各个需求对应的指标:
接下来介绍常见指标的定义。首先是机器学习常见指标:
- 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的基础能力。
- RGB
- 开源地址:https://github.com/chen700564/RGB
- 问答对形式,1000个问题,600个基础问题,200个专门面向信息集成的问题,200个专门面向反事实鲁棒性的问题。一半中文一半英文。
- 从互联网和新闻中搜寻文档,利用编码模型m3e(中文)和mpnet(英文)进行重排。
- 评估模型:ChatGPT,ChatGLM,Vicuna-7B,Qwen-7B,BELLE-7B-2M
- 结论:对于噪声鲁棒性,随着噪声文档的增加(即不相关文档数量增加),RAG的性能逐渐下降;负排斥,信息集成,反事实鲁棒性对于RAG都很困难,提升空间都很大。
- 关注RAG的整体
- RECALL
- 问答对形式,每个问题的提示都含有一段包含错误内容的文本,有的文本修改答案文本,有的文本修改非答案文本。模型被提供正确和错误答案两个选项。
- 评估模型:ChatGLM2,Llama2,Vicuna,Baichuan2
- 结论:模型很容易被错误的上下文误导,且内在知识和上下文矛盾时很容易产生质量较低的回复。通过提示词优化与推理干预方法没法很好的解决,需要设计更好的方法。
- 只关注生成。
工具·
最先进的自动化工具有RAGAS[6],ARES[7]和Trulens[11],使用LLM来自动评估。这部分工作主要以和人类的标注对齐为主要贡献,没有给出不同方法的对比。
- RAGAS
- 开源地址:https://github.com/explodinggradients/ragas
- 创建了WikiEval数据集:https://huggingface.co/datasets/explodinggradients/WikiEval。根据50个wiki页面提示ChatGPT得到问题和答案。
- 提示ChatGPT的方式评估,实验表明人类标注和RAGAS提出的标注方式的结果基本一致。
- 评估目标包含上下文相关性,答案诚实性,答案相关性。
- 关注RAG整体
- ARES
- 开源地址:https://github.com/stanford-futuredata/ARES
- 和RAGAS的评估目标一致。训练一个小型LM来进行评估。
- 包含KILT和SuperGLUE中的6个不同的知识密集型任务。
- 关注RAG整体
- Trulens
- 开源地址:https://github.com/truera/trulens
- 和RAGAS的评估目标一致。
- 关注RAG整体
3.结论·
[1]中的下图展示了各个基准或工具的相应评估目标,其中Evaluation Targets代表是哪个方面的质量,Evaluation Aspects代表是哪个方面的需求。个人认为,综合易用性和全面性,比较适合用于学术评估的是RGB和RAGAS。TruLens含有对向量数据库的支持,ARES需要对特定领域进行打分器训练后再评估,可以考虑根据不同用途选用这两个工具进行评估。
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/