RAG 评估框架 -- RAGAS

news2025/2/26 15:10:27

原文

引入 RAG(Retrieval Augmented Generation)的原因

随着ChatGPT的推出,很多人都理所当然直接用LLM当作知识库回答问题。这种想法有两个明显的缺点:

  • LLM无法得知在训练之后所发生的事情,因此无法回答相关的问题
  • 存在一些专业知识,LLM在训练的时候并没有涉及,或者缺少相关的专业知识。

在这种情况下,RAG 被提出来解决上述的问题。RAG 的基本框架包括:

  • Retriever:用于从参考文献中获取相关的背景知识。
  • Generator:一般是用一个 LLM 充当这个角色,通过 retriever 拿回来的信息回答用户的提问。

虽然 RAG 的实用性显而易见,但是由于其性能受到多方面因素的影响(例如,参考语料,LLM的性能,Prompt等),想达到一个良好的表现需要大量的调整。因此如何评判 RAG system 的就成为一个非常重要的问题。

已有方法

已有的方法一般都基于两个方面来评估RAG系统:

利用 LLMs 来评估 faithfulness

具有代表性的是 Azaira 等人 提出根据 LLM 的隐藏层权重训练分类器,用于判断 statement 是否为真。虽然这个表现非常不过,但是对于只提供了 API 的LLM 模型并不适用(例如,ChatGPT)。

为解决上述这个问题,Manakul 等人提出一个名为 SelfCheckGPT 的模型。其核心思想是当真实的答案更加稳定。当答案是事实答案时,则不同样本的采样结果更相似,而如果是幻觉的答案则会趋于不相似。

文本生成系统的自动评估

具有代表性的工作是 Fu 等人使用指定所考虑的方面的 prompt,然后根据给定的自回归语言模型,基于生成的令牌的平均概率对段落进行评分。

另外一个工作是 Wang等人提出让 ChatGPT 直接在某个特定方面评估答案的分数(0~100或者5星评分)。这种方法虽然可以获得较为满意结果,但是对于 Prompt 的依赖程度非常高。

RAGAS 评估方法

Setting

  • 问题 q q q
  • 检索回来的信息,即上下文 c ( q ) c(q) c(q)
  • 根据检索回来的信息产生的答案 a s ( q ) a_s(q) as(q)

对于一个 RAG system 的评估需要考虑一下三个方面:

  • Faithfulness: 给出的答案应该是以给定上下文为基础生成的。
  • Answer Relevance:生成的答案应该解决提出的实际问题。
  • Context Relevance:检索回来的信息应该是高度集中的,尽量少的包含不相关信息。

Faithfulness

判断标准:当答案中的内容是从上下文中推导得到,那么答案 a s ( q ) a_s(q) as(q)是忠于上下文 c ( q ) c(q) c(q)

为评估 faithfulness,作者使用 LLM 来抽取一系列的 statements S ( a s ( q ) ) S(a_s(q)) S(as(q)),其目的是在于将较长的句子拆分为公断更集中的断言。Prompt 如下:
在这里插入图片描述
其中 “question” 和 “answer” 是指给定的提问和答案。对于每一个 statement 而言,LLM 会使用验证函数 v ( s i , c ( q ) ) v(s_i,c(q)) v(si,c(q)) 判断 c ( q ) c(q) c(q) 是否可以得到 s i s_i si。具体的验证 prompt 如下:
在这里插入图片描述
最终的分数 F = ∣ V ∣ ∣ S ∣ F=\frac{|V|}{|S|} F=SV

Answer relevance

判断标准:如果答案用适当的方式直接解决了问题,那么答案 a s ( q ) a_s(q) as(q) 是相关的。
PS. 需要注意的是,这里特别地没有考虑答案的事实性,而是只考虑了答案是否完成或者是否包含了冗余信息。

