RAG评估方法-四种方法、两个自动化评估工具,中文/英文RAG评估数据集

这篇具有很好参考价值的文章主要介绍了RAG评估方法-四种方法、两个自动化评估工具,中文/英文RAG评估数据集。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

现有RAG模型的评估主要强调三个主要质量分数和四个基本能力,它们共同决定了RAG模型的两个主要目标的评估:检索和生成。

质量分数:上下文相关性(Context Relevance)、答案真实性(Answer Faithfulness)和答案相关性(Answer Relevance)。

四种能力:噪声鲁棒性(Noise Robustness)、负面拒绝(Negative Rejection)、信息集成(Information Integration)和反事实鲁棒性(Counterfactual Robustness)。

一、Retrieval-Augmented Generation Benchmark

论文名称:Benchmarking Large Language Models in Retrieval-Augmented Generation

论文地址:https://arxiv.org/pdf/2309.01431.pdf

code和数据集:GitHub - chen700564/RGB

(一)评估方法

提出四种需要被评估的能力:

1、噪声鲁棒性(Noise Robustness)

噪声鲁棒性评价模型处理与问题相关但缺乏实质性信息的噪声文件的能力。噪声文档定义为与问题相关但不包含任何相关信息的文档。例如,"问题相关的噪声文档包括有关2021年诺贝尔文学奖的报道。

采用accurary来评估该指标的好坏:如果生成的文本包含与答案完全匹配的文本,则将其视为正确答案。

2、否定拒绝(Negative Rejection)

当检索到的文档不包含回答问题所需的知识时,模型应拒绝回答问题。否定拒绝的测试文档只有噪声实例。LLM预计会发出"信息不足"或其他拒绝信号。

