赞
踩
本节除数据外的引用部分为自己补充的。
目录
在本次讲座中,我们将深入探讨GPT-3——这个具有代表性的大型语言模型的能力。我们的研究主要基于GPT-3论文中的基准测试,这些测试包括:
自然语言的基准测试是用于评估和比较不同自然语言处理系统性能的一组标准化测试集合。这些测试集合由人类标注或创建,用于衡量系统在不同语言任务上的准确性、流畅性和理解能力。例如:语义相似性任务、问答任务、机器翻译、命名实体识别等。
对比每个任务的最新技术成果,我们发现GPT-3的结果参差不齐:
对于这些结果,我们应如何理解呢?
首先,我们需要明白,GPT-3并未明确针对这些任务进行训练,它只是作为一个语言模型,被训练来预测下一个词。然而,即便没有“特别努力”,GPT-3平均来看,仍然可以在广泛的NLP任务中做得不错。
由于GPT-3并未特别针对任何这些任务进行训练,因此它并未过度拟合,意味着它有很大的潜力在许多其他任务上表现良好(就像在一次性任务上的表现一样)。
此外,如果你希望在任何特定任务(例如问题回答)上表现良好,原则上你应能够利用大量的标签数据来适应GPT-3,并超越当前的技术水平。
标签数据是指已经经过人工标注或者有人为指定的正确答案或标签的数据。
对于问题回答任务,标签数据可以是包含问题和对应正确答案的数据集。通过将这些问题和答案作为训练数据,GPT-3可以学习到问题和答案之间的关联,并在类似的问题上给出正确的回答。
在自然语言处理的世界中,语言模型p是一种对token序列的分布。这样的模型能够用于评估序列,例如p(themouse,ate,the,cheese)。同样,它还能用于在给定提示的条件下生成完成的序列,如the mouse ate~the cheese。
在这里,任务被定义为从输入映射到输出。以问答任务为例,我们可能有如下的输入输出:
输入:What school did Burne Hogarth establish?
输出:School of Visual Arts
我们使用“适应(Adaptation)”一词来指代将语言模型转化为任务模型的过程。这个过程需要以下两个输入:
- 任务的自然语言描述:是指对于特定的任务,使用自然语言文本来清晰地描述该任务的要求和目标。这个描述通常包括对输入和输出的说明,以及任务的具体要求和限制。
- 举例来说,对于一个机器翻译任务,自然语言描述可以是:"将英文文本翻译成法文文本"。这个描述简洁地表达了任务的目标和要求。
- 一组训练实例是指为了进行模型的训练和适应,需要提供一系列的输入-输出对作为训练数据。这些输入-输出对是根据任务描述和任务要求创建的,在训练过程中用于训练模型。
- 以机器翻译任务为例,训练实例可以是一组英文句子和对应的法文翻译。这些实例将被用于训练语言模型,使其能够学习从英文到法文的翻译规律。
我们主要有两种方式来进行这种适应:
语言模型到任务模型的转换是指将一个通用的语言模型,如GPT-3,通过对特定任务进行微调或迁移学习,使其能够在该任务上表现得更好。简单来说,任务模型是在通用语言模型的基础上,针对特定任务进行了优化和调整的模型。
对于特定任务,我们通常需要模型能够根据给定的输入和任务要求,提供准确的答案、执行特定的操作或解决特定的问题。
为了实现这一点,我们可以将语言模型转换为任务模型。这通常涉及两个步骤:微调和任务特定训练。
- 在微调阶段,我们使用特定任务的标签数据或指导性信号来调整语言模型的参数,使其在该任务上表现更好。通过在任务数据上进行有监督的训练,模型可以学习到任务的模式和要求,并调整其内部表示和生成策略。
- 在任务特定训练阶段,我们可以使用任务特定的数据集对模型进行进一步的训练,以进一步优化性能。这可以包括使用有监督的、半监督的或无监督的学习方法,根据任务的要求进行模型训练和调整。
根据训练实例的数量,我们还可以进一步细分:
在这个选择过程中,训练可能会因为过拟合而变得具有挑战性(例如,想象一下根据5个例子微调一个有1750亿参数的模型)。如何有效进行训练将会在这门课程之后中进行讨论。现在,我们将先满足于使用提示进行GPT-3的适应。但是值得注意的是,提示的局限性在于我们只能利用少量的训练实例(最多只能塞进一个提示的数量)。这种输入的局限性由于Transformer自身的局限性导致的,其中提示和完成都必须适应2048个tokens。
Transformer是一种深度学习模型架构,用于处理序列到序列的任务,如机器翻译、文本生成等。GPT-3是基于Transformer架构构建的。
Transformer模型也有一些局限性。其中之一是输入的长度限制。在GPT-3中,提示和完成的组合最多只能包含2048个tokens,包括任务描述和训练实例。这意味着在适应过程中,只能使用有限的训练实例来训练模型。如果输入超过了这个限制,就需要进行截断或其他处理来适应模型的要求。
在GPT-3的论文中,作者们评估了GPT-3在大量任务上的表现。我们将选择其中的一部分,对于每个任务,我们会讨论以下几点:
模型的大小和训练样本的数量都很重要。默认情况下,结果将基于:
在此过程中,我们将进行消融实验,以查看模型的大小和上下文训练实例的数量是否真的重要。而结果告诉我们,答案是肯定的,更多总是更好。我们选择的任务如下:
消融实验是一种研究方法,用于确定各个组成部分对整体系统性能的影响。在自然语言处理领域,消融实验可以用来研究模型大小和训练样本数量对模型性能的影响。
在GPT-3的消融实验中,我们将逐步减少模型的参数数量或减少训练实例的数量,以观察模型性能的变化。我们还将逐步增加模型大小或增加训练实例的数量,以查看性能的改善程度。
在自然语言处理(NLP)中,除了对大型语言模型的考虑,我们还需要回顾一些基本任务。例如,对GPT-3的功能有一定的了解,并对提示工程的艺术有所体验。这都是研究语言模型的重要内容。一种最自然的思考方式就是询问语言模型是否能完成其本职工作(对语言进行模拟)。
我们回顾之前在引言中提到的语言模型的内容,语言模型p是关于词汇序列的概率分布。假设我们有一段文本,例如:
the mouse ate the cheese
我们可以询问:语言模型会给这段文本分配什么概率?
我们知道,可以将联合概率分解为每个令牌的条件概率的乘积,这是通过链式规则完成的:
困惑度(Perplexity)是一个重要的指标,是自然语言处理和语言模型中的一个重要概念,用于衡量语言模型的性能。它可以解释为模型在预测下一个词时的平均不确定性。简单来说,如果一个模型的困惑度较低,那么它在预测下一个词的时候就会更加准确。对于给定的语言模型和一个测试数据集,困惑度被定义为:
其中,X=是测试集中的词序列,N是测试集中的总词数。困惑度与语言模型的质量紧密相关。一个优秀的语言模型应能准确预测测试数据中的词序列,因此它的困惑度应较低。相反,如果语言模型经常做出错误的预测,那么它的困惑度将较高。
一个序列的联合概率取决于其长度,并且随着长度的增长,其值趋近于零,这使得困惑度变得难以追踪。直观上,我们希望对每个词标记(token)的概率进行平均。这里的表示给定之前的词序列后,下一个词出现的概率。这样做的目的是评估模型在处理各种词标记时的平均性能。
我们不希望采取算术平均,因为如果我们给一个词标记分配了0的概率(即我们的模型认为这个词在特定的上下文中绝对不可能出现),那么在算术平均中这会造成极大的问题。然而,算术平均并不会为此惩罚你,因为它简单地将所有词标记的概率加在一起,然后除以总数,因此一个非常低的概率(如0)可能会被其他较高的概率抵消。
相反,我们希望采用几何平均,这就是困惑度(perplexity)所做的。在几何平均中,每个词标记的概率都被同等看待,并且一个极低的概率(如0)将会导致整个几何平均大幅度下降。因此,通过计算几何平均,我们可以更好地衡量模型在处理所有可能的词标记时的性能,特别是在处理那些模型可能会出错的情况。
困惑度可以被理解为每个标记(token)的平均"分支因子(branchingfactor)"。这里的“分支因子”,可以理解为在每个特定的词或标记出现后,语言模型预测下一个可能出现的词或标记的平均数量。因此,它实际上是度量模型预测的多样性和不确定性的一种方式。
这个理解与公式中的密切相关,这个表达式代表了编码长度。我们在计算的是平均编码长度,这个长度反映了给定当前词或标记后,下一个词或标记可能的选择数量。因此,通过对平均编码长度取指数,我们可以得到可能的选择数量,这也就是“分支因子”。
为了更好地理解,我们可以考虑一个均匀分布的例子:一个长度为3的二进制字符串可以编码=8个可能的字符串。这个例子类似于我们的语言模型:在给定特定词或标记后,模型需要从多个可能的选项中预测下一个词或标记。如果选择的可能性多,模型的预测任务就更为复杂,相应的困惑度就会更高。
困惑度 = exp(交叉熵损失 / 总词符数)
其中,交叉熵损失是模型对于给定序列的预测结果与真实序列之间的交叉熵损失值,总词符数是序列中的词符总数。
交叉熵损失是一种用于衡量模型预测结果与真实结果之间差异的指标。交叉熵损失越小,表示模型的预测结果与真实结果越接近,模型性能越好。
具体地,对于一个给定的序列,假设语言模型对于每个词符的预测概率分布为,那么交叉熵损失可以通过以下公式计算:
交叉熵损失 = -1/L * Σ log(p(xi | x1:i-1))
其中,log表示自然对数,Σ表示对所有词符的求和。
两类错误:语言模型可能会犯两种类型的错误,而困惑度对这两种错误的处理方式并不对称:
那么,我们可以计算在q下的的困惑度:
其中,最后一个近似等式在的值较小时成立。如果我们混入5%的垃圾信息,那么困惑度只增加5%。需要注意的是,这样生成的语言结果会非常糟糕,因为平均每20个词符就会生成一个无意义的词符。
现在,我们继续评估实际数据集上的困惑度。
Penn Tree Bank 是自然语言处理中的一个经典数据集,最初是为了进行句法解析而标注的。从Emami和Jelinek(2004)和Mikolov和Zweig(2012)开始,一个只包含华尔街日报文章的版本被用作语言模型评估。需要注意的是,PTB语言模型基准测试涉及对原始数据集的一些重要预处理(感谢ohn Hewitt的指出)。
适应性测试。将整个文本作为提示输入到GPT-3中,并评估其困惑度(示例):
Pierre Vinken, 61 years old, will join the board as a nonexecutive director Nov. 29. Mr. Vinken is
chairman of Elsevier N.V. the Dutch publishing group.
结果:GPT-3大幅度的超过了目前的最好结果(state-of-the-art)
Model | Perplexity |
GPT-3 | 20.5 |
BERT-Large-CAs1 | 31.3 |
那这个结果是否存在训练/测试泄露问题呢?作者没有在一些数据集上进行评估,例如WikiText-103。我们知道GPT-3是在维基百科上进行训练的,因此在这方面PTB是具有优势的,因为它早于互联网,并且只能通过付费许可获得,或许泄露问题会有所缓解。但是我们也要知道,数据泄露是当前大型数据集的另一个复杂问题:很难检查你的测试数据是否出现在你的训练数据中,并被记忆下来。
PTB和维基百科在语言模型的训练和评估方面具有不同的优势和特点。
- PTB作为一个受控的语料库,由新闻文章等来源提取的句子组成,相对而言比较干净且受限。它在一些研究领域中被广泛使用,特别是在学术界。由于其受控的性质,PTB可以提供相对一致和准确的标注信息,有助于构建和评估语言模型。
- 维基百科作为一个大规模的在线百科全书,包含了广泛的主题和领域的文章。它的数据更加丰富多样,可以提供更广泛的语言知识和语境。维基百科训练的语言模型(如GPT-3)可以更好地理解和生成各种类型的文本,涵盖更多的领域和主题。
该数据的任务:预测句子的最后一个词。
动机:解决这个任务需要对较长的内容进行建模,并对较长的内容具有一定的依赖。
由于LAMBADA本身就是一个语言模型任务,所以我们可以直接要求语言模型完成句子的最后一个词。但是这里有一个问题,语言模型不知道它应该生成句子的最后一个词。因此为了解决这个委托方,我们需要更明确地将其构建为输入-输出映射,并使用额外的示例进行上下文学习(示例):
Fill in blank:
Alice was friends with Bob. Alice went to visit her friend ____. -> Bob
She held the torch in front of her.
She caught her breath.
"Chris? There's a step."
“What?”
“A step. Cut in the rock. About fifty feet ahead.”She moved faster. They both moved faster."In fact, she said, raising the torch higher,"there's more than a __. -> step
结果:**GPT-3超过了v之前的最好结果(GPT-2)
Model | Perplexity |
GPT-3 (few-shot) | 1.92 |
SOTA | 8.63 |
动机:评估模型进行常识推理的能力
任务:从一系列选择中选出最适合完成句子的选项
该数据是一个多项选择任务,所以最自然的做法是用语言模型为每个候选答案打分,并预测“最佳”答案(示例):
Making a cake: Several cake pops are shown on a display. A woman and girl are shown making the cake pops in a kitchen. They $(answer)
其中$answer 是以下选项之一:
给定一个问题x,你如何对候选答案y进行评分呢?没有明确的答案,但这里有一些启发式方法:
未归一化的概率:这种方法使用模型生成答案y的概率作为评分。即,给定问题x,模型生成答案y的概率越高,其得分也越高。然而,这种方法可能会有长度偏见,倾向于选择较短的答案,因为较短的答案通常会比较容易生成。
长度归一化概率:这种方法通过将答案y的概率归一化为其长度来修正长度偏见。具体来说,评分(score)等于模型生成答案y的概率 (p(x,y) ) 除以答案y的标记数量(num-tokens(y))。通过这种方式,可以更公平地比较长度不同的答案,并避免过分偏好较短的答案。
频率归一化概率:这种方法通过将答案y的概率归一化为答案y出现在一个中立字符串(如'Answer:')后的概率。具体来说,评分(score)等于模型生成答案y的概率(p(y|x))除以答案y出现在中立字符串后的概率(p(y|x0)),其中x0是一个中立的字符串。这种方法可以降低恰巧很常见的答案(如“John”)的得分,从而避免过分偏好常见的实体。
对频率归一化的理解:频率归一化概率的目的是通过将答案的概率归一化为答案在给定问题背景下的条件概率,来降低常见答案的得分。具体来说,这种方法将模型生成答案的概率除以答案出现在一个中立字符串之后的概率。这个中立字符串(例如'Answer:')的作用是提供一个中性的背景,使得答案在这个背景下的条件概率能够更好地反映答案的相对频率。通过这种归一化,假设一个常见的答案如"John"在给定的问题中出现的频率很高,但在其他问题中也可能出现。当模型生成"John"作为答案时,它的概率会被除以答案出现在中立字符串后的概率,这样就可以降低"John"的得分,使得其他可能的答案得到更高的评分。
结果:GPT-3接近但没有超过最先进的水平:
Model | Accuracy |
SOTA | 85.6 |
GPT-3 | 79.3 |
我需要知道的是,SOTA结果是在该数据集的训练集中微调得到的结果,因此GPT-3在完全不在该数据集训练的情况下获得了接近的结果是很令人惊喜的。
总结:
GPT-3降低困惑度的过程是通过使用不同的数据集和训练方法来实现的,其中包括Penn Tree Bank(PTB)和LAMBADA。
- Penn Tree Bank是一个受控的语料库,它包含了从新闻文章中提取的英语句子。通过在PTB上进行训练,GPT-3可以学习到句子的语法结构、词汇用法和句子之间的关系。这有助于提高模型对句子的理解能力和生成准确、流畅的文本。
- LAMBADA是一个任务型语料库,其中包含了需要对上下文有深入理解才能回答的问题。通过在LAMBADA上进行训练,GPT-3可以学习到上下文信息的重要性,并能更好地理解和预测句子的结尾。这有助于提高模型在上下文相关任务中的性能,减少困惑度。
我们现在考虑(闭卷)问答题,其中输入是一个问题,输出是一个答案。语言模型必须以某种方式“知道”答案,而无需在数据库或一组文档中查找信息。
Input:What school did burne hogarth establish? Output:School of Visual Art
任务:给定一问题后生成答案
原始数据集是由业余爱好者收集的,并被用作开放式阅读理解的挑战,但我们用它来进行(闭卷)问题回答。我们根据训练实例和问题定义一个提示,并将完成的内容作为预测的答案:
Q:'Nude Descending A Staircase' is perhaps the most famous painting by which
20th century artist?
A:Marcel Duchamp
结果:
Model | Accuracy |
RAG | 68.0 |
GPT-3 (zero-shot) | 64.3 |
GPT-3 (few-shot) | 71. |
我们也看到,增加模型大小和增加in-context training实例都有助于提高性能:
任务:和TriviaQA类似是问答任务
数据集从Google搜索查询中收集,最初用于对知识库的问题回答。我们定义一个提示,就如TriviaQA一样(演示):
Q:What school did burne hogarth establish?
A:School of Visual Arts
结果:
Model | Accuracy |
RAG | 45.5 |
GPT-3 (zero-shot) | 14.4 |
GPT-3 (few-shot) | 41.5 |
任务:回答问题
从Google搜索查询中收集的数据集(区别在于答案的长度较长)我们和上面一样定义一个提示:
Q:Who played tess on touched by an angel?
A:Delloreese Patricia Early (July 6, 1931 -
November 19, 2017), known professionally as Della Reese.
结果:
Model | Accuracy |
RAG | 44.5 |
GPT-3 (zero-shot) | 14.6 |
GPT-3(few-shot) | 29.9 |
翻译任务是将源语言(例如,德语)中的句子翻译成目标语言(例如,英语)中的句子。自1960年代以来,机器翻译一直是NLP的长期任务,2000年代开始,在NLP(拥有自己独特的子社区)中,统计机器翻译开始飞速发展,紧随其后的是2010年代中期的神经机器翻译。由于存在人类翻译者,因此它一直是一个数据丰富的领域。标准的评估数据集比如是WMT'14和WMT'16数据集。由于存在多种可能的翻译,所以(自动)评估指标是BLEU(它捕获了n-gram重叠的概念)。对于Few-shot的情况,我们构造了一个包含输入-输出训练实例以及输入的提示(演示):
Mein Haus liegt auf dem Hügel. = My house is on the hill.
Keinesfalls dürfen diese für den kommerziellen Gebrauch verwendet werden. = In no case may they be used for commercial purposes.
BLEU(Bilingual Evaluation Understudy)是机器翻译领域中一种常用的自动评估指标。它旨在衡量机器翻译系统生成的翻译结果与人工参考翻译之间的相似度。
BLEU使用n-gram重叠的概念来度量候选翻译与参考翻译之间的匹配程度。它计算候选翻译中与参考翻译相匹配的n-gram数量,并将其归一化为候选翻译中的总n-gram数量。BLEU考虑了不同n-gram的重要性,通常使用1-gram到4-gram,并为每个n-gram计算一个权重。
对于每个n-gram,BLEU计算候选翻译中与参考翻译相匹配的n-gram数量,并将其累加得到总匹配数。然后,它计算候选翻译和参考翻译中的n-gram总数,并将总匹配数除以总数以得到BLEU分数。最后,为了惩罚过长的候选翻译,BLEU还引入了一个惩罚项,通过计算候选翻译的长度与参考翻译的长度之比来调整分数。
BLEU的取值范围通常为0到1之间,越接近1表示候选翻译与参考翻译越相似。
结果:这里是从德语到英语的结果:
Model | Accuracy |
SOTA (supervised) | 40.2 |
GPT-3 (zero-shot) | 27.2 |
GPT-3 (few-shot) | 40.6 |
因为机器翻译通常会利用大量的平行语料库(对齐的输入-输出对)进行训练。
因为GPT-3在处理英语方面有更多的训练数据和经验,而对其他语言的理解可能相对较弱。这就设定了一个下限,即从英语到外语的翻译结果可能不如从其他语言到英语的翻译结果。
GPT-3是一个语言模型(主要是英语),但我们可以在一系列更“抽象推理”的任务上评估它,以评估GPT-3作为更通用模型的性能。这里的Arithmetic任务是做算术题(2-5位数的加法,减法,乘法)你没有实际的理由要解决这个问题;这只是一个诊断任务,满足我们的科学好奇心。我们将问题提出为问题回答:
Q: What is 556 plus 497?
A:1053
结果:
从实验结果看起来,虽说不能认为GPT-3获得很好的结果,但是还是让我们惊艳,并对未来充满想象。
任务:给定标题和副标题,生成新闻文章。
数据集:标题/副标题取自newser.com。
我们设立了一个评估标准,人类根据文章可能由机器编写的可能性对文章进行评分。我们在上下文学习中给模型提供提示样本:
Title: United Methodists Agree to Historic Split Subtitle:Those who oppose gay marriage will form their own denomination
Article:After two days of intense debate, the United Methodist Church has agreed to a historic split - one that is expected to end in the creation of a new denomination, one that will be
"theologically and socially conservative,"according to The Washington Post. The majority of delegates attending the church's annual General Conference in May voted to strengthen a ban on the ordination of LGBTQ clergy and to write new rules that will "discipline" clergy who officiate at same-sex weddings. But those who opposed these measures have a new plan:They say they will form a separate denomination by 2020, calling their church the Christian Methodist denomination...
结果:人类只有52%的时间能够正确地分类“人类”与“机器”(几乎只是随机机会)。
任务:给定一个新造的词和定义,生成使用该词的句子。
我们依旧只需在提示中描述任务:
To“screeg”something is to swing a sword at it. An example of a sentence that uses the word screeg is: We screeged the tree with our swords.
任务:给定一个不合语法的句子,生成其合语法的版本。
我们通过给出提示来描述任务(提示是有输入和输入对组成的):
Poor English input:I eated the purple berries.
Good English output:I ate the purple berries.
Poor English input:Thank you for picking me as your designer. I'd appreciate it.
Good English output:Thank you for choosing me as your designer. I appreciate it.
Poor English input:The mentioned changes have done. or I did the alteration that you
requested. or I changed things you wanted and did the modifications.
Good English output:The requested changes have been made. or I made the alteration that you requested. or I changed things you wanted and made the modifications.
Poor English input:I'd be more than happy to work with you in another project.
Good English output:I would be happy to work with you on another project.
自原始论文以来,GPT-3已应用于许多更多的任务,包括基准数据集(Benchmark)和一次性的演示(one-off deoms)。以下是一个不详尽的列表:
Benchmarks:
结果:虽说GPT-3在这些Benchmark数据集中的表现平庸,但是考虑到我们只使用了few-shot的情况,或许不算太差。
one-off Demos:
这些演示既创新又有趣,但很难判断它们的可靠性如何。
延伸阅读
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。