完爆GPT3、谷歌PaLM!检索增强模型Atlas刷新知识类小样本任务SOTA

4f7f451281b48a76cd5f9ecbe7257279.png

文 | 小戏

不知不觉间,大模型+小样本成为了小样本学习领域的主流打法,在许多的任务背景下,一套通用的思路是先标注小数据样本,再从预训练大模型的基础上使用小数据样本进行训练。尽管如我们所见,大模型在一众小样本学习的任务上都取得了惊人的效果,但是它也自然而然的将一些大模型固有的弊病放置在了小样本学习的聚光灯下。

小样本学习期望模型具有依据少量样本完成自主推理的能力,也就是说理想中的模型应该通过做题而掌握解题思路,从而面对新出现的题可以举一反三。然而大模型+小样本的理想且实用的学习能力,似乎却是靠大模型训练期间储存的大量信息来生生把一道题解设答的过程背诵下来,尽管在各个数据集上神勇无比,但总会给人带来疑惑依照这种方法学习出来的学生真的是一个有潜力的学生吗?

f3abf55d45fe3c77fb7a6200dc0010f7.png

而今天介绍的这篇由 Meta AI 推出的论文,便另辟蹊径的将检索增强的方法应用于小样本学习领域,不仅仅用64个示例便在自然问答数据集(Natural Questions)上取得了42%的正确率,同时还对标大模型 PaLM 将参数量减少了 50 倍(540B—>11B),并且在可解释性、可控性、可更新性等方面上都具有其余大模型所不具备的显著优势。

论文题目:
Few-shot Learning with Retrieval Augmented Language Models

论文链接:
https://arxiv.org/pdf/2208.03299.pdf

1. 检索增强溯源

论文一开始,便向大家抛出了一个问题:“在小样本学习领域,使用巨量的参数去存储信息真的是必要的吗?”,纵观大模型的发展,前仆后继的大模型可以乐此不疲的刷SOTA的原因之一,便是其庞大的参数存储了问题所需的信息。从 Transformer 横空出世以来,大模型一直是 NLP 领域的主流范式,而随着大模型的逐步发展,“大”的问题不断暴露,追问所谓“大”的必要性便相当有意义,论文作者从这个问题出发,给予了这个问题否定的答案,而其方法,便是检索增强模型。

c87498ea0ce9229940555a0a95ff29dd.png

溯源检索增强,其实尽管其技术主要被应用于诸如开放域问答、机器阅读以及文本生成等任务之中,但是检索增强的思想可以一直上溯到 NLP 的 RNN 时代。RNN 模型无法解决数据长期依赖关系的硬伤促使研究者们开始广泛探索解决之道,而我们相当熟悉的 Transformer 便使用 Attention 机制有效解决了这个模型记不住的问题,从而开启了预训练大模型的时代。

而在当时,其实还有另外一条路子,便是 Cached LM,它的核心思想在于,既然 RNN 一上考场就有可能记不住,那么干脆就让 RNN 开卷考试,通过引入 Cache 机制,把训练时预测的词语存在 Cache 中,预测时便可以结合 query 与 Cache 索引两方面的信息来完成任务,从而解决当时 RNN 模型的硬伤。

由此,检索增强技术便走上了一条与大模型依赖参数记忆信息的迥然不同的道路。基于检索增强的模型允许引入不同来源的外部知识,而这些检索源有训练语料、外部数据、无监督数据等多种选择。检索增强模型一般由一个检索器与一个生成器构成,通过检索器根据 query 从外部检索源获得相关知识,通过生成器结合 query 与检索到的相关知识进行模型预测。

归根结底,检索增强模型的目标是期望模型不仅学会记忆数据,同时希望模型学会自己找到数据,这点特性在许多知识密集型的任务中具有极大的优势并且检索增强模型也在这些领域取得了巨大的成功,但是检索增强是否适用于小样本学习却不得而知。回到 Meta AI 的这篇论文,便成功试验了检索增强在小样本学习中的应用,Atlas 便应运而生。

