当前位置: 首页 > news >正文

【LLM之RAG】Self-RAG论文阅读笔记

研究背景

尽管大型语言模型(LLM)展示出了显著的能力,但它们在生成回答时经常包含事实错误,因为它们仅依赖于封装在模型中的参数知识。增强型检索生成(Retrieval-Augmented Generation, RAG)是一种方法,通过检索相关知识来减少此类问题。然而,无论是否需要检索,或检索的段落是否相关,不加选择地检索和整合固定数量的检索段落会降低语言模型的多功能性,或可能导致生成无用的回答。​

研究目标

介绍了自反式增强型检索生成(Self-Reflective Retrieval-Augmented Generation, SELF-RAG)框架,旨在通过检索和自我反思提高语言模型的质量和事实性,训练一个可以根据需求适应性检索段落的模型,并通过生成特殊的反思标记来反思检索到的段落及其自身的生成内容。

相关工作

传统的RAG方法可能会妨碍LLM的多功能性或引入不必要或偏题的段落,导致生成质量低下。此外,输出并不保证与检索到的相关段落一致,因为这些模型并未明确训练以利用并遵循提供的段落中的事实。

方法论

数据处理

四种反思tokens的类型:
在这里插入图片描述
Retrieve:这是一个决策过程,它决定了是否从某个资源 R 中检索信息。
IsREL:这是一个相关性检查,目的是确定给定的数据 d 是否包含解决问题 x 所需的相关信息。
IsSUP:这是一个验证过程,用于检查提供的响应 y 中的声明是否得到了数据 d 的支持。
IsUSE:这是一个评估过程,旨在评估给定的响应 y 对于问题 x 有多么有用。输出是一个从1到5的评分,5分代表最有用。

数据样例如下:
在这里插入图片描述
这个框架主要需要训练2个模型,一个评判家模型(critic model),一个生成模型(generator model)。

解决方案

SELF-RAG首先会判断通过检索段落来增强生成会有帮助。如果是,它输出一个检索标记,按需调用检索模型(步骤1)。然后,SELF-RAG同时处理多个检索到的段落,评估它们的相关性,然后生成相应的任务输出(步骤2)。接着,它依据事实性和总体质量生成批评标记以批评其自身的输出并选择最佳输出(步骤3)。
在这里插入图片描述

实验

实验设计

实验设计包括使用7B和13B参数的SELF-RAG模型,在多样化的任务集上进行测试,以展示其在开放领域问答、推理和事实验证任务上的表现。像事实验证和多项选择推理等闭集任务,使用准确性作为评估指标。对于开放域问答这样简短的生成任务,作者使用groundtruth答案是否包含在模型生成中来进行评估,而不是严格要求精确匹配。
对于传记生成和长格式QA等长文本生成任务,作者使用FactScore(https://github.com/shmsw25/FActScore)来评估传记——基本上是对生成的各种信息及其事实正确性的衡量。对于长格式QA,使用了引用精度和召回率。

实验结论

ELF-RAG在所有测试任务中显著优于现有的最先进的LLM和增强型检索模型。特别是在提高长文本生成的事实性和引用准确性方面,与其他模型相比,显示出显著的优势。
在这里插入图片描述

参考资料

  • 论文
  • 代码

相关文章:

  • 如何对stm32查看IO功能。
  • Android shell 常用 debug 命令
  • 代码整洁之道学习笔记
  • React+TS前台项目实战(一)-- 项目初始化配置及开此系列的初衷
  • 【纯血鸿蒙】——自适应布局如何实现?
  • 电商平台系统||电商|跨境电商项目的搭建都需要哪些电商API接口支撑
  • AI大模型的战场正在分化:通用大模型与垂直大模型你更青睐哪一方?
  • JVM垃圾回收器介绍
  • 图文解析ASN.1中BER编码:结构类型、编码方法、编码实例
  • C语言TC中有⼏个画矩形函数?怎么使⽤?
  • C++中的观察者模式
  • rizhuti1.9-最新版-推荐文章缩略图
  • 【软件安装12】CloudCompare点云工具安装 Ubuntu18.04
  • Windows下对于Qt中带 / 的路径的处理
  • SpringBoot解决跨域的三种解决方案
  • 【RocksDB】TransactionDB源码分析
  • 002-读书笔记-JavaScript高级程序设计 在HTML中使用JavaScript
  • javascript 哈希表
  • Lsb图片隐写
  • Netty+SpringBoot+FastDFS+Html5实现聊天App(六)
  • OSS Web直传 (文件图片)
  • Sass Day-01
  • SpingCloudBus整合RabbitMQ
  • ⭐ Unity 开发bug —— 打包后shader失效或者bug (我这里用Shader做两张图片的合并发现了问题)
  • webpack项目中使用grunt监听文件变动自动打包编译
  • 漂亮刷新控件-iOS
  • 扫描识别控件Dynamic Web TWAIN v12.2发布,改进SSL证书
  • 小程序开发之路(一)
  • 小程序上传图片到七牛云(支持多张上传,预览,删除)
  • 阿里云服务器购买完整流程
  • # Panda3d 碰撞检测系统介绍
  • ###C语言程序设计-----C语言学习(3)#
  • $NOIp2018$劝退记
  • (13)[Xamarin.Android] 不同分辨率下的图片使用概论
  • (C++17) std算法之执行策略 execution
  • (C语言)二分查找 超详细
  • (Demo分享)利用原生JavaScript-随机数-实现做一个烟花案例
  • (js)循环条件满足时终止循环
  • (板子)A* astar算法,AcWing第k短路+八数码 带注释
  • (初研) Sentence-embedding fine-tune notebook
  • (附表设计)不是我吹!超级全面的权限系统设计方案面世了
  • (七)MySQL是如何将LRU链表的使用性能优化到极致的?
  • (三)centos7案例实战—vmware虚拟机硬盘挂载与卸载
  • (一)基于IDEA的JAVA基础10
  • (转载)VS2010/MFC编程入门之三十四(菜单:VS2010菜单资源详解)
  • ***微信公众号支付+微信H5支付+微信扫码支付+小程序支付+APP微信支付解决方案总结...
  • .mysql secret在哪_MYSQL基本操作(上)
  • .net 8 发布了,试下微软最近强推的MAUI
  • .net core 6 集成 elasticsearch 并 使用分词器
  • .NET I/O 学习笔记:对文件和目录进行解压缩操作
  • .NET6使用MiniExcel根据数据源横向导出头部标题及数据
  • .NET连接数据库方式
  • .net项目IIS、VS 附加进程调试
  • .Net中的集合
  • ??javascript里的变量问题