FoRAG:面向网络增强型长文本问答的事实优化检索增强生成方法
人工智能咨询培训老师叶梓 转载标明出处
检索增强生成技术尽管出现了各种开源方法和商业系统,如Bing Chat,但生成的长文本答案中缺乏事实性和清晰逻辑的问题仍未得到解决。为了解决这些问题,来自蚂蚁集团和清华大学的研究者们提出了一种名为FoRAG(Factuality-optimized Retrieval Augmented Generation)的新方法。
图1展示了在网络增强型长文本问答任务中,大模型的输入处理过程。图中左上角描绘了任务的输入,左下角展示了现有的生成器如何直接生成答案,而中间部分则介绍了本文提出的大纲增强生成器。这种生成器在生成长篇答案前,会先起草一个组织模式和大纲,以增强答案的逻辑性。图的右侧展示了本文提出的双重细粒度的事实性优化方法,该方法通过在事实性评估和奖励建模这两个核心步骤中融入细粒度设计来优化事实性,并在每个步骤中提出了多种粒度级别的方法。
方法
FoRAG技术的核心在于两阶段生成过程。该方法包括两个阶段:首先是生成答案的大纲,然后是扩展大纲生成完整的回答。
大纲增强的RAG
大纲增强型生成器
在大多数现有的开源方法中,回答是直接生成的,即检索到的内容与原始查询直接连接,并使用特定的提示模板输入到生成模型中。然而,与闭源方法生成的回答相比,这些回答通常较短且缺乏清晰的逻辑结构。为了提高性能,一种可能的方法是使回答更加有组织。一些研究发现,包含任务描述和一些示例的精心设计的提示将提高不同任务上生成回答的质量。例如,“让我们一步一步思考”的技术通过鼓励链式推理能力,显著提高了性能。
受上述工作的启发,研究者们将大纲增强技术引入到回答生成中。他们提出的生成器包括大纲阶段和扩展阶段,这与人类回答问题时通常先概述和组织答案,然后再扩展每个点的直觉一致。具体来说,为了生成具有清晰逻辑流程的高质量输出,他们提示模型首先输出最终答案的大纲,然后将草稿连接到提示中以生成完整回答。在表1中,通过应用大纲增强生成技术,生成的回答(Ans. (OE))比原始回答(Ans. (Ori))显著更长,这表明了更强的逻辑结构。
大纲增强型长文本问答数据集
目前,用于训练网络增强型RAG模型的开源网络增强型长文本问答数据集只有两个。英文数据集WebGLM-QA包含44k个样本,而中文数据集WebCPM包含5,500个样本。两个数据集中的查询都从ELI5中采样,WebGLM-QA从中采样问题,WebCPM还使用人工注释者将问题翻译成中文。然后使用网络搜索引擎收集相关段落。
研究者们使用这两个数据集中的查询和相关段落构建了一个大纲增强型双语长文本问答数据集。他们应用大纲增强生成技术,使用GPT4收集大纲增强型回答。他们设计了一个提示,指导GPT4以逐步的方式执行大纲阶段和扩展阶段。表1中提供了现有数据集和他们的大纲增强型回答的详细统计数据。可以清楚地看到,他们的示例回答比现有工作中的回答长得多,这是由于更强的逻辑结构。从WebCPM和WebGLM派生的大纲增强型回答是公开可用的。
事实性优化的RAG
为了解决网络增强型长文本问答中的事实性问题研究者提出了一种新颖的事实性优化方法,他们开发了一种新颖的双重细粒度RLHF框架,该框架表征了自动化评估和奖励建模的不同粒度。
直接应用RLHF的困难
在大模型对齐中,使用人类反馈的强化学习(RLHF)是一种广泛使用的技术,用于减少不良生成,例如聊天助手任务中的有害回答。将非事实性视为某种不良行为,自然而然地,促进网络增强型RAG中的事实性的一种方法是利用RLHF来防止生成器产生非事实性回答。通常,RLHF是在手动注释的偏好数据上进行的。例如,给定查询和检索到的上下文,回答的事实性可以被注释为,其中反映潜在的人类偏好。RLHF训练一个奖励模型来估计给定任何查询、参考和回答的事实性,即学习人类偏好函数R。然后应用RL方法,如PPO,基于训练好的奖励模型来优化生成模型。
然而,直接将传统的RLHF方法应用于网络增强型LFQA的事实性优化会遇到两个固有困难。首先,手动注释的事实性标签通常很昂贵,这涉及到比较长篇回答和其相应冗长参考之间的事实细节。其次,标准RLHF使用整体奖励,即,只有在整个回答的最后一个token时才不为零。这种整体奖励只能为生成模型的训练提供稀疏的信号。在网络增强型LFQA中,由于回答通常是长篇的,因此由于使用整体奖励而导致的稀疏问题将更加夸张。
双重细粒度RLHF
鉴于传统RLHF在网络增强型RAG的事实性优化中的上述困难,研究者们提出了一种双重细粒度RLHF框架,以细粒度的方式进行事实性优化。与主要关注单一维度的先前工作不同,他们的框架结合了两个核心步骤的细粒度设计:事实性评估和奖励建模。
研究者首先介绍了必要的符号和定义,这些符号和定义使得可以为答案表征多个奖励,构成RL过程中的更密集的奖励信号。具体来说,他们首先将输出分解为L个文本跨度,每个跨度对应于评估粒度,其中每个跨度在步骤结束。密集的奖励信号是一个L维向量,其第l维代表给定查询和检索上下文的输入的每个跨度的奖励,该奖励分配给最终token在。特别是,当L=1时,他们的方法退化为具有整体奖励的标准RLHF。
细粒度评估
研究者考虑了答案分解和自动化片段评估的三个不同粒度级别:
- 整体:这是评估答案的标准粒度。每个生成的答案都与单一的事实性分数相关联。
- 句子级别:如先前研究建议的,可以将答案分解为句子,然后分别评估每个句子。在这种情况下,评估结果被表示为,其中i是句子的索引。
- 子声明级别:按照先前的工作,他们可以通过大模型进一步将每个句子分解为多个子声明,每个子声明包含单个事实信息。分解后,他们分别评估每个子声明。由于使用大模型的分解打破了子声明与原始答案之间的关联,因此他们将所有子声明的分数聚合成一个分数以评估句子的事实性。更具体地说,假设句子i有j个子声明,那么句子的评估分数由给出,其中表示句子i的子声明j的事实性分数,Agg是聚合函数(以平均值、最小值或最大值的形式)。
细粒度奖励建模
在两个可能的粒度级别上构建奖励模型:
- 序列级别:为每个序列学习一个单一的奖励,其实际形式取决于评估的粒度。通过这种方式,关联的奖励反映了相应序列的事实性,然后被分配给每个序列的最后一个标记。
- 标记级别:为序列中的每个标记学习一个奖励。通过这种方式,序列的奖励是通过聚合所有标记级别的奖励来计算的,即。
在表2中,展示了不同细粒度评估和细粒度奖励建模技术的组合在训练损失方面的对比。这种双重细粒度RLHF框架不仅解决了事实性问题,还为网络增强型RAG提供了一种新的优化策略,可以推广到其他RLHF任务中。通过这种方法,研究者们能够更细致地评估和优化生成回答的事实性,从而提高回答的质量和可信度。
实验
实验使用了两个常用的网络增强型长文本问答(Web-enhanced Long-form QA)数据集:WebGPT数据集和WebCPM数据集。WebGPT数据集包含272个样本,每个样本由ELI5数据集中的一个问题、几个Bing检索到的网页以及提取的参考资料组成。而WebCPM数据集则是一个中文数据集,结构与WebGPT类似,研究者们随机将其分为了训练集、验证集和测试集。
表3展示了FoRAG-L 7B和FoRAG-C 6B在这两个数据集上与其他现有方法的性能比较。结果显示,FoRAG-C 6B在五个评估指标中超过了所有基线方法,而FoRAG-L 7B在所有指标上表现最佳,尤其是与参数数量为其24倍的WebGPT-175B相比,FoRAG-L 7B在双语网络增强型问答任务中显示出了优越性。
为了进一步评估大纲增强型生成器的有效性,研究者们训练了两个基线模型,这些模型直接基于数据集生成答案,而没有使用大纲阶段。表4中的结果显示,使用大纲增强型技术可以显著提高模型在连贯性和有用性方面的性能,尤其是在中文任务中。
研究者们还评估了事实性优化技术的有效性。表4表明,添加事实性优化技术可以显著提高问答和句子层面的事实性一致性得分,而不影响其他两个指标或生成长度。
研究者们比较了不同事实性优化粒度的FoRAG方法的性能,并发现子声明级别的评估表现最佳。他们还发现,与常规的段落级奖励建模相比,标记级奖励建模的性能较差,这可能是因为数据集的长度可能导致了标记级建模的过拟合。
最后研究者们评估了训练效率,并发现大纲增强型生成步骤对训练时间的影响几乎可以忽略不计,而双重细粒度RLHF步骤对推理时间没有影响。尽管双重细粒度RLHF框架的最佳执行版本比标准RLHF多花了大约67.7%的时间,但通过使用多头奖励层和精心设计的关注掩码,可以在一次前向传递中计算所有句子的奖励,从而使得额外的计算成本变得微不足道。总的来说,FoRAG在合理的额外计算成本下,超越了基线方法。
论文链接:https://arxiv.org/pdf/2406.13779
相关文章:

