[论文阅读] |RAG评估_Retrieval-Augmented Generation Benchmark

写在前面

检索增强能够有效缓解大模型存在幻觉和知识时效性不足的问题,RAG通常包括文本切分、向量化入库、检索召回和答案生成等基本步骤。近期组里正在探索如何对RAG完整链路进行评估,辅助阶段性优化工作。上周先对评估综述进行了初步的扫描,本篇分享其中一份评估benchmark,RGB。

论文:https://arxiv.org/abs/2309.01431
代码和数据:https://github.com/chen700564/RGB

RAG评估benchmark-RGB

      • 写在前面
      • 1. 核心思想
      • 2. 评估维度和方式
      • 3. 评估数据构建
      • 4. 评估指标
      • 5. 实验和结论
        • 设置
        • 5.1 噪声鲁棒性
        • 5.2 拒绝能力
        • 5.3 信息整合能力
        • 5.4 反事实鲁棒性
      • 6. 总结


 

1. 核心思想

  • 检索增强生成(RAG)是有效的消除大模型幻觉的方法,但已有工作缺乏RAG对不同大模型影响的评估
  • 因此构建检索增强生成的基准(Benchmark)RGB,并设计4个维度的评估,包括(1)噪声鲁棒性(2)拒绝能力(3)信息整合能力(4)反事实鲁棒性
     

2. 评估维度和方式


 

3. 评估数据构建

  • 主要包括4个步骤:

 
  • 具体如下:

 

最终构建数据量600个基本问题+200个扩展的整合问题+200个反事实问题;300中文、300英文
 

4. 评估指标

评估的是大模型的响应,特定的响应(拒绝、发现错误)是写在prompt里的

  • 准确率:评估噪声鲁棒性和信息整合能力,与答案精确匹配
  • 拒绝比例:评估拒绝能力,根据生成的响应含有"I can not answer the question because of the insufficient information in documents."
  • 错误检测比例:评估反事实鲁棒性,根据生成的响应"There are factual errors in the provided documents.
  • 错误矫正比例:评估识别到错误信息后是否可以生成正确响应
     

5. 实验和结论

设置
  • 每个问题设置5个候选文档(300tokens/个),噪声文档比例[0,0.8]随机
  • 6个LLM:ChatGPT (OpenAI 2022) ChatGLM-6B (THUDM 2023a), ChatGLM2-6B (THUDM2023b), Vicuna-7b-v1.3 (Chiang et al. 2023), Qwen-7BChat(QwenLM 2023), BELLE-7B-2M (Yunjie Ji 2023)
  • prompt:

 
5.1 噪声鲁棒性

当输入给大模型的候选文档中包含1到多篇噪声文档(与问题相关但不能回答)时,评估大模型抵抗噪声干扰的能力


 

随着含噪声文档的增加,答案的准确率呈下降趋势,那么噪声影响下错误产生的具体原因,作者分析包括答案出现的距离远、证据不明确、概念混淆:


 
5.2 拒绝能力

当候选文档都不能回答问题时,大模型最高的拒绝比例仅有45%→容易被误导


 
5.3 信息整合能力

当答案需要从多篇候选文档中抽取信息进行回复时,评估大模型的信息整合能力;
 

实验发现生成答复时存在的问题:

  • 使用一个子问题的正确答案回答所有子问题
  • 忽略子问题,只回答其中一个
  • 子问题和候选文档匹配错误

原因:大模型对复杂问题的理解能力有限,妨碍了有效利用来自不同子问题的信息的能力


 
5.4 反事实鲁棒性

当输入给大模型的文档包含错误信息时,评估大模型的拒绝能力


 
  • Acc,是没有提供候选文档,请LLM自己回答的准确率
  • Acc_doc,是增加含有错误信息的候选文档后的准确率;

增加错误信息后,大模型准确率迅速下降,而且其错误和纠正错误的比例很低
 

