加了元学习之后,少样本学习竟然可以变得这么简单!

9ef031f549b51c1d16fe18f995b75122.png

文 | Rukawa_Y
编 | Sheryc_王苏,小轶

去年年初 GPT-3 的论文在 arxiv 上出现,论文名为 “Language Models are Few-Shot Learners”,引起一阵轰动。除了前无古人的模型规模外,最抓人眼球的是, GPT-3 能够不需要 fine-tuning 进一步更新参数,直接解决下游任务

这种完全依赖语言模型从预训练过程中习得的推理能力,通过上下文语境(task description)直接解决新任务的方式,叫做语境学习(in-context learning)。然而利用语境学习让模型学会处理一个新的任务的方法效果往往比不上传统的微调,预测的结果也有很大的方差,并且如何把多种多样的任务转化为语境的模版(Prompt)是很难被设计出来的

近期,Facebook AI 实验室所发表的论文 MetalCL: Learning to learn in context ,提出了一种训练方法MetalCL,通过元学习的方式让模型更加简单有效地进行语境学习——不需要在输入中提供任务描述模板,只需提供训练样例和目标输入。论文作者希望通过在元训练任务上进行多任务学习,让模型能够自动学习到如何通过输入中的少量训练样本重构任务信息,从而省去人工设计模板的麻烦。

论文标题
MetaICL: Learning to Learn In Context

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

Arxiv访问慢的小伙伴也可以在 【夕小瑶的卖萌屋】订阅号后台回复关键词 【1219】 下载论文PDF~

2d408b6a6168098ddf8bc6c5ebc8e2bf.png语境学习的几种情况bcef4a2c7ffac005d432f799e4d393f8.png

根据GPT-3的论文,语境学习分为 3 种情形,分别是:零样本学习(Zero-shot Learning)、单样本学习(One-shot Learning)和少样本学习(Few-shot Learning)。

a03e4fb2bad593aa31ef7d4dc46a7ab1.png
  • 零样本学习(Zero-shot Learning):在模型输入中只提供任务描述和测试样例输入,得到测试样例输出;

  • 单样本学习(One-shot Learning):在模型输入中提供任务描述、一条训练样例和测试样例输入,得到测试样例输出;

  • 少样本学习(Few-shot Learning):在模型输入中提供任务描述、少量训练样例和测试样例输入,得到测试样例输出。

GPT-3 的论文的实验结果中,表明 GPT-3 这3种情况均取得了一定的效果,这里有不再展开了,有兴趣的同学可以看看 GPT-3 的论文。

9bca24b5147ceeffd32caaec1447bd85.pngMetaICL介绍7dfe817bb13d93914f7419e975733c30.png

了解了语境学习之后,相信大家都会被这种通过推理就能学习一个新的任务的,并且无需任何参数更新的学习方式所吸引。然而利用语境学习让模型学会处理一个新的任务的方法效果往往比不上传统的微调,预测的结果也有很大的方差,并且如何把多种多样的任务转化为语境的模版(Prompt)是很难被设计出来的。基于这些挑战,也就是如何让模型在语境学习中所学习到的新的任务效果更好,MetaICL应运而生了。

MetaICL,全称Meta-training for In-context Learning。其中先对模型进行元训练Meta-training),让模型学会如何根据数据集自动调整语境学习策略,然后再进行语境学习。在Meta-training的过程中,论文的作者使用了数十个不同领域的NLP的任务作为元训练任务(Meta-training Task)对于模型进行训练,来提升模型进行少样本学习的能力。在这一训练过程中,MetaICL的优点在于不需要在输入中提供任务描述模板,只需提供训练样例和目标输入:论文作者希望通过在元训练任务上进行多任务学习的策略,让模型能够自动学习到如何通过输入中的少量训练样本重构任务信息,从而省去人工设计模板的麻烦。

MetalCL的具体的训练过程是:对于每一个元训练任务,利用K-shot Learning,将元训练任务中随机抽取出的任务中的个样本的和,和第个样本的连接起来作为一个输入,输入到模型中,预测对应的第个样本的。其中,前个样本相当于提供了对于任务的描述信息。MetalCL推测的过程也采用了与训练过程相同的输入方式来处理预测的样本:不需要任务描述,只需将该任务的个训练样本与目标输入相拼接即可。

总结一下MetalCL的流程如下:

  • Meta-training

    • 从准备好的大量的元训练任务中,随机抽取出一个任务;

    • 从任务中抽取出个样例 ;

    • 利用模型最大化概率,loss损失函数为交叉熵

  • Interence

    • 对于一个meta-training中没有见过的任务,获取个样例 和预测的输入 ;

    • 求 ,其中 是输出 所有可能的结果的集合。