FoRAG:面向网络增强型长文本问答的事实优化检索增强生成方法
人工智能咨询培训老师叶梓 转载标明出处 检索增强生成技术尽管出现了各种开源方法和商业系统,如Bing Chat,但生成的长文本答案中缺乏事实性和清晰逻辑的问题仍未得到解决。为了解决这些问题,来自蚂蚁集团和清华大学的研究者们提出了一种名为…...

Android NSD局域网发现服务
近期在了解局域网发现服务的时候无意间看到Android 自带的(Network Service Discovery)网络发现服务,在一番验证之后发现实现比较简单,可靠性也高,因此在这里做一个整理,算是对自己知识做一个归档。 网络服…...

算法的学习笔记—左旋转字符串(牛客JZ58)
😀前言 在程序设计中,字符串处理问题屡见不鲜,其中“字符串左旋”是一种常见操作,今天我们一起来探讨一个经典的左旋转字符串题目,以及一种优雅的解决方案——三步翻转法。 🏠个人主页:尘觉主页…...

Mac 上无法烧录 ESP32C3 的问题记录:A fatal error occurred:Failed to write to target RAM
文章目录 问题描述驱动下载地址问题解决:安装 CH343 驱动踩的坑日志是乱码 问题描述 我代码编译可以,但是就是烧录不上去 A fatal error occurred:Failed to write to target RAM(result was 01070000:Operation timed out) Uploaderror:上传失败&…...

