|
大语言模型在企业内部知识问答中可能会出现幻觉等问题, 检索增强生成(RAG)是减轻大语言模型幻觉的一种有效手段,那如何评估检索增强生成的结果是否准确?如何确定RAG产品是否可用,是否有标准可以判断? RAG智能问答系统介绍:
如何基于向量数据库+LLM(大语言模型)打造企业专属Chatbot?
因此对RAG目前可以使用的评测工具或方法进行调研,从业务角度出发选择合适的评估框架。
RAGAs RAGAs(检索增强生成评估)是一个评估框架,最初是作为一个无参考标准的评估框架而设计,这意味着在评估数据集时,不必依赖人工标注的标准答案,而是通过底层的大语言模型(LLM)来进行评估。整个RAG流程中涉及两个不同的组件:- 检索器组件:为大语言模型从外部数据库中检索额外的上下文,以便回答查询。
在评估RAG流程时候,可以单独对两个组件进行评估,再综合考虑。因此需要考虑两个元素:评估指标和评估数据集评估数据- question(问题):RAG流程的输入,即用户的查询问题;
- answer(答案):由RAG流程生成的答案,也就是输出结果;
- contexts(上下文):为解答question而从外部知识源检索到的相关上下文;
- ground_truths(标准答案):question的标准答案,唯一人工标注的信息。这个信息仅在评估context_racall这一指标才使用;
- 框架同时提供了一些需要依赖真实标签的评估指标和范式。比如 context_recall 和 answer_correctness;
评估指标RAGAs从组件层面和整体流程两个方面评估RAG流程的性能。组件层次RAGAs提供了评价检索组件(包括context_relevancy和context_recall)和生成组件(包含faitfulness和answer_relevancy)的专门指标- 上下文准确度:衡量检索出的上下文有用信息和无用信息的比率。该指标通过分析question和context来计算。
- 上下文召回率:用来评估是否检索到了解问题所需要的全部相关信息。这一指标依据ground_truths和contexts进行计算。
- 真实性:用来衡量生成答案的真实准确度。它通过对比给定上下文正确的陈述和生成答案中总陈述的数据来计算,这一指标结合了question、contexts和answer。
所有指标的评分范围在【0,1】之间,分数越高表示性能越出色。整体流程
Trulens 
主要根据Query(问题),Response(回答),Context(上下文)从以下几个方面进行评估: 评估方式groundedness:主要用于检测LLM幻觉,response是否严格基于召回知识产生,找到response中句子在context中存在的证据,评估回复是否基于知识生成; answer_relevance:主要用于response相关性评估,找到相关的证据并打分,评估是否跟问题相关; 打分标准: 答案必须与整个问题描述相关才能得到 10 分; 与问题描述完全相关的答案应得到 9 或 10 分; 与问题描述大部分相关的答案应得到 5-8 分,分数越高表示相关性越强; 与问题描述部分相关的答案应得到 2、3 或 4 分,分数越高表示相关性越强; 明确错误的答案应得到 0 分;
context_relevance:主要用于知识召回相关性评估,找到相关性证据并打分,评估召回知识是否跟问题相关; Groundtruth :用于 response 准确性评估,使用已有的测试集标准答案进行对比评估,并打分。
- 高引用召回率:即所有生成的内容都有引用(外部知识)的支持;
评估指标- fluency(流畅性):生成的文本是否流畅连贯;
- perceived utility(实用性):生成的内容是否有用;
- citation recall(引文召回率):所生成的内容完全得到引文的支持;
- citation precision(引文精度):引文中支持生成内容的比例;
一个优秀的RAG系统应该在引文召回率和引文精度上获得较高的评分。评估计算方法引文召回率是指:得到引文支持的生成内容/值得验证的生成内容;什么是值得验证,可以简单理解为是生成内容所包含的信息的部分,实践中几乎所有的生成内容都可以看做是值得验证的内容,所以这个召回率可以近似等于:召回率 = 引文支持生成的内容/总的生成内容引文精度是指生成的引文中支持其相关的陈述比例,如果生成的内容为每个生成的语句引用了互联网上的所有网页,那么引文召回率就会很高,但是引文精度很低,因为很多文章都是无关紧要的,并不支持生成内容。精度 = 与特定主题相关的文献梳理/检索到的内容;
|