融合预训练记忆的 RAG 模型在语言生成任务上取得突破

ops/2024/9/23 7:29:25/

image.png

  • 来自 Facebook AI Research、University College London 和 New York University 的 Lewis 等人的论文介绍了检索增强生成(Retrieval-Augmented Generation,RAG)模型,该模型结合了预训练的参数化和非参数化记忆,用于语言生成任务。
  • 为了解决大型预训练语言模型的局限性,如难以访问和精确操作知识,RAG 模型将预训练的序列到序列(seq2seq)模型与维基百科的密集向量索引合并,通过神经检索器访问。
  • RAG 框架包括两个模型:RAG-Sequence,对整个序列使用相同的检索文档;RAG-Token,允许每个令牌使用不同的段落。
  • 检索组件 Dense Passage Retriever(DPR)使用基于 BERT 的文档和查询编码器的双编码器架构。生成器组件使用 BART-large,这是一个具有 4 亿个参数的预训练 seq2seq transformer。
  • RAG 模型在检索器和生成器组件上进行了联合训练,没有直接监督要检索哪些文档,使用带有 Adam 的随机梯度下降。训练使用维基百科转储作为非参数知识源,分割成 2100 万个 100 个单词的块。
  • 以下是用于查询/文档嵌入和检索的方法和模型摘要,以及 RAG 框架的端到端结构:
    1. 查询/文档嵌入:
      • 检索组件 Dense Passage Retriever(DPR)遵循双编码器架构。
      • DPR 使用 BERTBASE 作为文档和查询编码器的基础。
      • 对于文档 z,文档编码器 BERTd 会生成密集表示 d(z)。
      • 对于查询 x,查询编码器 BERTq 会生成查询表示 q(x)。
      • 嵌入的创建使得给定查询的相关文档在嵌入空间中接近,从而实现有效的检索。
    2. 检索过程:
      • 检索过程涉及计算具有最高先验概率的 top-k 文档,这本质上是一个最大内积搜索(MIPS)问题。
      • MIPS 问题以亚线性时间近似求解,以有效地检索相关文档。
    3. 端到端结构:
      • RAG 模型使用输入序列 x 检索文本文档 z,然后将其用作生成目标序列 y 的附加上下文。
      • 生成器组件使用 BART-large 建模,这是一个具有 4 亿个参数的预训练 seq2seq transformer。BART-large 将输入 x 与检索到的内容 z 结合起来进行生成。
      • RAG-Sequence 模型使用相同的检索文档生成完整序列,而 RAG-Token 模型可以对每个令牌使用不同的段落。
      • 训练过程涉及在没有直接监督应该检索哪个文档的情况下对检索器和生成器组件进行联合训练。训练使用随机梯度下降和 Adam 最小化每个目标的负边际对数似然。
      • 值得注意的是,文档编码器 BERTd 在训练期间保持固定,避免了定期更新文档索引的需要。
  • 论文中的下图展示了所提出方法的概述。他们将预训练的检索器(查询编码器+文档索引)与预训练的 seq2seq 模型(生成器)结合,并进行端到端微调。对于查询 x,他们使用最大内积搜索(MIPS)找到 top-K 个文档 zi。对于最终预测 y,他们将 z 视为潜变量,并在给定不同文档的情况下对 seq2seq 预测进行边缘化。

image.png

  • 在开放域问答任务中,RAG 建立了新的最先进结果,优于参数化 seq2seq 模型和特定任务的检索提取架构。RAG 模型表现出即使在检索到的文档中没有正确答案的情况下也能生成正确答案的能力。
  • RAG-Sequence 在 Open MS-MARCO NLG 中超过了 BART,表明更少的幻觉和更多事实正确的文本生成。RAG-Token 在 Jeopardy 问题生成中优于 RAG-Sequence,展示了更高的事实性和特异性。
  • 在 FEVER 事实验证任务中,RAG 模型取得了接近最先进模型的结果,而这些模型需要更复杂的架构和中间检索监督。
  • 这项研究展示了混合生成模型的有效性,结合了参数化和非参数化记忆,为将这些组件结合用于一系列 NLP 任务提供了新的方向。

http://www.ppmy.cn/ops/23352.html

相关文章

HTML+CSS:构建网站不可不知的18个模块!

你好,我是云桃桃。 一个希望帮助更多朋友快速入门 WEB 前端的程序媛。 云桃桃-大专生,一枚程序媛,感谢关注。回复 “前端基础题”,可免费获得前端基础 100 题汇总,回复 “前端工具”,可获取 Web 开发工具…

PADS看图常用操作

1.放大缩小: 方法1,CTRL滚轮 方法2,按住滚轮,前后移动鼠标。 方法3,PageUP,PageDown按键 2.PADS layout只显示单层(当前层)怎么操作,而不显示其他层 第一步:…

7-29 删除字符串中的子串

题目链接:7-29 删除字符串中的子串 一. 题目 1. 题目 2. 输入输出样例 3. 限制 二、代码(python) 1. 代码实现 str1 input().split(\n)[0] str2 input().split(\n)[0] while str2 in str1:str1 str1.replace(str2, "") // 删…

C语言——柔性数组

1、柔性数组是什么 在C语言中,柔性数组成员(Flexible Array Member,简称FAM)是C99标准中引入的一种结构体成员,用于表示一个大小可变的数组。它是结构体的最后一个成员,不像普通的数组,没有固定…

纯IP地址可以申请SSL证书实现HTTPS访问吗?

IP地址申请SSL证书实现HTTPS访问,可以按照以下简单的步骤进行: 步骤一:准备所需材料 1. 确定IP地址:明确你要为哪个公网IP地址申请SSL证书。这通常是你服务器的公网IP,用户将通过这个IP地址访问你的服务。 2. 选择证书…

SpringCloud之负载均衡Ribbon

Ribbon 是一个客户端负载均衡工具,主要功能是将面向服务的Rest模板(RestTemplate)请求转换成客户端负载均衡的服务调用。通过Ribbon,开发人员可以在客户端实现请求的负载均衡,而无需单独部署负载均衡器。Ribbon支持多…

QT学习之QFileDialog

打开一个文件夹 m_dirXML QFileDialog::getExistingDirectory(this, tr("打开XML所在文件夹"), "D:/", QFileDialog::ShowDirsOnly|QFileDialog::DontResolveSymlinks); ui.xmlDri->setText(m_dirXML);选择一个文件: scriptPath QFileDia…

2024年北京高校数学建模校际联赛竞赛B题

B题 铁道线路动态检测数据分析 铁道线路设备是铁路运输业的基础设备,它常年裸露在大自然中,经受着风雨冻融和列车荷载的作用,轨道几何尺寸不断变化,路基及道床不断产生变形,钢轨、联结零件及轨枕不断磨损&#xff0c…