ios 项目升级极光SDK
由于项目使用的是旧版本,隐私合规检查不通过,需要升级到最新版本, 使用cocoapods集成无法正常运行,.a文件找不到,可能项目比较久了,最好选择手动导入 下载最新版本SDK,将 SDK 包解压ÿ…...

【Java】java | logback日志配置 | 按包配置级别
一、概述 日志配置需求: 本地部分包开debug,其他路径走配置;只在本地环境有效 二、logback.xml配置 <!--本地调试,开debug--> <springProfile name"dev"><logger name"cn.hg.demo" level&quo…...

Virtuoso使用layout绘制版图、使用Calibre验证DRC和LVS
1 绘制版图 1.1 进入Layout XL 绘制好Schmatic后,在原理图界面点击Launch,点击Layout XL进入版图绘制界面。 1.2 导入元件 1、在Layout XL界面左下角找打Generate All from Source。 2、在Generate Layout界面,选中“Instance”&#…...

Spring框架原理面试题及参考答案
目录 什么是Spring 开发框架? 说说Spring 的 IOC 和 DI? 简述IoC(控制反转)及在 Spring 中的实现 说说Spring IOC 容器的基本概念? 说说Spring IoC 的实现机制? 说说Spring IoC 容器? 简述Spring ApplicationContext 说说Spring Bean 的生命周期 说说在 Spring…...

