别再Prompt了!谷歌提出tuning新方法,强力释放GPT-3潜力!

文 | Yimin_饭煲
编 | 炼丹学徒

如果评选NLP圈的2020年度十大关键词,那么GPT-3(Language Models are Few shot Learners) 一定榜上有名。

GPT-3庞大的参数量,优异的性能至今仍让圈内圈外人都津津乐道,而OpenAI发布的OpenAI API,更是为自然语言处理技术的大规模可扩展商业应用提供了一个极有前景的方向。不过,作为NLP研究者,我认为GPT-3对前沿研究的最大贡献是,展现了 Prompt-tuning 技术在通用任务(特别是零样本和小样本场景下)上的应用潜力。在GPT-3之前,Prompt-tuning 大多仅被用来探索语言模型中蕴藏的世界知识,而GPT-3之后,Prompt-tuning 就“登堂入室”,被用到了各种类型的NLP任务上(甚至还有多模态任务、代码分析任务),成为了近两年来发Paper的一个热点。不太熟悉 Prompt-tuning 的读者可以参考CMU最新发布在arxiv上的综述 (Pre-train, Prompt, and Predict: A Systematic Survey of Prompting Methods in Natural Language Processing)。

卖萌屋之前也转载过该论文的中文解析 《Fine-tune之后的NLP新范式:Prompt越来越火,CMU华人博士后出了篇综述文章》

Prompt-tuning 和GPT-3互相成就,成为了NLP发展历史中不可忽略的里程碑。基于 Prompt-tuning 让GPT-3处理各种类型的任务,固然取得了不错的表现,但仔细想想,GPT-3这样一个创造了各种奇迹的巨大模型,是否还有 更大的零样本和小样本学习能力 尚未挖掘?Prompt-tuning 一定是利用GPT-3的最好方式吗?Google的研究员们不甘心止步于此,提出了 instruction-tuning ,利用比GPT-3更少的参数量,在25个任务中的19个上显著超越GPT-3,告诉世界:GPT-3, 还能更强!

论文题目:
Finetuned Language Models Are Zero-Shot Learners

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

方法:FLAN

谷歌的研究员们将自己的方法取名为FLAN (Finetuned LANguage Models are zero-shot Learners),相比于GPT-3(LANguage Models are zero-shot Learners),区别在于Finetune. FLAN的核心思想是,当面对给定的任务A时,首先将模型在大量的其他不同类型的任务上进行微调, 微调的方式是将任务的指令与数据进行拼接(可以理解为一种Prompt), 随后给出任务A的指令,直接进行推断。具体示例可见下图。

例如,我们的最终目标是推理任务,FLAN首先讲语言模型在其他任务上进行微调,包括给定任务指令的翻译、常识推理、情感分类等。在面对翻译任务时可以给出指令“请把这句话翻译成西班牙语”。在面对常识推理任务时可以给出指令“请预测下面可能发生的情况”,而当模型根据这些“指令”完成了微调阶段的各种任务后(将指令拼接在微调数据的前面),在面对从未见过的最终需要的自然语言推理任务的指令“这段话能从假设中推导出来吗?” 时,就能更好地调动出已有的知识回答问题。

在GPT-3等研究Prompt-tuning的工作中,研究者们发现Prompt的质量对模型的性能有着较大的影响,因此产生了Prompt Engineering这一技术,通过选取更好的Prompt**让模型取得更好的表现。谷歌的研究者们同样为每一类任务手动设计了10个 不同的指令 。以自然语言推断任务为例,如下图所示。

实验结果

实验设置

作者们选取了12类共计62个常见的自然语言处理和生成任务开展实验:

作者们训练了一个大小为137B的自回归语言模型(Base LM) 作为基准语言模型。通过简单的重采样方法,作者们让不同大小的数据集在总的微调语料中占比相对平衡。在微调时,对每一个输入样本都随机选取该类任务十条指令中的一条以增加模型的多样性。为了保证实验对比的公平性,当评测在某一个任务(例如RTE)上的表现时,所有的同类别数据集(例如:SNLI,WNLI,MNLI...)和一些强相关类别的数据集(例如Paraphrase)将不会在微调阶段出现。

作者们使用了T5-11B和GPT-3作为基线模型。对于FLAN方法,作者同时给出了在目标任务上选择随机指令(no prompt engineering) 和在目标任务验证集上最优指令(best dev template)

结果

作者们发现,FLAN这一方法在与指令更相关的任务上表现更好(例如自然语言推断,问答), 而在与常识更相关的任务上表现较为普通。

在自然语言推断任务和问答任务上,FLAN在零样本场景下就已经超过了小样本GPT-3的效果,在许多任务上甚至与有监督模型达到了相当的表现。