为了评估 answer relevance,对于给定的答案 a s ( q ) a_s(q) as(q),作者使用如下的 prompt,让 LLM 生成了可能的潜在问题 q i q_i qi
在这里插入图片描述
对于每一个 q i q_i qi,都会用余弦相似度来度量原始问题和潜在问题 embedding (使用的 text embedding ada 002 API)的相似度 s i m ( q , q i ) sim(q, q_i) sim(q,qi)。最终会用 AR (answer relevance score) A R = 1 n ∑ i = 1 n s i m ( q , q i ) AR=\frac{1}{n}\sum_{i=1}^{n}sim(q,q_i) AR=n1i=1nsim(q,qi) 来评估生成的答案与原始问题的一致性。

Context relevance

判断标准:如果上下文只包含回答问题所需要的内容,那么上下文 c q c_q cq 是相关的。
PS.目的是为了惩罚上下文存在冗余信息。

为了评估 context relevance,在给定问题 q q q 和其上下文 c ( q ) c(q) c(q) ,LLM 会使用如下的 prompt 从 c ( q ) c(q) c(q) 中提取对问题 q q q 至关重要的语句 S e x t S_{ext} Sext :
在这里插入图片描述
最终 CR(context relevance score)为 C R = number of extrated sentences total number of sentences in c ( q ) CR=\frac{\text{number of extrated sentences}}{\text{total number of sentences in}\quad c(q)} CR=total number of sentences inc(q)number of extrated sentences

实验

作者为了评估该方法,构建一个名为 WikiEval 的数据集,每个样本是有人工注释的三元组 question-context-answer。表格1 展示了其结果,百分比表示的是模型所偏好的答案/上下文(即具有最高估计的忠实度、答案相关性或上下文相关性)与人类注释者所偏好的回答/上下文重合的频率。
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

大面积光源HUD阳光倒灌实验装置太阳光模拟器

背景 1.根据现在市场上一些量产的hud的结构和原理可知,hud中最重要的零件之一就是凹面镜(自由曲面),hud利用凹面镜放大投影的光学原理进行投影成像。当发生阳光倒灌时,太阳光沿着hud正常工作时成像的逆光路,通过挡风玻璃-凹面镜-…

4.【CPP】入门(初始化列表||explicit||static||友元||静态成员变量/函数)

一.初始化列表 1.引入 我们知道在c11中才能在成员对象声明时初始化,像下面这样。 class Date { public: Date(int year, int month, int day): _year(year), _month(month), _day(day) {} private: int _year2000; int _month12; int _day20; };注意:…

CMake tasks.json launch.json

hehedalinux:~/Linux/cmake/cmakeClass$ tree . ├── CMakeLists.txt ├── include │ ├── Gun.h │ └── Soldier.h ├── main.cpp └── src├── Gun.cpp└── Soldier.cpp2 directories, 6 files hehedalinux:~/Linux/cmake/cmakeClass$ launch.json&am…

每日一题——LeetCode1189.气球的最大数量

方法一 个人方法: 统计text字符串中b、a、l、o、n 这几个字符出现的次数 l和n需要两个才能拼成一个balloon,所以碰到l和o加1,其他字符加2 最后求出出现次数最少的那个字符再除以2就是能拼凑成的单词数量,避免出现小数要使用向下…

godot初学笔记

godot开发工具下载地址 godot下载地址 godot入门视频 godot入门教学b站地址 素材下载地址 素材下载地址 最终成品图 2D3D如何切换 添加2D场景 添加其他节点 添加人物节点 设置人物为接地 给人物添加Sprite 2d 给人物设置材质 解决材质糊的问题 设置材质包切割 在场景中实…

CISP注册信息系统安全认证,2024年1月20日即将开课~想了解点击查看

