首页 > 其他分享 >推特爆火!超越ChatGPT和Llama2,新一代检索增强方法Self-RAG来了原创

推特爆火!超越ChatGPT和Llama2,新一代检索增强方法Self-RAG来了原创

时间:2023-10-30 12:36:52浏览次数:38  
标签:检索 RAG 令牌 推特 Self 生成 模型


作者 | ZenMoore

前言

大型语言模型(LLMs)具有出色的能力,但由于完全依赖其内部的参数化知识,它们经常产生包含事实错误的回答,尤其在长尾知识中。为了解决这一问题,之前的研究人员提出了检索增强生成(RAG),它通过检索相关知识来增强LMs的效果,尤其在需要大量知识的任务,如问答中,表现出色。

但RAG也有其局限性,例如不加选择地进行检索和只整合固定数量的段落,可能导致生成的回应不够准确或与问题不相关。

为了进一步改进,作者提出了自反思检索增强生成(Self-RAG, Self-Reflective Retrieval-Augmented Generation)。这是一个新框架,它不仅可以根据需要自适应地检索段落(即:模型可以判断是否有必要进行检索增强),还引入了名为反思令牌(reflection tokens)的特殊令牌,使LM在推理阶段可控。

实验结果显示,Self-RAG 在多种任务上,如开放领域的问答、推理和事实验证,均表现得比现有的LLMs(如 ChatGPT)和检索增强模型(如检索增强的 Llama2-chat)更好,特别是在事实性和引用准确性方面有显著提高。

推特爆火!超越ChatGPT和Llama2,新一代检索增强方法Self-RAG来了原创_生成器

论文链接:https://arxiv.org/abs/2310.11511

项目主页:https://selfrag.github.io/

方法

推特爆火!超越ChatGPT和Llama2,新一代检索增强方法Self-RAG来了原创_自适应_02

Self-RAG是一个新的框架,通过自我反思令牌(Self-reflection tokens)来训练和控制任意LM。它主要分为三个步骤:检索、生成和批评。

  1. 检索:首先,Self-RAG解码检索令牌(retrieval token)以评估是否需要检索,并控制检索组件。如果需要检索,LM将调用外部检索模块查找相关文档。
  2. 生成:如果不需要检索,模型会预测下一个输出段。如果需要检索,模型首先生成批评令牌(critique token)来评估检索到的文档是否相关,然后根据检索到的段落生成后续内容。
  3. 批评:如果需要检索,模型进一步评估段落是否支持生成。最后,一个新的批评令牌(critique token)评估响应的整体效用。

反思令牌(reflection tokens)

作者使用的反思令牌(reflection tokens)如下:

推特爆火!超越ChatGPT和Llama2,新一代检索增强方法Self-RAG来了原创_人工智能_03

训练

Self-RAG 的训练包括三个模型:检索器(Retriever)、评论家(Critic)和生成器(Generator)。

首先,训练评论家,使用检索器检索到的段落以及反思令牌增强指令-输出数据。

然后,使用标准的下一个 token 预测目标来训练生成器 LM,以学习生成 自然延续(continuations)以及特殊 tokens (用来检索或批评其自己的生成内容).

推理

推特爆火!超越ChatGPT和Llama2,新一代检索增强方法Self-RAG来了原创_chatgpt_04

Self-RAG 通过学习生成反思令牌,使得在不需要训练LMs的情况下为各种下游任务或偏好量身定制模型行为。特别是:

  1. 它可以适应性地使用检索令牌进行检索,因此模型可以自发判断是不是有必要进行检索。
  2. 它引入了多种细粒度的批评令牌,这些令牌用于评估生成内容的各个方面的质量。在生成过程中,作者使用期望的批评令牌概率的线性插值进行segment级的beam search,以在每一个时间步骤中确定最佳的K个续写方案。

实验结果

推特爆火!超越ChatGPT和Llama2,新一代检索增强方法Self-RAG来了原创_自适应_05

Self-RAG在六项任务中均超越了原始的 ChatGPT 或 LLama2-chat,并且在大多数任务中,其表现远超那些广泛应用的检索增强方法。

推特爆火!超越ChatGPT和Llama2,新一代检索增强方法Self-RAG来了原创_自适应_06

以上是一些消融实验,可以看到:每一个组件和技术在Self-RAG中都起到了至关重要的作用。调整这些组件可以显著影响模型的输出性质和质量,这证明了它们在模型中的重要性。

总结

综上所述,Self-RAG 作为一种新型的检索增强生成框架,通过自适应检索和引入反思令牌,不仅增强了模型的生成效果,还提供了对模型行为的更高程度的控制。这项技术为提高开放领域问答和事实验证的准确性开辟了新的可能性,展示了模型自我评估和调整的潜力。