c3f9bf7ff516c1dc4c8953f993a24e62.png

2. 模型结构

Atlas 拥有两个子模型,一个检索器与一个语言模型。当面对一个任务时,Atlas 依据输入的问题使用检索器从大量语料中生成出最相关的 top-k 个文档,之后将这些文档与问题 query 一同放入语言模型之中,进而产生出所需的输出。

f1bf7eea517a6f387ef65e10b98286de.png

Atlas 模型的基本训练策略在于,将检索器与语言模型使用同一损失函数共同训练。检索器与语言模型都基于预训练的 Transformer 网络,其中:

  • 检索器基于 Contriever 设计,Contriever 通过无监督数据进行预训练,使用两层编码器,query 与 document 被独立的编码入编码器中,并通过相应输出的点乘获得 query 与 document 的相似度。这种设计使得 Atlas 可以在没有文档标注的情况下训练检索器,从而显著降低内存需求。

  • 语言模型基于 T5 进行训练,将不同文档与 query 相互拼接,由编码器分别独立处理,最后,解码器对于所有检索的段落串联进行 Cross-Attention 得到最后的输出。这种 Fusion-in-Decoder 的方法有利于 Atlas 有效的适应文档数量的扩展。

值得注意的是,作者对比试验了四种损失函数以及不做检索器与语言模型联合训练的情况,结果如下图:

fbafcf28e2ee4d97a09d0d8655c66037.png

可以看出,在小样本环境下,使用联合训练的方法所得到的正确率显著高于不使用联合训练的正确率,因此,作者得出结论,检索器与语言模型的这种共同训练是 Atlas 获得小样本学习能力的关键。

3. 实验结果

在大规模多任务语言理解任务(MMLU) 中,对比其他模型,Atlas 在参数量只有 11B 的情况下,具有比 15 倍于 Atlas 参数量的 GPT-3 更好的正确率,在引入多任务训练后,在 5-shot 测试上正确率甚至逼近了 25 倍于 Atlas 参数量的 Gopher。

a12200c8657e8a4e8fa37ab3d6b23987.png

在开放域问答的两个测试数据——NaturalQuestions 以及 TriviaQA 中,对比了 Atlas 与其他模型在 64 个例子上的表现以及全训练集上的表现如下图所示,Atlas 在 64-shot 中取得了新的 SOTA,在 TrivuaQA 上仅用 64 个数据便实现了 84.7% 的准确率。

dd55e4d4dce75baa75a614012163224d.png

在事实核查任务(FEVER)中,Atlas 在小样本的表现也显著优于参数量数十倍于 Atlas 的 Gopher 与 ProoFVer,在 15-shot 的任务中,超出了 Gopher 5.1%。

bf3b1ab692661a95bcb0f33a9ddc8fbd.png

在自家发布的知识密集型自然语言处理任务基准 KILT 上,在一些任务里使用 64 个样本训练的 Atlas 的正确率甚至接近了其他模型使用全样本所获得的正确率,在使用全样本训练 Atlas 后,Atlas 在五个数据集上都刷新了 SOTA。

9ca3d4e6a643dff0df666aadfa34fd71.png

4. 可解释性、可控性、可更新性

根据这篇论文的研究,检索增强模型不仅兼顾了更小与更好,同时在可解释性方面也拥有其他大模型不具备的显著优势。大模型的黑箱属性,使得研究者很难以利用大模型对模型运行机理进行分析,而检索增强模型可以直接提取其检索到的文档,从而通过分析检索器所检索出的文章,可以获得对 Atlas 工作更好的理解。

譬如,论文发现,在抽象代数领域,模型的语料有 73% 借助了维基百科,而在道德相关领域,检索器提取的文档只有3%来源于维基百科,这一点与人类的直觉相符合。如下图左边的统计图,尽管模型更偏好使用 CCNet 的数据,但是在更注重公式与推理的 STEM 领域,维基百科文章的使用率明显上升。