6. 总结

  • 这篇工作的测评是通过生成的答案来评估整体能力的,不侧重RAG整个pipeline中某个步骤的提升给整体系统带来的效果;由于其数据来源于网络,所以除了常规的评估抗噪声、拒绝回答和整合能力之外,还考虑了识别错误信息的能力;
  • RAG包含多个步骤,文档的切分粒度、向量化模型的选择、prompt的写法以及大模型本身的能力都会影响最终答案的生成,因此理想的评估应该是控制变量的中间环节评估+整个系统评估;
  • 具体工作中,我们也发现了RAG的痛点在于,当召回的文档与问题不那么相关、甚至文档包含干扰信息时,chatgpt3.5容易被错误的信息指引生成错误的答案;
  • 还在提升的点:让大模型更加准确、快速地理解if-else的能力。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/246926.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

每次请求sessionid变化【SpringBoot+Vue】

引言:花了一晚上的时间,终于把问题解决了,一开始后端做完后,用apifox所有接口测试都是可以的,但当前端跑起来后发现接收不到后端的数据。 当我写完前后端,主页面和获取当前页面信息接口后,配置了cros注解 CrossOrigin…

支持向量机(SVM)详解

支持向量机(support vector machines,SVM)是一种二分类模型。它的基本模型是定义在特征空间上的间隔最大的线性分类器,间隔最大使它有别于感知机。 1、线性可分支持向量机与硬间隔最大化 1.1、线性可分支持向量机 考虑一个二分…

Vulnhub-dc6

信息收集 # nmap -sn 192.168.1.0/24 -oN live.port Starting Nmap 7.94 ( https://nmap.org ) at 2024-01-25 14:39 CST Nmap scan report for 192.168.1.1 Host is up (0.00075s latency). MAC Address: 00:50:56:C0:00:08 (VMware) Nmap scan report for 192.168.1.2…

Java 字符串 10 字符串相关类的底层原理

底层原理1,底层原理2 底层原理3: 分两种情况: 1、等号右边没有变量: 2、等号右边有变量: 两个对象,一个是StringBuilder,一个是String,浪费空间,性能不高 在jdk8之前&am…

WinRAR压缩包高级技巧:永久设置压缩包单个或批量单独压缩成包并且不内嵌文件夹,解压保留原始时间设置

目录点击跳转:WinRAR压缩包高级技巧:永久设置压缩包单个或批量单独压缩成包并且不内嵌文件夹,解压保留原始时间设置 解压永久设置1 解压保存原始时间 压缩永久设置1 默认压缩成zip手机电脑都通用的格式2 默认压缩文件不多额外嵌套一层文件夹&…

Java复习系列之阶段二:数据库

1. 基础语法 1.1 DQL(数据查询语句) 执行顺序: from、join 、on、where、group by、having、select、distinct、order by、limit 1.2 DML(数据修改语言) 对数据表的增删改 insert into update set delete form 1.…

RTP工具改进(五)--使用qt

前篇 第四篇 RTP工具改进(四) - rtmp协议推送 前面使用的工具一直为mfc,今天将使用qt 来做界面,使用qt 来进行程序和协议的编写,qt部分目前还不包括rtp ps流和rtmp,暂时只有rtp 直接传输,关于rtmp协议和ps流协议&…

Qt/QML编程之路:ListView实现横排图片列表的示例(40)

ListView列表,在QML中使用非常多,排列一个行,一个列或者一个表格,都会用到ListView。 ListView显示从内置QML类型(如ListModel和XmlListModel)创建的模型中的数据,或在C++中定义的从QAbstractItemModel或QAbstract ListModel继承的自定义模型类中的数据。 ListView有一…

[GYCTF2020]Ezsqli1

打开环境,下面有个提交表单 提交1,2有正确的查询结果,3以后都显示Error Occured When Fetch Result. 题目是sql,应该考察的是sql注入 简单fuzz一下 发现information_schema被过滤了,猜测是盲注了。 测试发现只要有东…

