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

论文笔记:Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks

1. 挑战/问题(Challenges/Issues):

这篇论文探讨了大型预训练语言模型在处理知识密集型自然语言处理(NLP)任务时面临的挑战。尽管这些模型在参数中存储了大量事实知识,并在微调后能够在下游NLP任务中取得很好的效果,但它们在访问和精确操作知识方面的能力仍然有限。此外,为模型的决策提供出处(provenance)和更新它们的世界知识仍然是开放的研究问题。

2. 技术贡献(Technical Contribution):

论文提出了一种名为检索增强生成(Retrieval-Augmented Generation, RAG)的通用微调方法,用于结合预训练的参数化和非参数化记忆进行语言生成。具体来说,RAG模型将预训练的序列到序列(seq2seq)模型作为参数化记忆,并将维基百科的密集向量索引作为非参数化记忆,通过预训练的神经检索器进行访问。这种方法允许模型在生成语言时直接修订和扩展知识,并能够检查和解释访问的知识。

在这里插入图片描述

models

  1. RAG-Sequence Model: RAG-Sequence 模型使用相同的检索文档来生成完整的序列。从技术上讲,它将检索到的文档视为单个潜在变量,该变量被边缘化以通过 top-K 近似获得 seq2seq 概率 p(y|x)。具体来说,使用检索器检索前 K 个文档,生成器生成每个文档的输出序列概率,然后将其边缘化,
    在这里插入图片描述

  2. RAG-Token Model: 在 RAG-Token 模型中,可以为每个目标 token 绘制不同的潜在文档并相应地边缘化。这允许生成器在生成答案时从多个文档中选择内容。具体来说,使用检索器检索前 K 个文档,然后生成器为每个文档生成下一个输出标记的分布,然后进行边缘化,并使用以下输出标记重复该过程。

在这里插入图片描述

Retriever: DPR

在这里插入图片描述

作者把document index 称为 non-parametric memory

Generator: BART

使用 BART-large ,一个具有 400M 参数的预训练 seq2seq 转换器。为了在从 BART 生成时将输入 x 与检索到的内容 z 结合起来,只需将它们连接起来即可。 BART 使用降噪目标和各种不同的噪声函数进行了预训练。作者把bart generator 称为parametric memory

训练

联合retriever和generator,而无需直接监督应检索哪些文档。给定输入/输出对 (xj, yj) 的微调训练语料库,使用 Adam的随机梯度下降来最小化每个目标的负边际对数似然 Σ_j − log p(y_j|x_j)。在训练期间,更新文档编码器 BERT_d 的成本很高,作者认为这一步对于强大的性能来说不是必需的,因此保持文档编码器(和索引)fixed,仅微调查询编码器 BERT_q 和 BART generator。

Decoding

在测试时,RAG-Sequence 和 RAG-Token 需要不同的方法来近似 argmax_y p(y|x)

  1. RAG-Token:RAG-Token 模型可以看作是一个标准的自回归序列到序列生成器,其状态转移概率为:

在这里插入图片描述

在解码时,可以将 其插入到一个标准的束搜索(beam decoder)中进行推断。

  1. RAG-Sequence
    在这里插入图片描述

3. 评估/实验结果(Results of Evaluation/Experiments):

RAG模型在三个开放域问答任务上设定了新的最高标准,超过了仅参数化的seq2seq模型和特定任务的检索-提取架构。在语言生成任务中,RAG模型比最先进的仅参数化seq2seq基线生成了更具体、更多样化和更事实性的语言。此外,RAG模型在FEVER事实验证任务中取得了接近使用强大检索监督的最先进的管道模型的结果,并且展示了非参数化记忆可以根据世界的变化更新模型的知识。


http://www.kler.cn/a/413073.html

相关文章:

  • 什么是代理,nodenginx前端代理详解
  • 蓝牙定位的MATLAB仿真程序|基于信号强度的定位,平面、四个蓝牙基站(附源代码)
  • QCommandLinkButton控件 全面详解
  • 【Git】常用命令汇总
  • 基于Matlab实现Gabo滤波器(源码)
  • 问题记录-Java后端
  • go里面 interface 是否为nil
  • 基于STM32的智能家居电器控制系统
  • 林业产品智能推荐引擎:Spring Boot篇
  • django小项目
  • 【微信小程序】- 位置权限
  • 数据结构C语言描述5(图文结合)--广义表讲解与实现
  • 小程序基础:流程。
  • 计算机网络:运输层 —— TCP 的超时重传机制
  • LLM-pruner源码解析
  • VS2022的MFC的ReadString的问题
  • 熔断限流:业务实现自我保护
  • C++ ADL参数依赖查找
  • scala统计词频
  • 嵌入式工程师面试笔试总结——day2
  • TorchMoji使用教程/环境配置(2024)
  • 记录下在html文件中如何直接使用npm依赖,以threejs为例
  • sentry前端接入 报错403
  • 2022 年 3 月青少年软编等考 C 语言三级真题解析
  • YourPHPCMS Register_checkEmail存在sql注入漏洞
  • uniapp中的事件:v-on