赞
踩
本篇论文也是由OpenAI提出的大名鼎鼎的GPT-3工作。GPT-3的规模再一次扩大,参数更是达到了175billion,是之前任何一个非稀疏模型的10倍。言简意赅地说,GPT-3是一个 "大力出奇迹"的工作 。GPT-3也在很多自然语言处理任务中,表现的十分出色,比如翻译,问答,推理,数学运算等等。同时,作者也发现GPT-3能够生成一些新闻文章,这些新闻文章人类是很难去分辨到底是人类还是AI生成的,这也算是GPT-3的一大卖点。当然,GPT-3的另一大卖点是不需要任何的梯度更新和微调,这点和之前的语言模型都不同。
当然,作者也就为什么要直接使用预训练的模型,不需要进行微调说了如下几个原因:
所以作者在这里把模型直接在预训练的时候训练足够大的、各种各样的数据集,然后不用做微调直接在子任务上应用的学习方式称之为meta-learning
, 也叫做 in-context learning
。再简单来解释这两个词的意思就是说语言模型在训练的时候就训练出了足够的能力,然后可以在各种任务上得以运用。在做任务的时候,我们可以给出具体的任务描述以及一些指示,和例子,让模型能够根据指示和例子,完成接下来的工作。
在这篇论文中,作者对于指示和例子,是用"prompt"和"shot"这两个单词来阐明的。作者提出了Zero-Shot
,One-Shot
和Few-shot
。下图是作者对此进行的实验说明:
从图中我们可以得到如下几个信息:
Few-shot
效果会比Zero-shot
和One-shot
更好些。作者同样用如下另外一张图来说明Few-shot
表现会更好这个结论。
从上图可以得出,尽管随着参数的增加,Zero-shot
的模型表现已经在快速上升,但是Few-shot
的模型表现上升速度更快,精度更高。
作者主要用一张图来说明刚刚说到的三种不同设置的in-context learning与传统的fine-tuning模型有什么不同。
从上图我们可以看出传统的fine-tuning模型需要使用大量的数据然后不断地更新梯度来让模型执行任务,但是对于in-context learning而言,并不需要更新梯度,只需要告诉模型任务是什么,可以给一个例子,或者不给例子,又或者给几个例子,来让模型更好的完成任务。
关于模型的架构介绍,作者其实在这里没有用很多的篇幅介绍,只是简要地说明了下是使用了和GPT-2相同的基本架构,那其实GPT-3也采用了Transformer架构,当然也做了一些调整,包括修改过的模型的初始化,预归一化,可逆初始化,以及在Transformer中使用的是交替的密集和局部带状稀疏注意力模式类似于Sparse Transformer。
这里想对这几个调整再进一步解释一下,说下自己的理解,如果有不对,还请指出。
作者也同时制作了有关GPT-3的好几个模型版本,如下图所示:
我们可以看到关于GPT-3,作者一共是做了8个版本。
n
p
a
r
a
m
s
n_{params}
nparams是总共可训练的参数,
n
l
a
y
e
r
s
n_{layers}
nlayers是层数,
d
m
o
d
e
l
d_{model}
dmodel是模型的维度,
d
h
e
a
d
s
d_{heads}
dheads是注意力机制的维度。值得注意的一点是随着模型的增大,Batch Size 是慢慢增大的,但是学习率是逐渐的减小的。
正如之前在本文中一直提到的那样,训练像GPT-3这样的模型需要巨大的数据集。以下是训练GPT-3模型用到的数据集。
可以看到GPT-3模型是由Common Crawl
,Web Text2
, Books1
, Books2
, Wikipedia
组成。 值得注意的是尽管Common Crawl
数据集量达到了惊人的410billion,但是在整个训练过程中,只占到了60%权重,作者也说了他们是故意不按照数据集大小比例来训练的,这样做的好处是能确保模型在不同类型的数据上都能保持良好的性能。
下图是各种GPT-3三种设置以及在这之前语言模型在补全任务(completion task)上取得的最好的成绩。
我们可以看到GPT-3几乎在这几个表现上都取得了很不错的表现,当然在StoryCloze
,HellaSwag
上表现没有超过SOTA,在LAMBADA
上超过了SOTA。值得注意的是在Few-Shot
设定下,GPT-3表现的是最好的。下图是GPT-3在Lambada上的具体表现。
根据上图我们可以看出,三种设置的GPT-3都是随着参数增加,在Lambda的表现上精度越来越好。同时,Few-Shot
下的GPT-3的表现更加突出,甚至在参数量175B的情况下表现已经接近了人类。我们也完全有理由相信,在计算资源允许的情况下,随着参数量的进一步增长,语言模型的表现是完全可以超过人类的。
在问答任务(QA tasks)中,GPT-3及其他模型取得的表现如下所示:
我们可以看到在TriviaQA
中Zero-Shot
的GPT-3的表现已经超过T5-11B了,以及在Few-Shot
上GPT-3的表现再次比Zero-Shot
和One-Shot
好。
下图是三种不同设置下GPT-3在TriviaQA
上的表现。
可以看到在Few-Shot
下,GPT-3的效果是最好的
在WebQS
上,Few-Shot
的GPT3表现已经超过了T5-11B(Fine-tuned, Closed-Book), 也与T5-11B+SSM很接近。与TriviaQA
不同的是,在WebQS
上,GPT-3在Zero-Shot
,One-Shot
和Few-Shot
上增幅更大。
在NaturalQS
上,GPT-3Zero-Shot
达到了14.6%, One-Shot
达到了23.0%, Few-Shot
达到了29.9%。与在WebQS
上相似的是我们可以看到从Zero-Shot
到Few-Shot
GPT-3实现大幅增益,这可能是因为样本数据分布的变化,这也解释了为什么GPT-3相对于其他两个任务,在NaturalQS
上表现会差一点。当然还有一个原因是NaturalQS
更倾向于问一些非常细颗粒度的知识,特别是在Wikipedia上,这也是在测试GPT-3模型的知识容量和广泛预训练的极限。
由于这篇论文的实验实在太多,受篇幅影响,这里只讲了如上两个任务的结论,其他任务可参考原论文
在这篇论文中,作者除了提到了GPT-3优秀的表现外,当然也提到了GPT-3目前的局限性,需要后续进一步的探索。
作者认为如果制作一个与GPT-3规模相当的双向模型,或者尝试让双向模型与少样本或零样本学习一起工作,也是未来的一个研究方向,可以实现两全其美。
当然作者在原论文中还提到了其他更多的局限性,也需要后续进一步的探索,这里只是仅仅总结了一些主要的点。比如作者在原论文中也提到了还需要提高预训练样本的效率,以及语言模型的可解释性等
作者在这篇论文中还谈到了GPT-3的社会影响力,包括能帮助人们写代码,写作补全,回答问题,提升搜索响应等,但同样GPT-3如果不被正确使用的话,也会带来一些有害的影响,比如人们不能分辨有的文章到底是人类写的还是它写的。所以作者在这里还特别从性别,宗教,种族,等方面谈论了GPT-3会带来的影响,以及它会产生的问题。
通过这篇论文我们可以发现GPT-3的模型参数,训练数据都是惊人的,以及作者做了大量的实验来说明GPT-3在不同的语言任务上的出色表现,以及未来更多探索的方向。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。