Java类的static成员以及代码块(详细版)
文章目录 一、什么是static成员二、static修饰的成员有何意义三、static修饰成员变量四、static修饰成员方法4.1、静态成员变量不可以在方法内创建4.2、静态成员方法内部不可以访问非静态成员变量4.3、总结 五、static成员变量的初始化5.1、就地初始化5.2、静态代码块初始化 六…...

Opensearch集群部署【docker、服务器、Helm多种部署方式】
操作系统兼容性 我们建议在 Red Hat Enterprise Linux (RHEL) 或使用systemd的基于 Debian 的 Linux 发行版上安装 OpenSearch ,例如 CentOS、Amazon Linux 2 和 Ubuntu Long-Term Support (LTS)。OpenSearch 应该适用于大多数 Linux 发行版,但我们只测…...

本地Docker部署开源WAF雷池并实现异地远程登录管理界面
💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…...

性能需求笔记
名称解释 系统用户:所有注册过的用户;在线用户:某时间段内登录且在线的用户 pv:用户浏览页面的次数 UV:登录系统的用户,uv课产生多个pv 性能测试:测试软件在系统中的运行性能,度量系…...

ts:数组的常用方法(reduce累加)
ts:数组的常用方法(reduce累加) 一、主要内容说明二、例子reduce方法(累加)1.源码1 (reduce方法)2.源码1运行效果 三、结语四、定位日期 一、主要内容说明 ts中数组的reduce方法,用…...

Begin
cpp 编程的发展方向还是很多的:游戏、嵌入式、QT、客户端、服务端、机器学习、算法大模 型 ...,现阶段还是不太清楚具体想走什么方向。主QT编程应该是不在考虑之内的,可以为辅简单 学习一下;游戏方向:需要学习lua语言…...

【实战案例】Django框架表单处理及数据库交互
本文基于之前内容列表如下: 【图文指引】5分钟搭建Django轻量级框架服务 【实战案例】Django框架基础之上编写第一个Django应用之基本请求和响应 【实战案例】Django框架连接并操作数据库MySQL相关API 【实战案例】Django框架使用模板渲染视图页面及异常处理 更新编…...

