RAG——评测

如何合成RAG测试集?

RAG测试集需要包含以下几个方面:

  • question(问题):想要评估的RAG的问题;
  • ground_truths(真实答案):问题的真实答案;
  • answer(答案):RAG预测的答案;
  • Contexts(上下文):RAG用于生成答案的相关信息列表;
    创建这样的数据集,首先需要生成问题和答案的元组,然后在RAG上运行这些问题已获得预测的结果。

1、生成问题和基准答案(实践中可能会出现偏差)
要生成(问题、答案)元组,我们首先需要准备RAG数据,将其拆分为块,并将其嵌入向量数据库中。完成这些步骤后,我们会指示LLM从指定主题中生成num_questions个问题,从而得到问题和答案元组。

为了从给定的上下文中生成问题和答案,我们需要按照以下步骤操作:
a、选择一个随机块并将其作为根上下文
b、从向量数据库中检索k个相似的上下文
c、将根上下文和其k个相邻上下文的文本连接起来构建一个更大的上下文
d、使用这个大的上下文和num_question在以下的提示模板中生成问题和答案
e、重复以上步骤num_count次,每次改变上下文并生成不同的问题

RAG有哪些评估方法?

主要有两种评估方法来评估RAG的有效性:独立评估和端到端评估;

独立评估

独立评估设计对检索模块和生成模块(即阅读和合成信息)的评估。
生成模块指的是将检索到的文档和查询相结合,形成增强或合成的输入。
评估指标
1、答案相关性(Answer Relevancy)
此指标的目标是评估生成的答案与提供的问题提示之间的相关性。答案如果缺乏完整性或者包含冗余信息,那么其得分将相对较低。这一指标通过问题和答案的结合来进行计算,评分的范围通常在0到1之间,其中高分代表更好地相关性。
2、忠实度(Faithfulness)
这个评价准旨在检查生成的答案在给定上下文中的事实准确性。评估的过程涉及到答案内容与其检索到上下文之间的对比。这一指标也是用一个介于0到1之间的数值表示,其中更好的数值表示答案与上下文之间的一致性更高。
3、上下文精确度(Context Precision)
这一指标评估所有在给定上下文中与基准信心相关的条目是否被正确的排序。理想情况下,所有相关的内容应该出现在排序的前部。这一评价标准同样使用0到1之间的分值来表示,其中较高的得分反应了更高的精确度。
例如命中率(hit rate)、平均排名倒数(MRR)、归一化折扣累积增益(NDCG)、精确度(Precision)
4、答案正确性(Answer Correctness)
该指标主要用于测量生成的答案与实际基准答案之间的匹配程度。这一评估考虑了基准答案和生成答案的对比,其得分也通常在0到1之间,较高的得分表明生成答案与实际答案的一致性更高。

端到端评估

对RAG模型特定输入生成的最终响应进行评估,涉及模型生成的答案与输入查询的相关性和一致性;

  • 无标签的内容评估:
    评价指标:答案的准确性、相关性和无害性
  • 有标签的内容评估:
    评价指标:准确率和精确匹配

RAG有哪些关键指标和能力?

评估RAG子啊不同下游任务和不同检索器中的应用可能会得到不用的结果。然而,一些学术和工程实践已将开始关注RAG的通用评估指标和有效运用所需的能力。

  • 关键指标:集中于三个关键指标:答案的准确性、答案的相似性和上下文的相关性;
  • 关键能力:四项基本能力:抗噪声能力、拒绝无效回答能力、信息综合能力和反事实稳健性;

RAG有哪些评估框架?

在RAG评估框架领域,RAGAS和ARES是比较新的方法。

RAGAS