在大多数常识推理任务上,FLAN相比于GPT-3的表现基本没有提升。作者们认为主要原因是常识推理任务对指令的依赖较小。大多数常识推理任务可以直接转化为语言模型的形式,因此仅需要基于简单的Prompt就已经可以达到很好的表现。在作者们给出的原因之外,笔者认为另一个可能的原因是,其他任务很难提供常识推理所需要的通用世界知识,进行微调反而可能影响原有语言模型中涉及到常识的参数,损害泛化性能。

在翻译任务上,零样本场景下的FLAN明显优于GPT-3,但相比于小样本GPT-3的表现仍然有差距。

作者们还研究了增加指令微调阶段任务的数目对FLAN模型效果的影响。结果表明,随着指令微调任务数目的增加,模型在各种任务上都能够取得更好的表现。

作者们同时研究了模型大小对FLAN模型效果的影响,一个有趣的现象是,当模型的大小较小时,指令微调反而会让模型的表现变差。作者认为的原因时,当模型较小时,在大量的任务上做指令微调会“填满”模型的容量,损害模型的泛化能力,使得模型在新任务上表现较差。

结语

熟悉NLP相关领域的同行们,也许会认为这篇文章又是一篇“A+B”的工作(A= Prompt-tuning, B= Multi-task Learning).基于Prompt的工作正值大热的时期(你敢相信九月的第一周就有四篇和Prompt有关的NLP论文挂Arxiv吗~),而通过在不同种类的微调任务上多任务学习提升性能也并不新颖, 例如早期Microsoft的工作MT-DNN,Facebook的工作MUPPET。

不过,笔者认为,这样的A+B,或许是未来通用自然语言处理模型的一个可能的解决方案。

首先通过大量的无标记语料训练千亿参数级别的大规模自回归预训练模型,第二步,通过设计指令(Instruction Tuning) 的方式让这样的模型能够对理解和生成任务进行微调。在微调的过程中可以采用类似于课程学习的方式,先学习底层的任务(如命名实体识别,序列语义标注),再学习上层的任务(如逻辑推理,问答);先学习资源丰富的任务(如英语/大数据任务),再学习资源较少的任务(如小语种、少数据任务),并利用适配器(Adapter)保留模型中任务专用的部分。最后,给出指令让模型面对新数据、新任务进行推理。

这样通用性更强的工作应该不会太远,也许资源丰富的大厂们已经在搞了呢~

后台回复关键词【入群

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

后台回复关键词【顶会

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

 

[1] Finetuned Language Models Are Zero-Shot Learners
https://arxiv.org/abs/2109.01652

[2] Multi-Task Deep Neural Networks for Natural Language Understanding
https://aclanthology.org/P19-1441/

[3] Muppet: Massive Multi-task Representations with Pre-Finetuning
https://arxiv.org/abs/2101.11038

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

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

相关文章

大数据:任务调度,手把手教你

大数据:任务调度https://blog.csdn.net/qq_43713049/article/details/116985497 文章目录 任务调度一、任务流调度的需求二、任务流调度的工具三、Oozie的简介四、Oozie的2种使用方式五、WorkFlow 与 Fork 和 Join六、SubFlow:子工作流七、定时调度的实现…

人脸识别 | 你的论文离CVPR , 还有多远?

最近,一则人脸识别安全性问题的新闻上了热搜。(图片来自网络)虽然让不少人产生了“人在家中坐,债从天上来”的担忧,但也不由感叹人脸识别的发展与普及。人脸识别发展至今,已经在众多领域中占领重要地位。这…

LeetCode 455. 分发饼干(贪心)

1. 题目 假设你是一位很棒的家长,想要给你的孩子们一些小饼干。但是,每个孩子最多只能给一块饼干。对每个孩子 i ,都有一个胃口值 gi ,这是能让孩子们满足胃口的饼干的最小尺寸;并且每块饼干 j ,都有一个尺…

开源开放 | 高质量体育赛事摘要数据集SGSum(CCKS2021)

OpenKG地址:http://openkg.cn/dataset/sgsumGitHub:https://github.com/krystalan/SGSum开放许可协议:CC BY-SA 4.0 (署名相似共享)贡献者:苏州大学(王佳安、张汀依、瞿剑峰、李直旭&#xff09…

消息队列设计精要

消息队列已经逐渐成为企业IT系统内部通信的核心手段。它具有低耦合、可靠投递、广播、流量控制、最终一致性等一系列功能,成为异步RPC的主要手段之一。 当今市面上有很多主流的消息中间件,如老牌的ActiveMQ、RabbitMQ,炙手可热的Kafka&#x…

数学教育中的AI:NeurIPS’21 Workshop 欢迎投稿!

Workshop主页:https://mathai4ed.github.io数学推理是一种人类独特的智慧能力,也是人类在对科学和知识的探寻道路上不可缺少的基石。不过,数学学习通常是一项极具挑战性的过程,因为它依赖于指导者对学习内容的设计、教学和评估。从…

python 处理 dataframe的汇总