除此之外,论文的作者还借鉴了在少样本的文本分类任务中的一种噪声通道[1]的方式,将元训练过程中的目标函数变换为 。即在噪声通道模型中,,将定义为,那么目标函数则变换为最大化概率,即最大化概率,对应在推理阶段模型则是计算。

8a093657c8b3b6a239309e4a0272b78b.png实验结果d13293a562800c9a42f30d8ea2552e12.png

论文中作者使用GPT-2 large进行MetalCL训练,元训练过程中一共使用了142个元训练数据集,这142个数据集包含了文本分类、QA、NLI和paraphrase detection等任务。论文作者在实验过程中对于Meta-training采取了7种设置,对Target采取了5种设置,并且在Meta-training和Target所使用的任务是没有交集的,具体的设置如下:

  • HR-LR:从大数据集迁移至小数据集,在meta-training过程中使用HRHigh resource)即大于等于10000训练样本的数据集,在target的过程中使用LRLow resource)即小于10000的数据集。

  • Classification/QA:元训练与预测使用相似任务,在meta-training过程中使用ClassificationQA的数据集,在target的过程中也使用ClassificationQA的数据集。

  • NLI/Paraphrase:元训练与预测使用不相似任务,在meta-training过程中使用Non-ClassificationNon-QANon-NLINon-Paraphrase的数据集,在target过程中使用ClassificationQANLIParaphrase的数据集。

Meta-train和Target所采取的设置总结如下,见表格:

2986bc1a08982656885df6180ebe03ba.png

最终实验结果里作者将MetaICLChannel MetalCL同其他baseline做了比较,实验结果如下:

371f6983450738f5a3175dc6143b1748.png

表格中各个method的意义如下:

  • 0-shot:使用预训练语言模型直接做零样本推断

  • In-context:使用预训练语言模型进行few-shot的推断

  • PMI 0-shot, PMI In-context:使用PMI[2]方式的零样本和few-shot的推断

  • Channel 0-shot,Channel In-context:使用通道模型的零样本推断和使用通道模型的few-shot推断

  • Multi-task 0-shot:使用meta-training对于预训练模型进行训练然后进行零样本推断

  • Channel Multi-task 0-shot:使用通道模型的Multi-task 0-shot

  • Oracle:基于任务对于预训练模型进行fine-tuning

  • Oracle w/meta-train:对预训练语言模型进行meta-training,然后再进行fine-tuning

从表格中我们可以得到如下的结论:

对于模型来说,在元训练/目标任务相似,即不进行任务迁移的情况下:

  • 使用Meta-training训练模型然后进行0样本的任务学习(Multi-task 0-shot)的效果比普通的语言模型直接进行语境学习的效果更好,说明Meta-training的确是对于模型是有帮助的。

  • 使用MetalCL训练的模型,不论是普通的语言模型还是Channel语言模型均取得了不错的效果,尤其是Channel MetaICL在大部分的实验设置的情况下的效果是最好的

需要进行任务迁移的情况下:

  • 使用MetalCL训练的模型的效果并没有收到太大的影响,并且仍然在大部分的实验设置的情况下的效果是最好的。

而将MetalCL训练的模型同Fine-tuning的模型比较时:

  • 使用MetaICL的方法有时能够取得超过直接在目标任务进行Fine-tune的方法,并且Oracle w/meta-train的结果还说明了meta-training对于Fine-tuning也有帮助。

除了上面的结论,作者还将使用MetaICL训练的GPT-2模型同GPT-J进行了比较,实验结果如下:

86b7c75a87e035e2e37e3634a0992fdb.png

从表格中还可以看出MetalCL训练的语言模型在许多领域的模型效果基本上跟GPT-J差不多,有些领域甚至要比GPT-J好。

最后论文作者还进行了Ablation study,主要内容分为两点:

  • 分析了Meta-training中元训练任务的个数的影响:论文的作者对于HR->LR实验采取了子采样,分别从61个任务数据集中抽取了{7, 15, 30}个数据集分别进行训练,实验结果如下图所示,从图中可以看出,在不同的元训练任务数目上的实验,Channel MetaICL的效果始终是最好的;除此之外,整体上元训练任务越多,MetaICL的性能越好

c3680a56f49c1373f90581f234968735.png
  • 分析了Meta-training中元训练任务的差异的影响:论文的作者对于HR->LR实验采取了两种设置,也就是对于61个任务数据集分别采取了两次采样,每次采样的任务数据集的个数为13,其中一次采样的元训练任务差异性很大,任务分别有QA,NLI,关系抽取,语义分析等等,另一次采样的元训练任务差异性较小,仅仅包含语义分析,主题分类,恶意文本检测。论文的作者在这两种设置下分别进行了实验,实验结果如下表所示。可以看出使用差异性较大的元训练任务会带来更好的结果

