探讨GPT-3——这个具有代表性的⼤型语⾔模型的能⼒。
标题测试包括:
标准的⾃然语⾔处理(NLP)基准测试,例如问题回答;
⼀些特殊的⼀次性演示,例如在句⼦中使⽤新词。
对⽐每个任务的最新技术成果,我们发现GPT-3的结果参差不⻬:
在某些任务上,⽐如语⾔建模,GPT-3⼤幅度超越了现有技术的最⾼⽔平;
在其他任务上,GPT-3与训练有素,拥有⼤量标签数据的系统竞争时,却明显落后。
结果成因:
首先,GPT-3并未明确针对这些任务进⾏训练,它只是作为⼀个语⾔模型,被训练来预测下⼀个词。因此它并未过度拟合,意味着它有很⼤的潜⼒在许多其他任务上表现良好(就像在⼀次性任务上的表现⼀样)
其次,原则上你应能够利⽤⼤量的标签数据来适应GPT-3,并超越当前的技术⽔平。
2.1语⾔模型的适应性:从语⾔模型到任务模型的转化
1.在⾃然语⾔处理的世界中,语⾔模型 是⼀种对token序列x1:L的分布;
2.任务被定义为从输⼊映射到输出;
3.“适应(Adaptation)”⼀词来指代将语⾔模型转化为任务模型的过程。
这个过程需要以下两个输⼊:
1. 任务的⾃然语⾔描述
2. ⼀组训练实例(输⼊-输出对)
适应的方式:
1.训练(标准的有监督学习):训练⼀个新模型,使其能将输⼊映射到输出。这可以通过创建⼀个新模型并利⽤语⾔模型作为特征(探针法),或者从现有的语⾔模型出发,根据训练实例进⾏更新(微调),或者在这两者之间找到平衡(轻量级的微调)。
2.提示(上下⽂学习):根据描述和训练实例构建⼀个或⼀组提示,将其输⼊到语⾔模型中以获取完成的序列。
3.根据训练实例的数量,我们还可以进⼀步细分:
4.零样本学习(Zero-shot):训练样本为0
5.单样本学习(One-shot):训练样本为1
6.少样本学习(Few-shot):训练样本为少数
4.评估了GPT-3在⼤量任务上的表现,从以下几点讨论:
1.定义:任务是什么,以及其动机?
2.适应:我们如何通过提示将任务简化为语⾔模型?
3.结果:与任务特定的最先进模型相⽐,数量性能如何?
4.模型的⼤⼩和训练样本的数量都很重要,结果基于:
1.完整的GPT-3模型(davinci),其拥有1750亿参数
2.使⽤尽可能多的训练实例进⾏上下⽂学习,这些实例都可以塞进提示。
5.消融实验:查看模型的⼤⼩和上下⽂训练实例的数量是否真的重要。结果-更多总是更好的。
2.1.1任务一:Language Modeling
1.最⾃然的思考⽅式就是询问语⾔模型是否能完成其本职⼯作(对语⾔进⾏模拟)。
2.语⾔模型p是关于词汇序列的概率分布。
3.语言模型给出标准文本的概率就是联合概率分布,联合概率分解为每个令牌的条件概率的乘积,这是通过链式规则完成的。
4.困惑度(Perplexity)是⾃然语⾔处理和语⾔模型中的⼀个重要概念,⽤于衡量语⾔模型的性能。解释为模型在预测下⼀个词时的平均不确定性。,如果⼀个模型的困惑度较低,那么它在预测下⼀个词的时候就会更加准确。困惑度与语⾔模型的质量紧密相关。采⽤⼏何平均。困惑度可以被理解为每个标记(token)的平均"分⽀因⼦(branching factor)"。
5.两类错误:语⾔模型可能会犯两种类型的错误,⽽困惑度对这两种错误的处理⽅式并不对称:
1.召回错误:语⾔模型未能正确地为某个词符分配概率值。
2.精确度错误:语⾔模型为某些错误的词序列过度分配了概率值。
6.数据集:
1.Penn Tree Bank 是⾃然语⾔处理中的⼀个经典数据集,最初是为了进⾏句法解析⽽标注的。PTB语⾔模型基准测试涉及对原始数据集的⼀些重要预处理。结果: GPT-3⼤幅度的超过了⽬前的最好结果(state-of-the-art)
2.LAMBADA,该数据的任务:预测句⼦的最后⼀个词。动机:解决这个任务需要对较⻓的内容进⾏建模,并对较⻓的内容具有⼀定的依赖。
结果:GPT-3超过了v之前的最好结果(GPT-2)
3.HellaSwag,动机:评估模型进⾏常识推理的能⼒,任务:从⼀系列选择中选出最适合完成句⼦的选项,该数据是⼀个多项选择任务,所以最⾃然的做法是⽤语⾔模型为每个候选答案打分,并预测“最佳”答案。
1.未归⼀化的概率(Unnormalized probability):未归⼀化概率的问题是它倾向于短答案。
2.⻓度归⼀化概率(Length-normalized probability):⻓度相同的两个答案,模型仍可能偏好更受欢迎的实体。
3.频率归⼀化概率(Frequency-normalized probability):
结果:GPT-3接近但没有超过最先进的⽔平:
2.1.2任务二:Question answering
1.(闭卷)问答题,其中输⼊是⼀个问题,输出是⼀个答案。语⾔模型必须以某种⽅式“知道”答案,⽽⽆需在数据库或⼀组⽂档中查找信息。
2.数据集:
1.TriviaQA是一个阅读理解数据集,任务:给定⼀问题后⽣成答案原始数据集是由业余爱好者收集的,并被⽤作开放式阅读理解的挑战,但我们⽤它来进⾏(闭卷)问题回答。我们根据训练实例和问题定义⼀个提示,并将完成的内容作为预测的答案:
结果:GPT-3 (zero-shot)--64.3;GPT-3 (few-shot)--71.2。增加模型⼤⼩和增加in-context training实例都有助于提⾼性能。
2.WebQuestions,任务:和TriviaQA类似是问答任务数据集从Google搜索查询中收集,最初⽤于对知识库的问题回答。
结果:RAG--45.5;GPT-3 (zero-shot)--14.4;GPT-3 (few-shot)--41.5。
3.NaturalQuestions,任务:回答问题从Google搜索查询中收集的数据集(区别在于答案的⻓度较⻓)
结果:RAG--44.5;GPT-3 (zero-shot)--14.6;GPT-3 (few-shot)--29.9。
2.1.3任务三:Translation
1.翻译任务是将源语⾔(例如,德语)中的句⼦翻译成⽬标语⾔(例如,英语)中的句⼦。标准的评估数据集⽐如是WMT’14和WMT’16数据集。由于存在多种可能的翻译,所以(⾃动)评估指标是BLEU(它捕获了n-gram重叠的概念)。
结果:这⾥是从德语到英语的结果:SOTA (supervised)--40.2;GPT-3 (zero-shot)--27.2;GPT-3 (few-shot)--40.6。
即使没有监督训练数据,GPT-3也能达到全监督系统的最新技术⽔平!
这为机器翻译的性能设定了⼀个下限;因为肯定会想利⽤⼤量的平⾏语料库(对⻬的输⼊-输出对);
法语和罗⻢尼亚语的结果类似。
从英语到外语的结果要差得多,这是可以预料的,因为GPT-3主要是⼀个英语模型。
2.1.4任务四:Arithmetic
1.GPT-3是⼀个语⾔模型(主要是英语),但我们可以在⼀系列更“抽象推理”的任务上评估它,以评估GPT-3作为更通⽤模型的性能。
2.Arithmetic任务是做算术题(2-5位数的加法,减法,乘法)你没有实际的理由要解决这个问题;这只是⼀个诊断任务,满⾜我们的科学好奇⼼。
结果:从实验结果看起来,虽说不能认为GPT-3获得很好的结果,但是还是让我们惊艳,并对未来充满想象。
2.1.5任务五:News article generation
1.任务:给定标题和副标题,⽣成新闻⽂章。数据集:标题/副标题取newser.com。我们设⽴了⼀个评估标准,⼈类根据⽂章可能由机器编写的可能性对⽂章进⾏评分。
2.结果:⼈类只有52%的时间能够正确地分类“⼈类”与“机器”(⼏乎只是随机机会)。
2.1.6任务六:Novel tasks
1.使⽤新词,任务:给定⼀个新造的词和定义,⽣成使⽤该词的句⼦。
2.纠正英语语法,任务:给定⼀个不合语法的句⼦,⽣成其合语法的版本。
2.1.7任务七:Other tasks
1.GPT-3已应⽤于许多更多的任务,包括基准数据集(Benchmark)和⼀次性的演示(one-off deoms)
1.SWORDS:词汇替换,⽬标是在句⼦的上下⽂中预测同义词。
2.Massive Multitask Language Understanding:包括数学,美国历史,计算机科学,法律等57个多选问题。
3.TruthfulQA:⼈类由于误解⽽错误回答的问答数据集。
结果:虽说GPT-3在这些Benchmark数据集中的表现平庸,但是考虑到我们只使⽤了few-shot的情况,或许不算太差。
2.one-off Demos:
1.Examples from the OpenAI website
2.Examples from gpt3demo.com
这些演示既创新⼜有趣,但很难判断它们的可靠性如何。
2.1.8总结:
1.GPT-3在⼴泛的标准NLP基准测试和⼀次性任务上进⾏了评估。
2.GPT-3可以表现得极好或者⾮常普通。
3.增加模型的⼤⼩和示例的数量都有助于提⾼性能。
4.有⼀些启发式的⽅法可以将语⾔模型适应到感兴趣的任务。
5.为什么会有这样表现,还没法准确判断出原因。