(七)for循环控制

文章目录 用法while的用法for的用法两者之间的联系可以相互等价用for改写while示例for和while的死循环怎么写for循环见怪不怪表达式1省略第一.三个表达式省略(for 改 while)全省略即死循环(上面已介绍) 用法 类比学习while语句 …

mac配置L2TP连接公司内网

1. 打开系统设置 2. 打开网络 3. 点击网络页面其他服务右下角三个点,添加VPN配置中的L2TP 4. 配置VPN,服务器填写公司的服务器ip,共享密钥没有可以随便填写 5. 打开终端编辑文件 sudo vim /etc/ppp/opt…

华为机考入门python3--(4)牛客4-字符串分隔

分类:字符串 知识点: 复制符号* 复制3个0 0*3 000 字符串截取 截取第i位到j-1位 str[i:j] 题目来自【牛客】 input_str input().strip()# 先补齐 if len(input_str) % 8 ! 0: input_str 0 * (8 - len(input_str) % 8) # 每8个分 out…

哪些 3D 建模软件值得推荐?

云端地球是一款免费的在线实景三维建模软件,不需要复杂的技巧,只要需要手机,多拍几张照片,就可以得到完整的三维模型! 无论是大场景倾斜摄影测量还是小场景、小物体建模,都可以通过云端地球将二维数据向三…

matplotlib实现动画效果

实现正弦波动画 import matplotlib.pyplot as plt from matplotlib.animation import FuncAnimation import numpy as np# 创建图像和轴 fig, ax plt.subplots()# 生成平均分布在0~2*pi之间的100个坐标点 x_data np.linspace(0, 2 * np.pi, 100) # 画出初始图 line, ax.plo…

【鸿蒙】大模型对话应用(一):大模型接口对接与调试

Demo介绍 本demo对接阿里云和百度的大模型API,实现一个简单的对话应用。 DecEco Studio版本:DevEco Studio 3.1.1 Release HarmonyOS API版本:API9 关键点:ArkTS、ArkUI、UIAbility、网络http请求、列表布局 官方接口文档 此…

21.Arrays类

Arrays类 1. 概述2. 常见方法3. sort 方法的自定义排序4. 代码示例5. 输出结果6. 注意事项 具体信息请查看 API 帮助文档 1. 概述 Arrays类是Java中的一个工具类,位于java.util包中。 它提供了一组静态方法,用于操作数组。通过Arrays类,我们…

台式电脑的ip地址在哪里找

在网络连接方面,IP地址是非常重要的信息,它是用于标识网络设备的唯一地址。对于台式电脑用户来说,了解自己设备的IP地址是非常有必要的,因为它可以帮助解决网络连接问题,进行远程访问和共享文件等功能。本文将指导读者…

Redis(秒杀活动、持久化之RDB、AOF)

目录 秒杀活动 一、测压工具jmete的使用 二、java实现秒杀活动 1、myseckillcontroller 2、先启动pos请求添加商品,再启动jmeter进行压测 Redis持久化 一 、Redis持久化之RDB 1.RDB是什么 2. 备份是如何执行的 3.Fork 4. RDB持久化流程 5. dump.rdb文件 6…

想要透明拼接屏展现更加效果,视频源是技术活,尤其作为直播背景

随着科技的飞速发展,视频制作和显示技术也在不断进步。透明拼接屏视频作为一种新型的视频形式,在许多场合都得到了广泛的应用。尼伽小编将深入探讨透明拼接屏视频的制作过程、要求、清晰度,以及目前常作为直播背景的优势。 一、透明拼接屏视频…

【数据结构1-2】二叉树

树形结构不仅能表示数据间的指向关系,还能表示出数据的层次关系,而有很明显的递归性质。因此,我们可以利用树的性质解决更多种类的问题。 但是在平常的使用中,我们并不需要使用这么复杂的结构,只需要建立一个包含int r…