725130d5813ed53525709e7fe23bcdf9.png

而根据上图右边的统计图作者发现,随着检索出的文章中包含正确答案的次数的升高,模型准确率也不断上升,在文章不包含答案时正确只有 55%,而在答案被提到超过 15 次时,正确率来到了 77%。除此之外,在人为检查了 50 个检索器检索出的文档时,发现其中有 44% 均包含有用的背景信息,显然,这些包含问题背景信息的资料可以为研究者扩展阅读提供很大的帮助。

一般而言,我们往往会认为大模型存在训练数据“泄露”的风险,即有时大模型针对测试问题的回答并非基于模型的学习能力而是基于大模型的记忆能力,也就是说在大模型学习的大量语料中泄露了测试问题的答案,而在这篇论文中,作者通过人为剔除可能会发生泄露的语料信息后,模型正确率从56.4%下降到了55.8%,仅仅下降0.6%,可以看出检索增强的方法可以有效的规避模型作弊的风险。

8d5397e689465e15f7f1c31a55fe8fe0.png

最后,可更新性也是检索增强模型的一大独特优势,检索增强模型可以无需重新训练而只需更新或替换其依托的语料库实现模型的时时更新。作者通过构造时序数据集,如下图所示,在不更新 Atlas 参数的情况下,仅仅通过使用 2020 年的语料库 Atlas 便实现了 53.1% 的正确率,而有趣的是即使是用2020年的数据微调 T5 ,T5 也没有很好的表现,作者认为,原因很大程度上是由于 T5 的预训练使用的数据是 2020 年以前的数据。

4117749204a6478d19b5052c8bf37a62.png

5. 结论

我们可以想象有三个学生,一个学生解题只靠死记硬背,一道数学题可以把答案分毫不差的背诵下来,一个学生就靠查书,遇到不会先去翻找资料找到最合适的再一一作答,而最后一个学生则天资聪明,简单的学习一些教科书上的知识便可以自信去考场挥毫泼墨指点江山。

显然,小样本学习的理想是成为第三个学生,而现实却很可能停留在了第一个学生之上。大模型很好用,但“大”绝不是模型最终的目的,回到小样本学习期望模型具有与人类相似的推理判断与举一反三能力的初心,那么我们可以看到,这篇论文是换个角度也好是前进一步也罢,至少是让那个学生可以轻松一点不往脑袋里装那么多可能大量冗余的知识,而可以拎起一本教科书轻装上阵,或许哪怕允许学生开卷考试带着教科书不断翻查,也会比学生生搬硬套死记硬背更接近智能吧!

bbd5022fc9a88cf17d968903fbc9002f.png

5ba333f7ab65f8cf915435bdbf88033d.png卖萌屋作者:小戏

边学语言学边学NLP~

作品推荐

  1. 千呼万唤始出来——GPT-3终于开源!

  2. Linux 程 序 员 失 业 警 告

  3. NLP哪个细分方向最具社会价值?

  4. 吴恩达发起新型竞赛范式!模型固定,只调数据?!

  5. GAN 的内在漏洞!只看眼睛就能找出虚拟人脸?

6dc84ae4b8db867d48537b05e80c1d0c.jpeg后台回复关键词【入群

加入卖萌屋NLP、CV、搜推广与求职讨论群

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

简单的分页类

