大语言模型在企业内部知识问答中可能会出现幻觉等问题, 检索增强生成(RAG)是减轻大语言模型幻觉的一种有效手段,那如何评估检索增强生成的结果是否准确? 如何确定RAG产品是否可用,是否有标准可以判断?
RAG智能问答系统介绍:
如何基于向量数据库+LLM(大语言模型)打造企业专属Chatbot?
因此对RAG目前可以使用的评测工具或方法进行调研,从业务角度出发选择合适的评估框架。
01
—
RAGAs
-
检索器组件:为大语言模型从外部数据库中检索额外的上下文,以便回答查询。 -
生成器组件:基于大模型结合检索信息来生成答案。
评估数据
-
question(问题):RAG流程的输入,即用户的查询问题; -
answer(答案):由RAG流程生成的答案,也就是输出结果; -
contexts(上下文):为解答question而从外部知识源检索到的相关上下文; -
ground_truths(标准答案):question的标准答案,唯一人工标注的信息。这个信息仅在评估context_racall这一指标才使用; -
框架同时提供了一些需要依赖真实标签的评估指标和范式。比如 context_recall 和 answer_correctness;
评估指标
组件层次
-
上下文准确度:衡量检索出的上下文有用信息和无用信息的比率。该指标通过分析question和context来计算。 -
上下文召回率:用来评估是否检索到了解问题所需要的全部相关信息。这一指标依据ground_truths和contexts进行计算。 -
真实性:用来衡量生成答案的真实准确度。它通过对比给定上下文正确的陈述和生成答案中总陈述的数据来计算,这一指标结合了question、contexts和answer。 -
答案相关度:评估生成答案与问题的关联程度。
整体流程
02
—
Trulens

主要根据Query(问题),Response(回答),Context(上下文)从以下几个方面进行评估:
-
Response 是否跟 query 相关;
-
Context(召回的知识)是否跟 query 相关;
-
Response 是否严格基于 Context 作答;
-
如有提供标准答案,还可以跟标准答案做对比;
评估方式
groundedness:主要用于检测LLM幻觉,response是否严格基于召回知识产生,找到response中句子在context中存在的证据,评估回复是否基于知识生成;
-
打分标准:
-
支持证据:选择与陈述完全相同且未改变的句子,如果没有匹配项,请说“NOTHING FOUND”;
-
分数:输出一个介于 0 到 10 之间的数字,其中 0 表示没有信息重叠,10 表示所有信息都重叠
answer_relevance:主要用于response相关性评估,找到相关的证据并打分,评估是否跟问题相关;
-
打分标准:
-
答案必须与整个问题描述相关才能得到 10 分;
-
与问题描述完全相关的答案应得到 9 或 10 分;
-
与问题描述大部分相关的答案应得到 5-8 分,分数越高表示相关性越强;
-
与问题描述部分相关的答案应得到 2、3 或 4 分,分数越高表示相关性越强;
-
明确错误的答案应得到 0 分;
context_relevance:主要用于知识召回相关性评估,找到相关性证据并打分,评估召回知识是否跟问题相关;
-
打分标准:将 0 到 10 之间的数字作为回答,0 表示最不相关,10 表示最相关;
Groundtruth :用于 response 准确性评估,使用已有的测试集标准答案进行对比评估,并打分。
-
打分标准:根据与正确答案的接近程度,回答只能使用 1 到 10 之间的整数。
03
—
-
高引用召回率:即所有生成的内容都有引用(外部知识)的支持; -
高引用精准度:即每个引用是否真的支持生成内容;
评估指标
-
fluency(流畅性):生成的文本是否流畅连贯; -
perceived utility(实用性):生成的内容是否有用; -
citation recall(引文召回率):所生成的内容完全得到引文的支持; -
citation precision(引文精度):引文中支持生成内容的比例;
评估计算方法
-
识别生成内容中值得验证的部分; -
评估每个值得验证的内容是否得到相关引文支持;