CISP注册信息系统安全认证 1🈷20日 开课~ 想报名的必须提前预约啦 👇👇👇 课程介绍 本课程包括10个独立的知识域(安全工程与运营、计算环境安全、软件安全开发、网络安全监管、物理与网络通信安全、信息安全保障、信…

杨中科 .NETCORE EFCORE 第一部分 基本使用

一 、什么是EF Core 什么是ORM 1、说明: 本课程需要你有数据库、SOL等基础知识。 2、ORM: ObjectRelational Mapping。让开发者用对象操作的形式操作关系数据库 比如插入: User user new User(Name"admin"Password"123”; orm.Save(user);比如查询: Book b…

自动粘贴文本:高效复制中国邮政编码,提升效率,释放创意

在快节奏的现代生活中,时间就是金钱,效率就是生命。中国邮政EMS,作为您的快递服务首选,一直致力于提供更加便捷、高效的寄递体验。今天,我们隆重推出全新功能——"自动粘贴文本",让您轻松复制邮政…

test-02-test case generate 测试用例生成 EvoSuite 介绍

拓展阅读 junit5 系列 基于 junit5 实现 junitperf 源码分析 Auto generate mock data for java test.(便于 Java 测试自动生成对象信息) Junit performance rely on junit5 and jdk8.(java 性能测试框架。性能测试。压测。测试报告生成。) 拓展阅读 自动生成测试用例 什么…

Centos7 安装与卸载mysql

卸载 ps ajx | grep mysql : 查看当前服务器是否有mysql 没有的话就不需要卸载咯。 centos7 通过yum下载安装包通常是以.rpm为后缀,rpm -qa 可以查看当前服务器上所有的安装包: rpm -qa | grep mysql | xargs yum -y remove :将查询到的mysql…

第三十九周:文献阅读+Transformer

目录 摘要 Abstract 文献阅读:CNN与LSTM在水质预测中的应用 现有问题 提出方法 相关模型 CNN LSTM CNN-LSTM神经网络模型 模型框架 CNN-LSTM神经网络 研究实验 数据集 模型评估指标 数据预处理 实验设计与结果 研究贡献 Transformer Encoder-Dec…

ES6(ECMAScript 6.0)

ES6 学习链接ES6什么是ES6?ECMAScript 和 JavaScript 的关系 ECMAScript各版本新增特性ES6 块级作用域 let 学习链接 ES6简介 ECMAScript简介及特性(科普!很详细!!!!) 20分钟上手ES…

Java多线程并发篇----第十三篇

系列文章目录 文章目录 系列文章目录前言一、Semaphore 信号量二、Semaphore 与 ReentrantLock 区别三、可重入锁(递归锁)四、公平锁与非公平锁前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这篇文章男女通用,…

【促销定价】背后的算法技术 2 - 数据预处理生成

【促销定价】背后的算法技术 2 - 数据预处理生成 01 数据探查02 数据清洗03 数据聚合04 数据补全05 小结参考文献 导读:在日常生活中,我们经常会遇见线上/线下商家推出各类打折、满减、赠品、新人价、优惠券、捆绑销售等促销活动。一次成功的促销对于消费…

什么类型的企业需要工单系统?适用场景与优势分析

在现代商业中,必须高效地管理与跟踪大量任务和工作流程。对一些企业而言,处理很多订单是一项具有挑战性的任务。此订单可能来自客户需求、内部问题反馈或各种业务流程中的任务分配。可是,如果没有好的解决方法,这类订单可能会致使…

用LM Studio:2分钟在本地免费部署大语言模型,替代ChatGPT

你想在本地使用类似ChatGPT 的大语言模型么?LM Studio 可以帮你2分钟实现ChatGPT的功能,而且可以切换很多不同类型的大语言模型,同时支持在Windows和MAC上的PC端部署。 LM Studio是一款面向开发者的友好工具,特别适合那些想要探索…

Costco攻入山姆大本营

01 Costco深圳店开业火爆 “我今天不去Costco,早上还没开业,路上就已经堵车了,看来今天人很多,过几天再去”,原本计划在Costco开业当天去逛逛的张芸(化名)无奈只能放弃。 家住在Costco深圳店旁…

vue2+elementui的el-table固定列会遮住横向滚动条以及错位

解决方案 我是最右侧固定列,所以下面的class名称是.el-table__fixed-right, 如果有左侧固定请自行替换为el-table__fixed 防止固定列表格高度错位 .el-table__fixed-body-wrapper {.el-table__body {padding-bottom: 15px; // 这个得自己调试看多少合适}} }如果还…

C#,史密斯数(Smith Number)的计算方法与源代码

一、关于史密斯数的传说 1、关于理海大学Lehigh University 理海大学(Lehigh University),位于宾夕法尼亚州(Pennsylvania)伯利恒(Bethlehem),由富有爱国情怀与民族精神的实业家艾萨…