RAG开山之作:结合参数化与非参数化记忆的知识密集型NLP任务新解法

20年RAG刚提出时的论文:Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks,也算是RAG的开山之作之一了。

摘要:检索增强生成(RAG)方法结合了预训练语言模型与基于检索的非参数化记忆,通过端到端训练提升知识密集型NLP任务的性能。RAG模型在多个任务上展现卓越成果,解决了传统模型的知识访问、操作及更新难题,为NLP领域带来新启示。

image.png

引言

在自然语言处理(NLP)领域,大型预训练语言模型已经在各种下游任务中取得了显著的成果。然而,这些模型在处理知识密集型任务时,如开放域问答(QA)和事实验证,仍然存在局限性。这些模型虽然能够存储大量事实知识,但在精确操作和检索这些知识方面能力有限。此外,为模型的决策提供出处(provenance)以及更新其世界知识仍然是开放的研究问题。本文提出了一种名为检索增强生成(Retrieval-Augmented Generation, RAG)的方法,旨在通过结合预训练的参数化记忆和非参数化记忆来提升模型在知识密集型任务上的性能。

方法背景与动机

传统的预训练语言模型,如BERT和GPT,虽然在许多NLP任务上表现出色,但在需要外部知识的任务中,它们的性能受限于其参数化的知识库。这些模型无法轻松扩展或修改其记忆,也难以提供对其预测的洞察,有时甚至会产生“幻觉”。为了解决这些问题,研究者们提出了结合参数化记忆(如预训练的语言模型)和非参数化记忆(基于检索的记忆)的混合模型。
在知识密集型自然语言处理任务中,传统的预训练语言模型面临以下几个主要问题:

  1. 知识访问与操作限制:尽管预训练模型能够存储大量知识,但它们在精确访问和操作这些知识方面存在局限,尤其是在需要复杂推理和外部知识验证的任务中。
  2. 缺乏可解释性:预训练模型往往被视为“黑箱”,难以提供对其决策过程的清晰解释,这在需要高度可靠性的任务中尤为突出。
  3. 知识更新困难:预训练模型通常难以适应新信息或纠正错误知识,因为它们的参数化知识库一旦固定,就很难进行修改或扩展。
  4. 生成内容的幻觉问题:在没有足够外部知识支持的情况下,模型可能会生成与事实不符的内容,即所谓的“幻觉”。

RAG方法的动机是将预训练的序列到序列(seq2seq)模型与非参数化的密集向量索引(例如Wikipedia)相结合,通过预训练的神经检索器访问这些索引。这种方法允许模型在生成语言时利用外部知识源,从而提高在知识密集型任务上的表现。

方法详解

针对上述问题,RAG模型提出了以下解决方案:

  1. 检索增强的生成模型:RAG通过结合预训练的seq2seq模型(参数化记忆)和基于Wikipedia的密集向量索引(非参数化记忆),增强了模型对知识的访问和操作能力。
  2. 端到端训练:RAG模型通过端到端训练的方式,使得检索器和生成器能够共同学习如何最有效地利用外部知识源,而无需额外的检索监督。
  3. 知识源的动态更新:RAG模型的非参数化记忆允许通过替换文档索引来更新模型的知识,而无需重新训练整个模型。
  4. 生成内容的准确性提升:RAG模型在生成文本时,可以利用检索到的具体文档内容,从而减少幻觉的发生,并提高生成内容的准确性和事实性。

RAG模型的核心是结合了两种类型的内存:参数化内存和非参数化内存。参数化内存是一个预训练的seq2seq模型,而非参数化内存则是一个由Wikipedia文章组成的密集向量索引。以下是RAG方法的关键步骤:

  1. 预训练的检索器(DPR):使用Dense Passage Retriever(DPR)作为检索组件,它基于BERTBASE文档编码器和查询编码器生成文档的密集表示。
  2. 预训练的生成器(BART):使用BART-large作为生成组件,它是一个预训练的seq2seq变换器,具有400M参数。
  3. 端到端训练:通过最小化目标序列的负对数似然来联合训练检索器和生成器,不需要直接监督检索到的文档。
  4. 解码策略:在测试时,RAG-Sequence和RAG-Token需要不同的解码方法来近似最大似然生成序列。
  5. 检索增强:对于查询x,使用最大内积搜索(MIPS)找到前K个文档,然后将这些文档作为生成目标序列y的上下文。

实验分析

image.png
RAG模型在多个知识密集型任务上的实验结果表明:

  1. 性能提升:RAG在开放域QA任务上取得了最先进的结果,显示出比纯参数化seq2seq模型更强的性能。
  2. 生成内容的改善:在语言生成任务中,RAG生成的文本比基线模型更具体、多样且事实性更强。
  3. 知识更新的灵活性:通过替换非参数化记忆的索引,RAG能够适应世界知识的变化,显示出良好的适应性和灵活性。
  4. 可解释性的提高:尽管RAG模型的可解释性仍有待提高,但非参数化记忆的使用使得模型的决策过程更加透明,因为可以检查和验证检索到的文档。

