制作网站建设合肥疫情最新消息
说明:这是我的学习笔记,很多内容转自网络,请查阅文章末尾的参考资料。
文章目录
- RAG
- Ragas
- 评估框架
- 评估维度
- 评估指标
- Faithfulness (忠实度)
- Answer Relevance (答案相关度)
- Context Precision (上下文精确度)
- Context Recall (上下文召回率)
- Context Relevance (上下文相关度)
- Answer Similarity (答案相似度)
- Answer Correctness (答案正确性)
- Aspect Critique (层面评判)
- 参考资料
RAG
RAG (Retrieval-Augmented Generation) 检索增强生成。RAG系统是利用检索的内容以增强LLM生成答案的系统。
Ragas
RAGAS (Automated Evaluation of Retrieval Augmented Generation) 检索增强生成的自动评估。Ragas是一个大模型评测框架,可以评估检索增强生成(RAG)的效果。Ragas可以帮助分析模型的输出,了解模型在给定任务上的表现。
如果我们为某个真实线上系统开发了检索增强生成(RAG)应用,那么在此应用正式上线提供服务前,我们需要评估 RAG 的表现到底是怎样的。如果发现现有的 RAG 效果不够理想,可能需要一些新的 RAG 算法流程来改进。在这之前,就需要对 RAG 流程进行评估,得到评估指标,然后才能进行自动化对比,观察改进的流程是否真的有效。
Ragas 官网
Ragas 安装
pip install ragas
评估框架
RAGAS框架必须的数据源
- Question: 用户所提的问题
- Answer: AI生成的回复
- Contexts: 上下文(也就是检索得到的内容)
可选的数据源
- Ground Truths: 真相(下文简称Truths)人工标注的数据,可以有多个真相对应同一个问题
评估维度
评估指标
Faithfulness (忠实度)
评估的是答案忠实于Contexts的程度,因为LLM有编造回答的能力,在理想的RAG系统中,答案应该全部由提供的Contexts推理而来。
- 用LLM提取Answer中的要点, 设要点的数量为|Sa|
- 用LLM检验这些要点是否可以Contexts中推理而来,设能够推理而来的要点数量为|Va|
- 计算它们的比值: F = |Va| / |Sa|
所需输入: Question(提取要点时会需要用到),Answer, Contexts
是否需要标注: 否
Answer Relevance (答案相关度)
本质上可以视为无标注数据时的Answer Similarity。但因为作法不同,所以它体现的更多的是Answer与Question之间的对齐程度。
- 利用LLM通过答案反推出问题。例如:
- RAG的全称是Retrieval-Augmented Generation是检索增强生成系统。
- 生成的问题1:RAG是什么。
- 生成的问题2:RAG的全程是什么。
- 用embedding模型提取Answer与生成问题的文本语义向量。
- 计算向量间的相似度。
其中: n是生成的问题数量,qi代表第i个生成问题, q代表实际的问题。
所需输入:Question,Answer
是否需要标注: 否
Context Precision (上下文精确度)
评估的是检索到的文档是否对question都有帮助。其实就是有帮助的文档数量与所有被检索出文档数量的比例。它体现的是RAG系统对于文档检索的精准度,会惩罚搜索一大堆没用文档喂给下游的行为。
- 用LLM判断Contexts对Question有帮助的数量,假设该数量为|TP|
- 设所有被检索出的文档数量为k, 计算它们的比值: CP = |TP| / k
所需输入:Question,Contexts
是否需要标注: 否
Context Recall (上下文召回率)
评估的是检索到的文档中包含真相Truths所需要信息的程度。如果为了优化Context Precision把文档删减了很多以至于包含的信息不够了,自然Context Recall便会低。
- 用LLM提取所有Truths中的要点,设要点数量为|St|。 要点(statements): 可以理解为一段描述中关于Question的小段信息。例如:
- 问题:RAG全称是什么。
- 真相:RAG全称Retrieval-Augmented Generation是检索增强生成系统。
- 要点1: Retrieval-Augmented Generation
- 要点2:检索增强生成系统
- 用LLM判断在Contexts能找到对应信息的要点数量,记作|Vt|
- 计算它们的比值: CR = |Vt| / |St|
Context Relevance (上下文相关度)
评估的是检索到的文档中所有的内容是否对Question都有帮助。它与Context Precision的区别是它精确到了文档文本的所有内容。例如有的文档很长,它涉及到的内容很广泛,自然也包含回答问题的信息,所以这篇文档在计算Context Precision时会是一个正例。但是因为这篇文章内容中也包含了其他冗余信息,所以它的Context Relevance不会高。
- 用LLM将所有Contexts分解为句子,设句子数量为|Sc|
- 并判断对Question 有帮助的句子数量,记作|Vc|
- 计算它们的比值: CR = |Vc| / |Sc|
所需输入:Question,Contexts
是否需要标注: 否
Answer Similarity (答案相似度)
Answer Correctness (答案正确性)
Aspect Critique (层面评判)
参考资料
- Rag系统的评估指标与Ragas框架的使用
- 小白学大模型:使用Ragas评价RAG效果
- RAG03-使用RAGAS进行评估
- RAG:系统评估,以RAGAS为例