<% LanguageVBScript %><% Option Explicit %><SCRIPT LANGUAGEVBScript RUNATSERVER> 确保引用 ADO Typelib 或使用 ADOVBS.Inc Dim iPageNum, iRowsPerPage Main Sub Main() Dim rst Dim sSQL, sConnString If Request.QueryString("iPageNu…

开源:Swagger Butler 1.1.0发布,利用ZuulRoute信息简化配置内容

Swagger Butler是一个基于Swagger与Zuul构建的API文档汇集工具。通过构建一个简单的Spring Boot应用&#xff0c;增加一些配置就能将现有整合了Swagger的Web应用的API文档都汇总到一起&#xff0c;方便查看与测试。 项目地址 Github&#xff1a;https://github.com/dyc87112/…

LeetCode 10. 正则表达式匹配(递归/DP)

文章目录1. 题目2. 解题2.1 递归2.2 DP1. 题目 给你一个字符串 s 和一个字符规律 p&#xff0c;请你来实现一个支持 ‘.’ 和 ‘*’ 的正则表达式匹配。 . 匹配任意单个字符* 匹配零个或多个前面的那一个元素 所谓匹配&#xff0c;是要涵盖 整个 字符串 s的&#xff0c;而不…

.net 页面框架的层次问题,嵌套问题

第一层&#xff1a;Form1&#xff1a;<form id"Form1" runat"server">第二层&#xff1a;才是我们拖放的控件。<asp:TextBox id"TextBox1" runat"server"></asp:TextBox>一般来说就只有这两层了。但是我们想要控件嵌…

3000块能买AAAI的Strong Accept?

编 | Aeneas 好困源 | 新智元最近&#xff0c;知乎上爆出一张AI投稿群的匿名聊天截图&#xff0c;网友讨论「加群互相bid」&#xff0c;还说3000块就可以买到一个AAAI的「strong accept」。正值AAAI 2023论文截止提交之际&#xff0c;知乎上突然出现了一张AI投稿群的匿名聊天截…

Spring Boot中使用MongoDB的连接池配置

因为今天开发遇到了性能问题&#xff0c;可能与MongoDB的连接有关&#xff0c;所以稍稍深入看了一下&#xff0c;正好搜到原来有人写过这篇相关的内容&#xff0c;所以转载过来。回头有时间可以写个扩展到SpringForAll里&#xff0c;主体思路还是一样的。感谢这位美女程序媛的文…

LeetCode 409. 最长回文串(计数)

1. 题目 给定一个包含大写字母和小写字母的字符串&#xff0c;找到通过这些字母构造成的最长的回文串。 在构造过程中&#xff0c;请注意区分大小写。比如 “Aa” 不能当做一个回文字符串。 注意: 假设字符串的长度不会超过 1010。 示例 1: 输入: "abccccdd" 输出…

又一名视觉大牛从大厂离开!阿里达摩院 XR 实验室负责人谭平离职

文 | 王玥编 | 陈彩娴源 | AI科技评论AI科技评论获悉&#xff0c;阿里巴巴达摩院 XR 实验室负责人谭平已于近日离职。谭平曾受邀担任国际顶级学术会议CVPR、SIGGRAPH、IROS领域主席&#xff0c;是3D视觉领域的标杆人物。谭平于2019年9月入职阿里人工智能实验室担任计算机视觉首…

【小马哥】Spring Boot系列讲座

这里推荐一个不错的Spring Boot系列讲座&#xff0c;讲师简介如下&#xff1a; 小马哥&#xff0c;阿里巴巴技术专家&#xff0c;从事十余年Java EE 开发&#xff0c;国内微服务技术讲师。目前主要负责微服务技术推广、架构设计、基础设施、迁移等。重点关注云计算、微服务以及…

程序员面试金典 - 面试题 03.03. 堆盘子 (vector(stack))

1. 题目 堆盘子。设想有一堆盘子&#xff0c;堆太高可能会倒下来。因此&#xff0c;在现实生活中&#xff0c;盘子堆到一定高度时&#xff0c;我们就会另外堆一堆盘子。 请实现数据结构SetOfStacks&#xff0c;模拟这种行为。SetOfStacks 应该由多个栈组成&#xff0c;并且在…

事件冒泡控件示例(转载)

.NET Framework 开发员指南 事件冒泡ASP.NET 页框架提供一种称为“事件冒泡”的技术&#xff0c;允许子控件将事件沿其包容层次结构向上传播。事件冒泡允许在控件层次结构中更方便的位置引发事件&#xff0c;并且允许将事件处理程序附加到原始控件以及公开冒泡的事件的控件上。…

Oracle 大规模裁员进行时:营收暴跌 28%,数据库地位被侵蚀

源 | InfoQ裁员潮席卷国外大厂&#xff0c;数据库巨头 Oracle 也不例外。“我的经理给我打了 3 分钟的电话。毫无情感地告诉我&#xff1a;你的职位被取消了&#xff0c;人力资源部稍后会把细节发给你&#xff0c;再见。”“我在 CX 营销部门工作了 8 年。HR 昨天下午打电话给我…

Spring Boot中使用RabbitMQ

很久没有写Spring Boot的内容了&#xff0c;正好最近在写Spring Cloud Bus的内容&#xff0c;因为内容会有一些相关性&#xff0c;所以先补一篇关于AMQP的整合。 Message Broker与AMQP简介 Message Broker是一种消息验证、传输、路由的架构模式&#xff0c;其设计目标主要应用…

程序员面试金典 - 面试题 03.05. 栈排序(两栈)

1. 题目 栈排序。 编写程序&#xff0c;对栈进行排序使最小元素位于栈顶。 最多只能使用一个其他的临时栈存放数据&#xff0c;但不得将元素复制到别的数据结构&#xff08;如数组&#xff09;中。 该栈支持如下操作&#xff1a;push、pop、peek 和 isEmpty。当栈为空时&#…

大足石刻一日游

今天早上9点半从重庆出发&#xff0c;11点半到的目的地。玩了3个小时&#xff0c;下午5点又回来了。逛了一会儿&#xff0c;感觉被骗了&#xff0c;没多少东西嘛&#xff0c;好多石刻都被风化的差不多了&#xff0c;1个小时就出来了&#xff0c;80块的门票真“值”。下面是手机…

为什么说工作期间需要摸鱼?

文 | 梦晨(发自凹非寺)源 | 量子位一努力思考就会精神疲惫&#xff0c;学习工作一天之后只想无脑躺平。最新研究发现&#xff0c;这并不是你一个人的错&#xff0c;而是有着普遍的生理基础&#xff1a;思考时脑内会产生一种毒素&#xff0c;积累太多会破坏大脑功能&#xff0c;…

Spring boot中使用log4j记录日志

之前在Spring Boot日志管理 一文中主要介绍了Spring Boot中默认日志工具&#xff08;logback&#xff09;的基本配置内容。对于很多习惯使用log4j的开发者&#xff0c;Spring Boot依然可以很好的支持&#xff0c;只是需要做一些小小的配置功能。 引入log4j依赖 在创建Spring …

4.7 【共享源】流的生产者(二)

七,模式 流的模式决定了Screen如何使前台缓冲区可用。生产者通过调用screen_set_stream_property_iv()并设置SCREEN_PROPERTY_MODE属性来设置模式。有效模式如下: 7.1 SCREEN_STREAM_MODE_DEFAULT 如果生产者应用程序没有在流上明确设置 SCREEN_PROPERTY_MODE 属性,则 Sc…

程序员面试金典 - 面试题 03.06. 动物收容所(队列)

1. 题目 动物收容所。有家动物收容所只收容狗与猫&#xff0c;且严格遵守“先进先出”的原则。 在收养该收容所的动物时&#xff0c;收养人只能收养所有动物中“最老”&#xff08;由其进入收容所的时间长短而定&#xff09;的动物&#xff0c;或者可以挑选猫或狗&#xff08…

Enterprise Blocks

我在Visual Studio .NET Web Control for Business Intelligence 中介绍的一个BI工具。支持DNN和SPS&#xff0c;太有心了&#xff01;找到一篇中文介绍文章。 Enterprise Blocks是ASP.NET Web控件、web服务、Windows服务的完整集合&#xff0c;在开发分析应用系统中可以作…