是一种基于简单手写提示的评估框架,通过这些提示全自动地衡量答案的准确性、相关性和上下文相关性

  • 算法原理
    1、答案忠实度评估:利用大语言模型(LLM)分解答案为多个陈述,检验每个陈述与上下文的一致性。最终,根据支持的陈述数量与总陈述数量的比例,计算出一个“忠实度得分”;
    2、答案相关性评估:使用大语言模型(LLM)创造可能得问题,并分析这些问题与原始问题的相似度。大难相关性得分是通过jisaun所有生成问题与原始问题相似度的平均值得出的。
    3、上下文相关性评估:运用大语言模型(LLM)筛选出直接与问题相关的句子,这些句子占上下文总句子数量的比例来确定上下文相关性得分;

ARES

ARES的目标是自动化评价RAG系统上下文相关性、答案忠实度和答案相关性三个方面的性能。ARES减少了评估成本,通过使用少量的手动标注数据与合成数据,并应用于推理提供统计置信区间,提高了评估的准确性。

  • 算法原理
    1、生成合成数据集:ARES首先使用语言模型从目标语料库中的文档生成合成问题和答案,创还能正负两种样本;
    2、训练大语言模型裁判:然后,ARES对轻量级语言模型进行微调,利用合成数据集训练它们以评估上下文相关性、答案忠实度和答案相关性;
    3、基于置信区间对RAG系统排名:最后,ARES使用这些裁判模型为RAG系统打分,并结合手动标注的验证集,采用PPI方法生成置信区间,从而可靠地评估RAG系统的性能;
### RAG 检索增强生成模型评测的方法与指标 #### 评估框架概述 为了有效评估检索增强生成(Retrieval Augmented Generation, RAG)系统的性能,在探索和优化过程中已经形成了一套综合性的评价体系[^1]。该体系不仅关注最终输出的质量,还重视中间过程中的各个环节表现。 #### 主要评估维度 - **检索效果** - 准确率(Precision): 衡量所选上下文片段中有多少确实有助于提高回复质量。 - 召回率(Recall): 考察对于给定查询而言,系统能否找到所有可能有用的背景资料。 - **生成质量** - 流利度(Fluency): 判断生成的回答是否自然流畅、语法正确。 - 相关性(Relevance): 输出内容应紧密围绕输入问题展开讨论。 - 多样性(Diversity): 防止模式塌缩(Model Collapse),即不同情况下产生的回应不应过分相似。 - **特殊考量因素** - 数据时效性和来源可解释性: 特别针对RAG架构设计初衷提到的问题领域——长尾知识获取及时效性强的信息更新能力;确保每条信息都能追溯到原始出处[^2]。 #### 自动化评估工具和技术 采用自动化手段可以极大简化大规模测试流程并降低成本。其中一种值得关注的技术叫做BARTScore,这是一种基于预训练语言模型(Bidirectional and Auto-Regressive Transformers, BART)开发出来的新型评分机制[^3]。相比传统依赖人工标注的方式,这种方法具有明显的优势: - 不需额外收大量带标签样本; - 更容易适应新场景下的快速迭代需求; - 对于跨语种任务具备更好的泛化潜力。 此外,还有其他一些常用的自动评估方法如BLEU、ROUGE等也可以作为辅助参考,但它们往往更侧重衡量字面匹配程度而非深层次理解力。 ```python from transformers import BartTokenizer, BartForConditionalGeneration import torch def calculate_bartscore(source_texts, target_texts): tokenizer = BartTokenizer.from_pretrained('facebook/bart-large') model = BartForConditionalGeneration.from_pretrained('facebook/bart-large') scores = [] for src, tgt in zip(source_texts, target_texts): inputs = tokenizer(src, return_tensors="pt", max_length=1024, truncation=True) with torch.no_grad(): outputs = model.generate(**inputs) decoded_output = tokenizer.decode(outputs[0], skip_special_tokens=True) score = compute_similarity(tgt, decoded_output) # 假设有一个函数compute_similarity用于计算两个文本之间的相似度得分 scores.append(score) avg_score = sum(scores)/len(scores) return avg_score ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值