RAG模型通过检索增强的方法,有效地解决了传统预训练语言模型在知识密集型任务中面临的挑战,提高了任务性能和生成内容的质量。然而,如何进一步提高模型的可解释性和减少训练成本,仍然是未来研究需要关注的方向。
image.png
研究者们在多个知识密集型NLP任务上对RAG模型进行了评估,包括开放域QA、抽象问答生成、Jeopardy问题生成和事实验证(FEVER)。实验结果显示,RAG模型在开放域QA任务上取得了最先进的结果,并且在语言生成任务中生成了更具体、多样和事实性更强的文本。

创新点

RAG模型的主要创新点在于:

  • 混合内存架构:结合了参数化和非参数化记忆,使得模型能够利用外部知识源。
  • 端到端训练:通过联合训练检索器和生成器,无需额外的检索监督。
  • 灵活的检索机制:能够根据不同的输入动态检索相关信息,提高了模型的适应性和准确性。
  • 实时知识更新:非参数化记忆的索引可以轻松替换,以适应世界知识的变化。

不足与挑战

尽管RAG模型在多个任务上取得了显著的成果,但仍存在一些挑战和不足:

  • 检索崩溃:在某些任务中,检索器可能会“崩溃”,忽略输入的变化,导致生成器学习忽略检索到的文档。
  • 训练成本:虽然不需要直接监督检索到的文档,但训练过程仍然需要大量的计算资源。
  • 知识源的局限性:模型的性能受限于外部知识源的质量和覆盖范围。
  • 解释性:虽然非参数化记忆提供了一定程度的可解释性,但模型的决策过程仍然不够透明。

结语

RAG模型通过结合参数化和非参数化记忆,为知识密集型NLP任务提供了一种新的解决方案。它在多个任务上的表现证明了这种方法的有效性,同时也为未来的研究提供了新的方向,特别是在如何更有效地结合参数化和非参数化记忆方面。尽管存在一些挑战,但RAG模型无疑为NLP领域带来了新的启示和可能性。

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

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

相关文章

布局香港之零售小店篇 | 香港一人小企与连锁超市的竞争

近年来,内地品牌入驻香港市场开拓业务已成大势所趋。香港特区政府早前公布的「2023年有香港境外母公司的驻港公司按年统计调查」显示,2023年母公司在海外及内地的驻港公司数量高达9039家。内地品牌在香港的成功落地,不仅为香港市民带来了丰富…

rosdep一键修复

External Player - 哔哩哔哩嵌入式外链播放器 rosdep失败原因 通常在执行rosdep init操作时就会报错,问题的核心在于rosdep会访问raw.githubusercontent.com这个网址下的资源,例如https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/sour…

Leetcode 119 杨辉三角 II

目录 一、问题描述二、示例及约束三、代码方法一:递推方法二:线性递推 四、总结 一、问题描述 给定一个非负索引 rowIndex,返回「杨辉三角」的第 rowIndex 行。   在「杨辉三角」中,每个数是它左上方和右上方的数的和。   自我…

运行Java或Python的时候,Git是必要的吗?

在运行Java或Python代码时,Git并不是必需的,但它可以成为一个非常有用的工具,特别是在团队协作、版本控制和代码管理方面。 Git的作用和优势 版本控制: Git是一个分布式版本控制系统,可以跟踪文件的更改历史&#xff…

CodeGemma初探

什么是 CodeGemma CodeGemma是一系列强大而轻量级的模型的集合,可以执行各种编码任务,包括填充中间代码补全、代码生成、自然语言理解、数学推理和指令跟随。 版本: instruct:7B, 这个版本专门针对自然语言到代码聊天和指令跟随…

租房管理|基于SprinBoot+vue的租房管理系统(源码+数据库+文档)

租房管理目录 基于SprinBootvue的租房管理系统 一、前言 二、系统设计 三、系统功能设计 前台 后台 管理员 订单信息管理 屋主申诉管理 屋主权限 房源信息管理 订单信息管理 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获…

阿里云mysql8.0 this is incompatible withsql mode=only full group by

阿里云RDS中mysql5.6升级为8.0后,出现如下问题: ### Error querying database. Cause:java.sql.SQLSyntaxErrorException: Expression #1 of SELECT listis not in GROUP BY clause and contains nonaggregatedcolumn temp.product_id which is not fun…

陪诊小程序开发:守护健康,温暖陪伴每一步