24d82b353ec75a58e2cef3e9956dbf60.png
  • 分析了任务描述是否对于MetalCL有帮助:虽然MetaICL不需要任务描述,论文的作者依然试验了在MetaICL中使用任务描述是否会带来进一步的性能提升。作者在HR->LR实验中使用了32个meta-training任务和12个目标任务,这些任务均是提供了人工撰写的任务描述,可以看出加入任务描述后MetaICL效果有着进一步的提升

a1b5cdb867dd527ae348ae67106d81dd.png

dedd1c847cac9a0cb89f3a791474a809.png总结156f92aca24ddc690bee4addcaa8dbef.png

本文介绍了一种MetaICL的训练方法,通过这种训练方法可以让模型通过元训练更好更简单地进行语境学习。同时笔者认为MetaICL也算是一种大力出奇迹的方法吧。这其实可以给予我们一些启发:

  • 对于一个语言模型,不论要使用这个语言模型进行什么样子的任务,当让模型尽量多的见识各种各样的任务之后(这里什么任务能够对模型提升比较大也是值得继续去研究的),即使是对于没见过的任务,不论是零样本学习还是语境学习,模型均能取得不错的效果。

  • MetalCL算是一种基于大规模语言模型的一种训练方法,对于容量较小的模型,笔者认为MetaICL是否还能起到很好的效果也是值得去探究的。

  • 论文中还提出对于一个语言模型进行了MetalCL之后,再进行Fine-tuning,最终模型的效果是比直接对于模型进行Fine-tuning要好的。在拥有大量不同任务的数据集时,可以考虑在Fine-tuning之前先对模型进行MetalCL训练,或许可以进一步提升模型效果。

6d51f0a63f9d30731a4d47c0c30985ba.png后台回复关键词【入群

加入卖萌屋NLP/IR/Rec与求职讨论群

后台回复关键词【顶会

获取ACL、CIKM等各大顶会论文集!

50a5edee3ad0bf46a9eea0a5ac7de20d.gif c7d42335fd83aa4bf6beb7127b794d37.png

[1] Noisy channel language model prompting for few-shot text classification.

[2] Surface form competition: Why the highest probability answer isn’t always right.

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

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

相关文章

Spring Cloud Alibaba基础教程:与Dubbo的完美融合

很早以前,在刚开始搞Spring Cloud基础教程的时候,写过这样一篇文章:《微服务架构的基础框架选择:Spring Cloud还是Dubbo?》,可能不少读者也都看过。之后也就一直有关于这两个框架怎么选的问题出来&#xff…

DIN+DIEN,机器学习唯一指定涨点技Attention

文 | 水哥源 | 知乎Saying1. 如果你面对一个全新的机器学习任务,让你来涨点。你可能第一个想到的往往是attention,第一个实现的是attention,第一个真的涨点了的技术也是attention;2. DIN的最主要的意义,把attention引入…

RabbitMQ延迟消息的极限是多少?

之前在写Spring Cloud Stream专题内容的时候,特地介绍了一下如何使用RabbitMQ的延迟消息来实现定时任务。最近正好因为开发碰到了使用过程中发现,延迟消息没有效果,消息直接就被消费了的情况。因此就继续深入研究了一下问题原因,在…

推荐中的attention有什么作用?

文 | 水哥源 | 知乎Saying1. attention要解决两个问题:(1)attention怎么加,在哪个层面上做attention;(2)attention的系数怎么来,谁来得到attention2. Attention常见的本质原因是求和…

LeetCode 667. 优美的排列 II(找规律)