推特爆火!超越ChatGPT和Llama2,新一代检索增强方法Self-RAG来了原创_Self_07

标签:检索,RAG,令牌,推特,Self,生成,模型
From: https://blog.51cto.com/xixiaoyao/8087427

相关文章

  • 解决self.draw.draw_rectangle(xy, fill, 1) ValueError: y1 must be greater tha
    我尝试了很多方法,包括单不限于改labelme文件的直接报错,修改pillow包的原文件尝试注释掉raise的地方。最后都以失败告终。还有尝试重新安装最新版的包,来解决。最后经过多次尝试后发现,发生错误的地方的文件是有问题的,至于是什么问题到现在也不知道,那就删除最后停止位置时......
  • nfs-client-provisioner 启动失败(容器日志:panic: error creating self-signed certifi
    1、NFS服务部署#cat/etc/exports/data/kubernetes/*(insecure,rw,sync,no_root_squash)/data/nfs/*(insecure,rw,sync,no_root_squash)在node-1-231验证nfs服务#showmount-e192.168.1.230Exportlistfor192.168.1.230:/data/nfs/*/data/kubernetes/*......
  • 【Azure Storage Account Table】询问批量将存储账户中的表嵌入另一个账户中的办法
    问题描述询问批量将存储账户中的表嵌入另一个账户中的办法? 问题解答方式一:使用 AzCopy 使用Azcopy做表格的导入导出,注意您需要使用Azcopy7.3版本来实现对Table的操作,可以选择导出到Blob中,这样导出的数据不会保存在本地,以及该指定支持并发导出。从表存储导出数据: https://le......
  • Kubernetes跨StorageClass迁移,切换Rainbond默认SC
    默认使用的共享文件存储是NFS,以Pod方式运行在Kubernetes中,但这种方式也有一些无法避免的问题,比如:NFS的SVC无法通信时集群无法挂载存储则导致不能使用、服务器关机时卡在umount导致不能正常关机等等。当然还有切换共享文件存储的需求,在第一次安装Rainbond时,大多数都......
  • Kubernetes跨StorageClass迁移,切换Rainbond默认SC
    基于主机安装或基于Kubernetes安装的Rainbond集群(均使用默认参数安装),默认使用的共享文件存储是NFS,以Pod方式运行在Kubernetes中,但这种方式也有一些无法避免的问题,比如:NFS的SVC无法通信时集群无法挂载存储则导致不能使用、服务器关机时卡在umount导致不能正常关机等等......
  • Kubernetes跨StorageClass迁移,切换Rainbond默认SC
    基于主机安装或基于Kubernetes安装的Rainbond集群(均使用默认参数安装),默认使用的共享文件存储是NFS,以Pod方式运行在Kubernetes中,但这种方式也有一些无法避免的问题,比如:NFS的SVC无法通信时集群无法挂载存储则导致不能使用、服务器关机时卡在umount导致不能正常关机等等......
  • Vue localStorage 将数据存为数组
    VuelocalStorage将数据存为数组要把表单数据存成数组形式,在另一个页面通过v-for渲染展示,因为拥有同一个key值,在每次更新表单数据时都会发生数据覆盖现象。vartemplist=JSON.parse(localStorage.getItem("msgBody")||"[]");templist.push(this.msgBody);......
  • 基于nfs创建StorageClass
    系统Cetnos7kubernetesv1.28.0nfs外部制备器nfs-subdir-external-provisioner一、制备器选择1.每个StorageClass都有一个制备器(Provisioner),用来决定使用哪个卷插件制备PV,本文基于NFS搭建StorageClass,NFS没有内部制备器,但可以使用外部制备器。也有第三方存储......
  • 603-60API资源对象StorageClass、Ceph存储 6.3-6.5
    一、NFS存储使用master-1-230节点做NFS服务器,具体安装步骤参考:https://www.cnblogs.com/pythonlx/p/17766242.html (4.1在master节点搭建NFS)node节点查看NFS挂载目录##showmount-e192.168.1.230Exportlistfor192.168.1.230:/data/kubernetes*/data/nfs_test*......
  • K8S使用开源CEPH作为后端StorageClass
    1引言K8S在1.13版本开始支持使用Ceph作为StorageClass。其中云原生存储Rook和开源Ceph应用都非常广泛。本文主要介绍K8S如何对接开源Ceph使用RBD卷。K8S对接Ceph的技术栈如下图所示。K8S主要通过容器存储接口CSI和Ceph进行交互。https://docs.ceph.com/en/reef/rbd/rbd-kuber......