在繁忙的都市生活中,每个人都可能面临就医的困扰。面对陌生的医院环境、复杂的就诊流程,很多人感到无助和迷茫。陪诊小程序的开发,旨在通过科技与服务的融合,为用户带来更加贴心、便捷的陪诊体验,守护健康,…

编译支持播放H265的cef控件

接着在上次编译的基础上增加h265支持编译支持视频播放的cef控件(h264) 测试页面,直接使用cef_enhancement,里边带着的那个html即可,h265视频去这个网站下载elecard,我修改的这个版本参考了里边的修改方式,不过我的这个…

web前端学习笔记1

前端学习笔记 1. 走进HTML 1.1 什么是HTML 超文本标记语言(英语:HyperText Markup Language,简称:HTML)是一种用于创建网页的标准标记语言。您可以使用 HTML 来建立自己的 WEB 站点,HTML 运行在浏览器上,由浏览器来解析。HTML文档的后缀名 .html.htm以上两种后缀名没有区别…

Mediasoup-demo 本地启动步骤(超详细)

Mediasoup-demo 本地启动步骤(超详细) 一.本人环境 系统:macos13.6.3 node: v16.20.2 npm:8.19.4 python: 3.9.6 二.下载代码 git 下载代码: git clone gitgithub.com:versatica/mediasoup-demo.git 三.代码介绍 下载下来…

第⑮讲:Ceph集群管理与监控操作指南

文章目录 1.查看集群的状态信息2.动态的查看集群的状态信息3.查看集群的利用率4.查看OSD的资源利用率5.查看OSD的列表6.查看各组件的状态7.查看集群的仲裁信息8.查看/修改集群组件sock的配置参数 1.查看集群的状态信息 通过集群状态信息可以看到集群的健康状态、各个组件的运行…

实时数仓选型

实时数仓选型 实时数仓选型第一版实时数仓选型第二版 实时数仓选型第一版 实时数仓分层: 计算框架:Flink;存储框架:消息队列(可以实时读取&可以实时写入)ODS:Kafka 使用场景:每过来一条数据,读取到并加工处理DIM: HBase 使用场景:事实表会根据主键获取一行维表数据(1.永…

【AI】如何让局域网PC能够访问langchain框架的AI服务

【背景】 在单位内部成功运行了langchain服务,但是发现本地可以用默认8000端口访问,但是局域网内其它机器却无法访问服务页面。 【分析】 首先查看项目文件夹中的server.py。由于这个server.py的存在,我一开始以为langchain整套框架的服务…

成都直播基地服务|企业入驻天府锋巢直播产业基地到底有什么优势?

天府锋巢直播产业基地,作为天府新区新兴的直播产业聚集地,吸引了众多企业的关注与入驻。那么,企业入驻天府锋巢直播产业基地到底有哪些优势呢?本文将从多个方面进行深入剖析。 一、基地链主无锋科技作为直播行业的领军企业&#x…

基于若依和flowable7.0.1的ruoyi-nbcio-plus流程管理系统正式发布

更多ruoyi-nbcio功能请看演示系统 gitee源代码地址 前后端代码: https://gitee.com/nbacheng/ruoyi-nbcio 演示地址:RuoYi-Nbcio后台管理系统 http://122.227.135.243:9666/ 更多nbcio-boot功能请看演示系统 gitee源代码地址 后端代码&#xff1a…

Day10-Java进阶-泛型数据结构(树)TreeSet 集合

1. 泛型 1.1 泛型介绍 package com.itheima.generics;import java.util.ArrayList; import java.util.Iterator;public class GenericsDemo1 {/*泛型介绍 : JDK5引入的, 可以在编译阶段约束操作的数据类型, 并进行检查注意 : 泛型默认的类型是Object, 且只能接引用数据类型泛型…

钻刀无忌,过孔莫愁

高速先生成员--姜杰 钻刀是冷的,单板是冷的,眼见着过孔阻抗居高不下,雷豹的心也越来越冷…… 雷豹最近在研究过孔,少不了先学习相关的理论:过孔作为信号路径上一个重要的阻抗突变点,相对于传输线的特征阻抗…

如何用微信小程序实现远程控制墙壁插座

如何用微信小程序实现远程控制墙壁插座呢? 本文描述了使用微信小程序调用HTTP接口,实现控制墙壁插座,替换原有插座,安装智能插座后,即可实现远程控制。 可选用产品:可根据实际场景需求,选择对应…

社区奶柜的便捷与创新

在快节奏的现代生活中,无人零售技术如自动售货机已成为一种普遍现象,为消费者提供便捷的购物体验。社区奶柜,作为这一趋势中的一部分,不仅优化了日常购物流程,而且还在提升社区服务质量上发挥了重要作用。 1. 社区奶柜…