NLP怪兽GPT

Wesley13
• 阅读 529

2020年5月底OpenAI发布了有史以来最强的NLP预训练模型GPT-3,最大的GPT-3模型参数达到了1750亿个参数。论文《Language Models are Few-Shot Learners》长达74页已发布在arXiv。

视频讲解:

有网友估算最大的GPT-3模型大小大约有700G,这个大小即使OpenAI公开模型,我们一般的电脑也无法使用。一般需要使用分布式集群才能把这个模型跑起来。虽然OpenAI没有公布论文的花费,不过有网友估计这篇论文大约花费了上千万美元用于模型训练。

如此惊人的模型在模型的设计上和训练上有什么特别之处吗?答案是没有。作者表示GPT-3的模型架构跟GPT-2是一样的,只是使用了更多的模型参数。模型训练也跟GPT-2是一样的,使用预测下一个词的方式来训练语言模型,只不过GPT-3训练时使用了更多的数据。

既然这样,那这只怪兽特别之处是什么?GPT-3论文的核心在于下图:

NLP怪兽GPT

一般的NLP模型都是先预训练一个语言模型,然后再使用这个语言模型来进行Fine-tuning完成不同的任务。比如可以使用文本分类数据集Fine-tuning一个专门用于文本分类的NLP模型;可以使用翻译数据集Fine-tuning一个专门用于翻译的数据集;可以使用问答数据集Fine-tuning一个专门用于问答的数据集等等。

而GPT-3只训练了一个语言模型,没有针对任何任务进行Fine-tuning。但是却可以完成多项NLP任务,并且每一项任务都可以得到很好的效果。如上图所示,GPT-3作者提出了三种模型预测方式,Zero-shot,One-shot,Few-shot。

Zero-shot表示直接告诉GPT-3要做的事,然后让它给出结果。比如告诉它"Translate English to French:cheese=>",模型就会输出跟翻译得到的法文。

NLP怪兽GPT

One-shot表示给模型提出要求后给它举一个实际的例子:

NLP怪兽GPT

Few-shot表示给模型提出要求后给它举多个实际的例子:

NLP怪兽GPT

GPT-3神奇的地方就在于我们不需要Fine-tuning模型去学习翻译的任务,它就可以自己学会翻译。

同样的道理,作者使用GPT-3做了大量的实验,完成了大量NLP任务,比如作者用它来完成了填空,翻译,问答,阅读理解等任务并且都取得了不错的效果。而且它还可以用来做数学计算比如给它输入“Q:What is 48 plus 76?A:”,它会输出“124”。

NLP怪兽GPT

NLP怪兽GPT

从图标中我们可以看到两位数三位数的加减法做的还不错,位数太高的话准确率就会降低很多。毕竟这个模型的训练过程中从来没有学过数学,它只学习过根据前面的句子来预测后面一个词。所以它能够从词的预测中学习到基本的数学运算也是挺神奇的一件事。

另外它还可以进行文章生成,并且基本上达到了人类很难判别真假的水平。给它传入文章Title,它就可以生成文章内容:

NLP怪兽GPT

告诉它一个词的用法,还能让它进行造句:

NLP怪兽GPT

告诉它什么是正确的英文语法,什么是错误的英文语法,它还可以进行语法纠错:

NLP怪兽GPT

总结:

现在NLP任务的常规做法都是预训练一个语言模型,然后使用语言模型对不同任务进行Fine-tuning,一般Fine-tuning后的一个模型就只能完成一个专门的任务。而GPT-3就像是一个全能选手,基本上所有NLP的任务它都可以胜任并且可以得到不错的效果,这对NLP领域未来的发展来说可能是一个新的启发。

公众号后台回复今天日期:200609,即可下载论文。

NLP怪兽GPT

想学AI点击下方阅读原文:

👇

本文分享自微信公众号 - AI MOOC人工智能平台(AIMOOC_XLAB)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

点赞
收藏
评论区
推荐文章
blmius blmius
2年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
Wesley13 Wesley13
2年前
ALBERT了解一下,新的轻量版BERT,参数小了18倍,性能依旧SOTA
点击上方“AI公园”,关注公众号,选择加“星标“或“置顶”作者:LessWright编译:ronghuaiyang导读这是来自Google和Toyota的新NLP模型,超越Bert,参数小了18倍。TL;DR你以前的NLP模型参数效率低下,而且有些过时。祝你有美好的一天。谷歌Researc
Wesley13 Wesley13
2年前
AI终将砸掉程序员的饭碗,动动手就能自动写代码的GPT
近日OpenAI发布其最新的NLP模型GPT3(论文地址:https://arxiv.org/abs/2005.14165(https://www.oschina.net/action/GoToLink?urlhttps%3A%2F%2Farxiv.org%2Fabs%2F2005.14165)),并成功登顶了Github的趋势榜(https:/
Stella981 Stella981
2年前
Nginx + lua +[memcached,redis]
精品案例1、Nginxluamemcached,redis实现网站灰度发布2、分库分表/基于Leaf组件实现的全球唯一ID(非UUID)3、Redis独立数据监控,实现订单超时操作/MQ死信操作SelectPollEpollReactor模型4、分布式任务调试Quartz应用
Stella981 Stella981
2年前
Django中Admin中的一些参数配置
设置在列表中显示的字段,id为django模型默认的主键list_display('id','name','sex','profession','email','qq','phone','status','create_time')设置在列表可编辑字段list_editable
Wesley13 Wesley13
2年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
京东云开发者 京东云开发者
4个月前
直播预告 | 大模型时代 “应用变了”:看大模型如何跑进零售电商应用
走进零售电商,大模型能做什么?今年11.11,应用大模型带来成效显著今天下午2:00,京东云视频号准时直播看京东零售如何破题新解法,大小模型协同大模型将走向多模态,走向具身智能
Python进阶者 Python进阶者
3个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这