python开发工具是选择vscode还是pycharm?两款软件优缺点对照!
Pycharm和VSCode是两款流行的代码编辑器,它们都有各自的优缺点和适用情况。本文将从以下几个方面对它们进行比较和分析: 功能和扩展性性能和稳定性用户体验和界面价格和支持 功能和扩展性 Pycharm是一款专为Python开发而设计的集成开发环境(…...

2025选题|基于Hadoop的物品租赁系统的设计与实现
作者简介:Java领域优质创作者、CSDN博客专家 、CSDN内容合伙人、掘金特邀作者、阿里云博客专家、51CTO特邀作者、多年架构师设计经验、多年校企合作经验,被多个学校常年聘为校外企业导师,指导学生毕业设计并参与学生毕业答辩指导,…...

【Qt】QTableView添加下拉框过滤条件
实现通过带复选框的下拉框来为表格添加过滤条件 带复选框的下拉框 .h文件 #pragma once #include <QCheckBox> #include <QComboBox> #include <QEvent> #include <QLineEdit> #include <QListWidget>class TableComboBox : public QComboBox …...

部署DNS主从服务器
一。DNS主从服务器作用: DNS作为重要的互联网基础设施服务,保证DNS域名解析服务的正常运转至关重要,只有这样才能提供稳定、快速日不间断的域名查询服务 DNS 域名解析服务中,从服务器可以从主服务器上获取指定的区域数据文件&…...

从可逆计算看低代码
2020年低代码(LowCode)这一buzzword频繁亮相于主流技术媒体,大背景下是微软/亚马逊/阿里/华为等巨头纷纷入场,推出自己的相应产品。一时之间,大大小小的技术山头,无论自己原先是搞OA/ERP/IOT/AI的ÿ…...

设计模式最佳实践代码总结 - 结构型设计模式篇 - 侨接设计模式最佳实践
目录 侨接设计模式最佳实践 侨接设计模式最佳实践 桥接模式是一种结构型设计模式,它将抽象部分与它的实现部分分离,使它们可以独立地变化。桥接模式是一种结构型设计模式,它将抽象部分与它的实现部分分离,使它们可以独立地变化。…...

【软件测试】python——Unittest
UnitTest 框架 笔记来自于黑马程序员python自动化测试教程,python从基础到Uinttest框架管理测试用例。链接:[黑马程序员python自动化测试教程,python从基础到Uinttest框架管理测试用例](https://www.bilibili.com/video/BV1av411q7dT?spm_i…...

Maven:详解 clean 和 install 命令的使用
clean 的主要功能是清理项目构建过程中生成的所有临时文件和输出文件。具体来说,clean 阶段会删除 target 目录及其所有内容。 clean 阶段的具体功能 删除 target 目录: target 目录是 Maven 构建过程中默认的输出目录,存放所有构建生成的文件…...

HTTP与RPC
一、概念 HTTP(Hypertext Transfer Protocol,超文本传输协议)是一种应用层协议,主要用于在Web服务器之间传输html页面和其他Web资源。 RPC(Remote Procedure Call,远程过程调用) 是一种通用的远程调用通信协议&#…...

解决蓝牙键盘按键错乱的问题
最近发现我的蓝牙键盘按下的键盘与实际不符,于是就上网搜索答案,网上的方法都试了一遍 最后想着准备退货,没想到客服直接给我解决了 原因很简单,就是之前误触了键盘的某些按键导致的 每个键盘品牌的按键因该都不同的,可…...

MiL.k X Biggie 奇妙宇宙来袭!
MiL.k 和亚航奖励计划联手推出 MiL.k X BIGGIE 奇妙宇宙,为亚航会员和 MiL.k 用户提供神奇的 Web3 体验。这款沉浸式体验位于 The Sandbox 的 MiL.k Land,提供趣味游戏,解锁令人兴奋的新奖励。 亚航吉祥物 BIGGIE 和他友好的机舱服务员将引导…...

云服务器中删除非空目录(包含文件和子目录)rm -rf <directory_name>
在云服务器中删除目录可以使用 rm 命令。如果您需要删除一个非空目录(包含文件和子目录),可以使用以下命令: rm -rf <directory_name>参数解释: -r:递归删除,即删除目录及其所有内容&am…...

1991-2024年经管类国自然、国社科立项名单(附68份国自然标书)-最新出炉 附下载链接
很全!1991-2024年经管类国自然、国社科立项名单(附68份国自然标书) 下载链接-点它👉👉👉:很全1991-2024年经管类国自然、国社科立项名单(附68份国自然标书).zip 资源介…...

Flutter问题记录 - 布局中莫名其妙的白线/缝隙
文章目录 前言开发环境问题描述问题分析解决方案最后 前言 最近客服反馈了一个奇怪的问题,有个用户反馈其他问题时给了应用截图,然后他发现这截图中有一条奇怪的白线。他在自己手机上没有发现这个问题,于是提工单反馈到我这。 开发环境 Fl…...

从零学习大模型(七)-----LoRA(中)
自注意力层中的 LoRA 应用 Transformer 的自注意力机制是模型理解输入序列之间复杂关系的核心部分。自注意力层通常包含多个线性变换,包括键(Key)、查询(Query) 和 值(Value) 三个权重矩阵的线…...