1. 题目 给定两个整数 n 和 k,你需要实现一个数组,这个数组包含从 1 到 n 的 n 个不同整数,同时满足以下条件: ① 如果这个数组是 [a1, a2, a3, ... , an] ,那么数组 [|a1 - a2|, |a2 - a3|, |a3 - a4|, ... , |an-1…

图谱实战 | 医学知识图谱的价值与应用场景

转载公众号 | OMAHA联盟随着技术的进步和市场的逐渐成熟,人工智能在医疗等领域的应用日益广泛和深入。而知识图谱技术作为一种从海量文本和图像中抽取结构化知识的手段,正在成为推动人工智能发展的核心驱动力之一。◆ ◆ ◆知识图谱概述知识图谱是一种…

Spring Cloud Alibaba基础教程:Sentinel Dashboard中修改规则同步到Nacos

上一篇我们介绍了如何通过改造Sentinel Dashboard来实现修改规则之后自动同步到Apollo。下面通过这篇,详细介绍当使用Nacos作为配置中心之后,如何实现Sentinel Dashboard中修改规则同步到Nacos。关于下面改造的原理和分析可以见上一篇《Sentinel Dashboa…

OCR完整技术栈10天掌握!教程完全开源,更有产学研大佬们联合授课!

你日常会用到OCR(光学字符识别)技术吗?“妈妈再也不用担心我的学习了”、“老板来问进度了,文献还没整”... ...除了点读机广告,很多人对OCR的印象主要是肝文章的时候被OCR“救过命”,这项技术最早也是被用…

论文浅尝 - ACL2022 | 基于多语言语义解耦表示的跨语言迁移方法实现多语言阅读理解...

论文作者:吴林娟,天津大学,研究方向为自然语言理解论文链接:http://arxiv.org/abs/2204.00996代码地址:https://github.com/wulinjuan/SSDM_MRC摘要多语言预训练模型在机器阅读理解(Machine Reading Comprehension, MR…

LeetCode 1017. 负二进制转换(负数进制转换)

1. 题目 给出数字 N,返回由若干 “0” 和 "1"组成的字符串,该字符串为 N 的负二进制(base -2)表示。 除非字符串就是 “0”,否则返回的字符串中不能含有前导零。 示例 1: 输入:2 输…

公益:开放一台Nacos服务端给各位Spring Cloud爱好者

之前开放过一台公益Eureka Server给大家,以方便大家在阅读我博客中教程时候做实验。由于目前在连载Spring Cloud Alibaba,所以对应的也部署了一台Nacos,并且也开放出来,给大家学习测试之用。 Nacos控制台 地址:http:/…

一份北大信科内部流传的 “CS 自救指南”(无广推荐)

文 | PKUFlyingPig,智商掉了一地编 | 小轶小编记:从上周开始,一篇 github 博客就在北大同学的朋友圈之间刷屏。不到一周时间,已收获了 1.8 k stars。这是一篇来自一位北大学弟的博客——“CS自学指南”,一份自学式 cs …

论文浅尝 | Rot-Pro:通过知识图谱嵌入中的投影建模关系的传递性

笔记整理:陈湘楠,浙江大学硕士在读。研究背景知识图嵌入模型学习知识图谱中实体和关系的表示,以预测实体之间的缺失链接(关系)。它们的有效性深受建模和推断不同关系模式(如对称、不对称、逆向、组合和传递…

隐马尔科夫模型(HMM)笔记(公式+代码)

文章目录1. 基本概念1.1 HMM模型定义1.2 盒子和球模型1.3 观测序列生成过程1.4 HMM模型3个基本问题2. 概率计算问题2.1 直接计算法2.2 前向算法2.2.1 前向公式证明2.2.2 盒子和球例子2.2.3 前向算法Python代码2.3 后向算法2.3.1 后向公式证明2.3.2 后向算法Python代码2.4 一些概…

Spring Cloud Alibaba基础教程:Sentinel Dashboard中修改规则同步到Apollo

在之前的两篇教程中我们分别介绍了如何将Sentinel的限流规则存储到Nacos和Apollo中。同时,在文末的思考中,我都指出了这两套整合方案都存在一个不足之处:不论采用什么配置中心,限流规则都只能通过Nacos界面或Apollo界面来完成修改…

中科院科研人员自白:我为什么离开北京

文 | 榴莲EDU源 | 知乎北大本硕博毕业,毕业到中科院北京某所。今年是我工作第三年,年前刚刚调动了工作,转战南京某高校。为什么?细说起来一大堆,总结起来就两个字:房子。上学的时候不了解墙外的世界&#x…

评测通知 | 2022年全国知识图谱与语义计算大会评测任务发布

一、任务简介CCKS技术评测旨在为研究人员提供测试知识图谱与语义计算技术、算法、及系统的平台和资源,促进国内知识图谱领域的技术发展,以及学术成果与产业需求的融合和对接。去年,CCKS 2021评测竞赛环节共设立了5个主题共计14个任务&#xf…

Spring Cloud Alibaba基础教程版本升级:0.2.1-gt;0.2.2

最近Spring Cloud Alibaba发布了最新版本,其中包含了一些比较重要的内容,比如:Nacos 1.0.0支持,Dubbo的支持等。所以把之前的系列文章中内容以及代码案例都做了升级,其中包括: Spring Cloud Alibaba 从 0.…

Google掀桌了,GLUE基准的时代终于过去了?

文 | Severus大家好,我是Severus,一个在某厂做中文文本理解的老程序员。今年11月,Google 在 NeurIPS2021 投稿了一篇文章,名为 AI and the Everything in the Whole Wide World Benchmark,矛头直指评估AI模型“通用”能…

技术动态 | W3C计划成立RDF-star工作组

转载公众号 | W3C资讯W3C 计划成立 RDF-star 工作组,现开始筹备小组工作章程,界定标准化范畴及工作模式。详情参见以下章程草案:https://w3c.github.io/rdf-star-wg-charter/RDF-star(最初拼写为 RDF*)是 RDF 的一种扩…