0 处理异常 https://blog.csdn.net/m0_60862600/article/details/124913418?spm1001.2014.3001.5501 1 替换 示例 完整代码如下: from pandas import read_excelfiled:/student.xlsx #见第18章表18-1dfread_excel(file,sheet_name0,converters{学号:str})df[总分…

LeetCode 696. 计数二进制子串

1. 题目 给定一个字符串 s,计算具有相同数量0和1的非空(连续)子字符串的数量,并且这些子字符串中的所有0和所有1都是组合在一起的。 重复出现的子串要计算它们出现的次数。 示例 1 : 输入: "00110011" 输出: 6 解释: 有6个子串具有相同数量…

论文浅尝 - ISWC2021 | 当知识图谱遇上零样本视觉问答

论文题目:Zero-shot Visual Question Answering using Knowledge Graph本文作者:陈卓(浙江大学)、陈矫彦(牛津大学)、耿玉霞(浙江大学)、Jeff Z. Pan(爱丁堡大学)、苑宗港(华为)、陈华钧(浙江大学)发表会议:ISWC 2021论文链接:htt…

Java 8系列之重新认识HashMap

HashMap是Java程序员使用频率最高的用于映射(键值对)处理的数据类型。随着JDK(Java Developmet Kit)版本的更新,JDK1.8对HashMap底层的实现进行了优化,例如引入红黑树的数据结构和扩容的优化等。本文结合JDK1.7和JDK1.8的区别&…

利用Python进行数据分析+准备工作+缺失数据+数据转换+数据规整+数据聚合与分组运算

利用Python进行数据分析:准备工作 利用Python进行数据分析:缺失数据(基于DataFrame) 利用Python进行数据分析:数据转换(基于DataFrame) 利用Python进行数据分析:数据规整&#xf…

LeetCode 1042. 不邻接植花(图的数据结构)

1. 题目 有 N 个花园,按从 1 到 N 标记。在每个花园中,你打算种下四种花之一。 paths[i] [x, y] 描述了花园 x 到花园 y 的双向路径。 另外,没有花园有 3 条以上的路径可以进入或者离开。 你需要为每个花园选择一种花,使得通…

我用Transformer修复代码bug

源:机器之心本地化 Bug 并修复程序是软件开发过程中的重要任务。在本篇论文中,来自微软 CloudAI 部门的研究者介绍了 DeepDebug,一种使用大型预训练模型 transformer 进行自动 debug 的方法。首先,研究者基于 20 万个库中的函数训…

论文浅尝 | 一种基于递归超图的知识图谱问答方法

笔记整理 | 谭亦鸣,东南大学博士生来源:EACL’21链接:https://www.aclweb.org/anthology/2021.eacl-main.35.pdf概述与动机本文提出了一种基于递归超图的知识图谱问答方法RecHyperNet,作者认为人回答问题时倾向于在推理过程中递归…

模拟登录——添加cookies,使用postmanget请求网页数据

摘要: 在进行爬虫时,除了常见的不用登录就能爬取的网站,还有一类需要先登录的网站。比如豆瓣、知乎,以及上一篇文章中的桔子网。这一类网站又可以分为:只需输入帐号密码、除了帐号密码还需输入或点击验证码等类型。本文…

论文浅尝 | 神经网络是如何外推的:从前馈神经网络到图神经网络

笔记整理 | 王泽元,浙江大学在读硕士,研究方向为图神经网络,对比学习。什么是外推?指从已知数据的孤点集合中构建新的数据的方法。与插值(interpolation)类似,但其所得的结果意义更小&#xff0…

恕我直言,很多调参侠搞不清数据和模型谁更重要

作者:Dario Radecic,Medium 高质量技术博主编译:颂贤▲图源:[Brandon Lopez]一般的AI课程会介绍很多如何通过参数优化来提高机器学习模型准确性的方法,然而这些方法通常都存在一定的局限性。这是因为我们常常忽视了现代…

专访美团外卖曹振团:天下武功唯快不破

本文转自InfoQ中文网站,首发地址:http://www.infoq.com/cn/news/2016/06/Meituan-take-away 马云曾经说过:世界是懒人创造出来的。在“懒人”们的推动下,O2O的战火已经燃烧到了外卖行业。据报告,2015年外卖市场年交易额…

LeetCode 720. 词典中最长的单词(Trie树)

1. 题目 给出一个字符串数组words组成的一本英语词典。从中找出最长的一个单词,该单词是由words词典中其他单词逐步添加一个字母组成。若其中有多个可行的答案,则返回答案中字典序最小的单词。 若无答案,则返回空字符串。 示例 1: 输入: …

postman调的通,python调用程序却要显示登录

postman调的通,python调用程序却要显示登录 1 解决方案: 添加verify False 2 手动在网页上复制粘贴token和auth相关验证在这里插入代码片 import requests url "" requests.packages.urllib3.disable_warnings()s requests.Session()s.tr…