采用rejection rate评估该指标的好坏,当只提供嘈杂的文档时,LLM 应该输出具体内容——“由于文档中的信息不足,我无法回答问题”。(使用prompt来通知模型。如果模型生成此内容,则表示拒绝成功。

3、信息整合(information integration)

评估模型能否回答需要整合多个文档信息的复杂问题。例如,对于"ChatGPTiOS应用程序和ChatGPTapi是什么时候推出的?"这个问题,LLMs应提供iOS上ChatGPT应用程序和ChatGPTAPI的推出日期信息。

采用accurary来评估该指标的好坏:如果生成的文本包含与答案完全匹配的文本,则将其视为正确答案。

4、反事实鲁棒性(CounterfactualRobustness)

该测试评估当通过指令向LLMs发出关于检索信息中潜在风险的警告时,模型能否识别检索文档中已知事实错误的风险。

采用两个率来衡量该指标:Error detection rate和Error correction rate

  1. Error detection rate:衡量模型是否能够检测文档中的事实错误,以实现反事实的稳健性。当提供的文档包含事实错误时,模型应输出具体内容——“提供的文档中存在事实错误”。如果模型生成此内容,则表示模型在文档中检测到错误信息。
  2. Error correction rate:纠错率衡量模型在识别错误后是否能够提供正确的答案,以实现反事实的鲁棒性。模型被要求在识别事实错误后生成正确答案。如果模型生成正确答案,则表明模型能够纠正文档中的错误。

(二)评估数据集

包含中文数据集和英文数据集。

1.数据生成过程:

(1)首先收集最新的新闻文章,并使用提示让 ChatGPT 为每篇文章生成事件、问题和答案。例如,如,对于一篇关于“2022 年诺贝尔奖”的报道,ChatGPT 会生成相应的事件、问题,并提供回答的关键信息。通过生成事件,该模型能够初步过滤掉不包含任何事件的新闻文章。生成后,手动检查答案并过滤掉难以通过搜索引擎检索的数据。

(2)使用搜索引擎检索。对于每个问题,使用 Google 的 API 获取 10 个相关网页,并从中提取相应的文本片段。同时们读取这些网页并将其文本内容转换为最大长度为 300 个token的文本块。使用现有的检索模型,选择最有效地匹配查询的前 30 个文本块。这些将用作我们的外部文档。这些文件将根据它们是否包含答案分为正面文件和反文件。

(3)基于外部文档,分别构建评估4种能力所需的测试集,如从负样本中采样数据作为噪声等。

2.数据分布:

中文/英文 噪声:300条

中文/英文 否定:300条

中文/英文 集合:100条

中文/英文 反事实:100条

二、RAGAS-评价工具

论文名称:RAGAS: Automated Evaluation of Retrieval Augmented Generation

论文地址:https://arxiv.org/pdf/2309.15217.pdf

数据集:1.WikiEval(英文):https://huggingface.co/datasets/explodinggradients/WikiEval;2.amnesty_qa(英文):https://huggingface.co/datasets/explodinggradients/amnesty_qa

工具使用方法:

GitHub - explodinggradients/ragas: Evaluation framework for your Retrieval Augmented Generation (RAG) pipelines

(一)评估方法:

提出三个评估指标:答案真实性(Answer Faithfulness)、答案相关性(Answer Relevance)和上下文相关性(Context Relevance)。

1.答案真实性:评估生成的答案与检索的上下文的一致性,即答案应基于给定的上下文。

计算步骤:

  1. 给定问题和生成的答案,用LLM将答案分成较短且重点更突出的句子;
  2. 给定上下文和第一个部分输出的短句子,依次判断短句子是否出自上下文,输出yes/no;
  3. 计算真实性得分:F=|V|/|S|,其中|V|是第二个步骤输出为“yes”的短句数量,而|S|是语句总数。

2.答案相关性:评估生成的答案与提出的问题是否直接相关。

计算步骤:

  1. 给定生成的 答案,基于该答案内容,用LLM生成n个潜在问题;
  2. 用文本转向量模型(text-embedding-ada-002 model)将问题和潜在问题文本转为向量,计算它们的相似性:
    1. recall: a benchmark for llms robustness against external counterfactual know,人工智能

    其中q为问题,qi为潜在问题。

3.上下文相关性:评估检索上下文的准确性,检索的上下文应重点突出,尽可能少地包含无关信息。

计算步骤:

  1. 给定问题和上下文文本,用LLM从上下文文本中提取有助于回答问题的句子。
  2. 计算得分:

recall: a benchmark for llms robustness against external counterfactual know,人工智能

(二)评估数据集

1.已有数据集

仅包含英文数据集。

WikiEval(该文创建的一个新数据集),共50条:

  1. 选择了 50 个维基百科页面,涵盖了自 2022 年初以来发生的事件;
  2. 使用chatgpt从每个页面中生成问题和回答;
  3. 有两位人工注释者,为生成的数据标注三个指标。

ragas-wikiqa :232条

amnesty_qa:20条

2.创建自己的数据集

三、RECALL

论文名称:RECALL: A Benchmark for LLMs Robustness against External Counterfactual Knowledge

论文地址:https://arxiv.org/pdf/2311.08147.pdf

code和数据集:暂未公开

(一)评估方法

主要是评估反事实知识的鲁棒性,以及它们在没有这些错误的情况下产生正确答案的能力;

涉及到两个任务:

1.Question Answering:每个样本都由一个问题和一个与问题相关的段落组成。对于每个问题,我们将为模型提供两个答案选项。其中一个是正确答案,另一个是在编辑答案文本过程中产生的错误答案。模型被要求从两个选项中选择正确的答案。

采用accuracy指标来评估。

2.Text Generation:在EventKG(数据集)的文本生成中,要求模型用自然语言为结构化格式的样本生成段落。当涉及到UJ(数据集)时,我们要求模型根据简短的描述段落,用一句话返回每个科学术语的定义。

采用BLEU和ROUGE-L指标来评估。BLEU:比较答案文本的n-gram词与参考文本的n-gram词,然后计算匹配的数量,匹配越多,分数越高。ROUGE-L和BLEU类似,使用最长公共子序列。

在评估过程中,会提供以下数据:

1.上下文中和答案相关的文本被替换成错误文本;

2.上下文中和答案不相关的文本被替换成错误文本;

3.不提供上下文。

四、ARES-评价工具

论文名称:ARES: An Automated Evaluation Framework for Retrieval-Augmented Generation Systems

论文地址:https://arxiv.org/pdf/2311.09476.pdf

数据集地址:GitHub - stanford-futuredata/ARES

工具使用方法:https://github.com/stanford-futuredata/ARES

(一)评估方法

评价指标和RAGAS相同:上下文相关性,答案真实性和答案相关性。

计算步骤(注意:在正式使用时,步骤(1)和(2)可跳过):

  1. 数据集准备:i.用于评估标准(例如上下文相关性、答案忠实度和/或答案相关性)的带注释的查询、文档和答案三元组的人类偏好验证集。应该有至少50个例子,建议几百个。ii.一组简短的示例,用于在系统中对上下文相关性、答案忠实度和/或答案相关性进行评分。ii.未标记查询-文档-答案三元组,即需要评估的rag数据。
  2. 3个评估模型的微调:针对三个评估指标分别用数据微调LLM模型,使用二元分类训练目标对正面和负面示例进行分类。
  3. 使用 prediction-powered inference对不同的 RAG system 进行排名(其他论文提出的方法,是一个框架。通过利用对更大的一组未注释数据点的预测来收紧对一小组注释数据点(即人类偏好验证集)的预测的置信区间)。PPI 可以利用标记数据点和 ARES 对未注释数据点的判断预测,为 RAG 系统的性能构建更严格的置信区间。

(二)评估数据集

仅包含英文数据集。

Natural Questions (NQ):7条

HotpotQA:5条

FEVER:6条

Wizards of Wikipedia(WoW):6条

MultiRC:4条

ReCoRD::9条

gold_label_path.tsv:206

Rag评估方法:

(一)、数据集:

(1)RGB中的中文数据集,约500条;

(2)RAGAS(约300条)和ARES中的英文数据集(约243条),可使用chatgpt/gpt4进行机翻;

(3)nlp阅读理解数据集,例如DRCD、cmrc2018、chinese-squad、中医数据集、法研杯2019、莱斯杯机器阅读理解、疫情QA、WebQA、Dureader。需要二次梳理。

(二)评估方法:

评估检索的质量和生成的质量:三个质量分数和四个基本能力。上下文相关性和噪声鲁棒性对于评估检索质量很重要,而答案忠实性、答案相关性、负面拒绝、信息整合和反事实鲁棒性对于评估生成质量很重要。文章来源地址https://www.toymoban.com/news/detail-854182.html

到了这里,关于RAG评估方法-四种方法、两个自动化评估工具,中文/英文RAG评估数据集的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 自动化测试工具Selenium的基本使用方法,软件测试基础

    browser.find_element(By.ID,‘kw’).send_keys(“美女”) browser.find_element_by_id(‘kw’).send_keys(‘性感’) 2.通过标签name属性进行定位 browser.find_element_by_name(“wd”).send_keys(“Linux”) browser.find_element(By.NAME,‘wd’).send_keys(“美女”) 3.通过标签名进行定位 browser.find_element_by_tag_name(“input”).

    2024年04月22日
    浏览(63)
  • python接口自动化(十)--post请求四种传送正文方式(详解)

    post请求我在python接口自动化(八)--发送post请求的接口(详解)已经讲过一部分了,主要是发送一些较长的数据,还有就是数据比较安全等。我们要知道post请求四种传送正文方式首先需要先了解一下常见的四种编码方式: HTTP 协议规定 POST 提交的数据必须放在消息主体(e

    2024年02月04日
    浏览(50)
  • “Linux免除系统交互操作方法、expect自动化交互工具” 及 “SSH批量修改主机密码脚本”

    案例:为机器磁盘进行分区并实现挂载,免交互式操作,如何实现? 注意:有些命令的交互操作提示是不算在标准输出和错误输出中的,此时该方法不适用 注意:命令的交互操作提示是不算终端窗口的,此时该方法不适用 一. expect 简介 expect 工具是一个根据脚本与其他交互

    2024年02月08日
    浏览(56)
  • 自动化测试工具Selenium的基本使用方法,面试字节跳动的前端工程师该怎么准备

    8.小结 上述均可以改写成find_element(By.ID,‘kw’)的形式 find_elements_by_xxx的形式是查找到多个元素,结果为列表 import time from selenium import webdriver#驱动浏览器 from selenium.webdriver import ActionChains #滑动 from selenium.webdriver.common.by import By #选择器 from selenium.webdriver.common.by import By #按照什

    2024年04月16日
    浏览(45)
  • 自动化工具 WEB 自动化工具

    使用自动化测试框架编写用例的时候,维护元素信息以及脚本较为麻烦。对应新手来说,编写脚本的能力有限,使用工具会更容易入手。最重要的是可视化操作让我觉得体验舒服。 地址:hippo 账号:test 密码:A123456. 首次访问稍慢一些 已有 demo 例子,由于部署在服务器,只能

    2024年02月01日
    浏览(38)
  • python自动化测试- 自动化框架及工具

    手续的关于测试的方法论,都是建立在之前的文章里面提到的观点: 功能测试不建议做自动化 接口测试性价比最高 接口测试可以做自动化 后面所谈到的  测试自动化  也将围绕着  接口自动化  来介绍。 本系列选择的测试语言是 python 脚本语言。由于其官方文档已经对原理

    2024年02月22日
    浏览(64)
  • 自动化测试及典型开源的自动化测试工具

    目录 前言: 自动化测试 自动化测试的意义 手工测试的局限性 自动化测试带来的好处 自动化测试的前提条件 自动化测试的方法 自动化测试的不足 自动化测试的应用方向 典型开源的自动化测试工具 自动化测试是一种使用软件工具和脚本来执行测试任务的方法,以取代手动

    2024年02月13日
    浏览(71)
  • 让所有GUI都自动化-PyAutoGUI(GUI自动化工具)

    目录 1、前言 2、简介 3、安装 4、常用函数 5、保护措施 6、鼠标函数 7、键盘函数 8、消息弹窗函数 9、截屏函数 ‍10、示例 在使用 Selenium 进行自动化测试时,鼠标事件可以用 ActionChains 类,键盘事件可以用 Keys 类。本篇将介绍一款自动化工具-PyAutoGUI,除了可以满足鼠标、键

    2024年02月11日
    浏览(36)
  • 如何使用Python自动化测试工具Selenium进行网页自动化?

    Selenium 是一个流行的Web自动化测试框架, 它支持多种编程语言和浏览器,并提供了丰富的API和工具来模拟用户在浏览器中的行为 。 Selenium可以通过代码驱动浏览器自动化测试流程,包括页面导航、元素查找、数据填充、点击操作等。 与PyAutoGUI和AutoIt相比, Selenium更适合于处

    2023年04月09日
    浏览(120)
  • 如何实现WinApp的UI自动化测试?自动化工具如何选择人?

    WinApp(WindowsAPP)是运行在Windows操作系统上的应用程序,通常会提供一个可视的界面,用于和用户交互。例如运行在Windows系统上的Microsoft Office、PyCharm、Visual Studio Code、Chrome,都属于WinApp。常见的WinApp,其扩展名基本都是*.exe,运行后也都会有一个漂亮、易用的UI界面,本章就

    2024年02月04日
    浏览(63)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包