datawhale组队学习9月-Day2

写在前面

昨天的内容因为比较简单和轻松,而且昨晚看了奥本海默,所以今天早上起来之后准备边看奥本海默的解析之类的视频,一边学点什么。

本日学习内容

研究主要基于GPT-3论文中的基准测试,这些测试包括:

  • 标准的自然语言处理(NLP)基准测试,例如问题回答;
  • 一些特殊的一次性演示,例如在句子中使用新词。

对比每个任务的最新技术成果,我们发现GPT-3的结果参差不齐

  • 在某些任务上,比如语言建模,GPT-3大幅度超越了现有技术的最高水平;
  • 在其他任务上,GPT-3与训练有素,拥有大量标签数据的系统竞争时,却明显落后。

对于这些结果,我们应如何理解呢?

首先,我们需要明白,GPT-3并未明确针对这些任务进行训练,它只是作为一个语言模型,被训练来预测下一个词。 然而,即便没有“特别努力”,GPT-3平均来看,仍然可以在广泛的NLP任务中做得不错。

由于GPT-3并未特别针对任何这些任务进行训练,因此它并未过度拟合,意味着它有很大的潜力在许多其他任务上表现良好(就像在一次性任务上的表现一样)。

此外,如果你希望在任何特定任务(例如问题回答)上表现良好,原则上你应能够利用大量的标签数据来适应GPT-3,并超越当前的技术水平。

2.1 语言模型的适应性:从语言模型到任务模型的转化

在自然语言处理的世界中,语言模型 p p p 是一种对token序列 x 1 : L x_{1:L} x1:L 的分布。这样的模型能够用于评估序列 。同样,它还能用于在给定提示的条件下生成完成的序列。

在这里,任务被定义为从输入映射到输出。以问答任务为例,我们可能有如下的输入输出:

输入:What school did Burne Hogarth establish?
输出:School of Visual Arts

我们使用“适应(Adaptation)”一词来指代将语言模型转化为任务模型的过程。这个过程需要以下两个输入:

  1. 任务的自然语言描述
  2. 一组训练实例(输入-输出对)

我们主要有两种方式来进行这种适应:

  • 训练(标准的有监督学习):训练一个新模型,使其能将输入映射到输出
    这可以通过创建一个新模型并利用语言模型作为特征(探针法),或者从现有的语言模型出发,根据训练实例进行更新(微调),或者在这两者之间找到平衡(轻量级的微调)。
  • 提示(上下文学习):根据描述和训练实例构建一个或一组提示,将其输入到语言模型中以获取完成的序列。
    • 根据训练实例的数量,我们还可以进一步细分:
      • 零样本学习(Zero-shot):训练样本为0
      • 单样本学习(One-shot):训练样本为1
      • 少样本学习(Few-shot):训练样本为少数

在这个选择过程中,训练可能会因为过拟合而变得具有挑战性(例如,想象一下根据5个例子微调一个有1750亿参数的模型)。现在,我们将先满足于使用提示进行GPT-3的适应。但是值得注意的是,提示的局限性在于我们只能利用少量的训练实例(最多只能塞进一个提示的数量)。这种输入的局限性由于Transformer自身的局限性导致的,其中提示和完成都必须适应2048个tokens。

在GPT-3的论文中,作者们评估了GPT-3在大量任务上的表现。我们将选择其中的一部分,对于每个任务,我们会讨论以下几点:

  • 定义:任务是什么,以及其动机?
  • 适应:我们如何通过提示将任务简化为语言模型?
  • 结果:与任务特定的最先进模型相比,数量性能如何?

模型的大小和训练样本的数量都很重要。默认情况下,结果将基于:

  • 完整的GPT-3模型(davinci),其拥有1750亿参数
  • 使用尽可能多的训练实例进行上下文学习,这些实例都可以塞进提示。

我们进行消融实验,以查看模型的大小和上下文训练实例的数量是否真的重要。而答案是肯定的,更多总是更好。

2.1.1 Language Modeling

在自然语言处理(NLP)中,除了对大型语言模型的考虑,我们还需要回顾一些基本任务。
例如,对GPT-3的功能有一定的了解,并对提示工程的艺术有所体验。这都是研究语言模型的重要内容。
一种最自然的思考方式就是询问语言模型是否能完成其本职工作(对语言进行模拟)。

回顾之前在引言中提到的语言模型的内容,语言模型 p p p 是关于词汇序列的概率分布。假设我们有一段文本 x 1 : L x_{1:L} x1:L ,例如:
t h e ; m o u s e ; a t e ; t h e ; c h e e s e the; mouse; ate; the; cheese the;mouse;ate;the;cheese
语言模型会给这段文本分配什么概率?
我们知道,可以将联合概率分解为每个令牌的条件概率的乘积,这是通过链式规则完成的:

p ( x 1 : L ) = ∏ i = 1 L p ( x i ∣ x 1 : i − 1 ) . p(x_{1:L}) = \prod_{i=1}^L p(x_i \mid x_{1:i-1}). p(x1:L)=i=1Lp(xix1:i1).

困惑度

困惑度(Perplexity)是一个重要的指标,是自然语言处理和语言模型中的一个重要概念,用于衡量语言模型的性能。它可以解释为模型在预测下一个词时的平均不确定性。
简单来说,如果一个模型的困惑度较低,那么它在预测下一个词的时候就会更加准确。对于给定的语言模型和一个测试数据集,困惑度被定义为:

P ( X ) = P ( x 1 , x 2 , . . . , x N ) ( − 1 / N ) P(X) = P(x_1,x_2,...,x_N)^{(-1/N)} P(X)=P(x1,x2,...,xN)(1/N)

其中, X = x 1 , x 2 , . . . , x N X=x_{1},x_{2},...,x_{N} X=x1,x2,...,xN 是测试集中的词序列, N N N 是测试集中的总词数。
困惑度与语言模型的质量紧密相关。一个优秀的语言模型应能准确预测测试数据中的词序列,因此它的困惑度应较低。相反,如果语言模型经常做出错误的预测,那么它的困惑度将较高。

一个序列的联合概率取决于其长度,并且随着长度的增长,其值趋近于零,这使得困惑度变得难以追踪。
直观上,我们希望对每个词标记(token)的概率 p ( x i ∣ x 1 : i − 1 ) p(x_{i}∣x_{1:i−1}) p(xix1:i1) 进行平均。 这里的 p(xi∣x1:i−1) 表示给定之前的词序列 x 1 : i − 1 x_{1:i−1} x1:i1 后,下一个词 x i x_{i} xi 出现的概率。这样做的目的是评估模型在处理各种词标记时的平均性能。

我们不希望采取算术平均,因为如果我们给一个词标记分配了0的概率(即我们的模型认为这个词在特定的上下文中绝对不可能出现),那么在算术平均中这会造成极大的问题。 然而,算术平均简单地将所有词标记的概率加在一起,然后除以总数,一个非常低的概率(如0)可能会被其他较高的概率抵消。

相反,我们希望采用几何平均,这就是困惑度(perplexity)所做的。在几何平均中,每个词标记的概率都被同等看待,并且一个极低的概率(如0)将会导致整个几何平均大幅度下降。 因此,通过计算几何平均,我们可以更好地衡量模型在处理所有可能的词标记时的性能,特别是在处理那些模型可能会出错的情况。

几何平均数:几何平均数是对各变量值的连乘积开项数次方根。根据所拿掌握资料的形式不同,其分为简单几何平均数和加权几何平均数两种形式。

perplexity p ( x 1 : L ) = exp ⁡ ( 1 L ∑ i = 1 L log ⁡ 1 p ( x i ∣ x 1 : i − 1 ) ) .  \text{perplexity}_p\left(x_{1: L}\right)=\exp \left(\frac{1}{L} \sum_{i=1}^L \log \frac{1}{p\left(x_i \mid x_{1: i-1}\right)}\right) \text {. } perplexityp(x1:L)=exp(L1i=1Llogp(xix1:i1)1)

困惑度可以被理解为每个标记(token)的平均"分支因子(branching factor)"
这里的"分支因子",可以理解为在每个特定的词或标记出现后,语言模型预测下一个可能出现的词或标记的平均数量。 因此,它实际上是度量模型预测的多样性和不确定性的一种方式。

这个理解与公式中的 log ⁡ 1 p ( x i ∣ x 1 : i − 1 ) \log \frac{1}{p\left(x_i \mid x_{1: i-1}\right)} logp(xix1:i1)1 密切相关,这个表达式代表了编码长度。
我们在计算的是平均编码长度,这个长度反映了给定当前词或标记后,下一个词或标记可能的选择数量。 因此,通过对平均编码长度取指数,我们可以得到可能的选择数量,这也就是"分支因子"。

为了更好地理解,我们可以考虑一个均匀分布的例子:一个长度为3的二进制字符串可以编码 2 3 = 8 2^3=8 23=8个可能的字符串。这个例子类似于我们的语言模型:
在给定特定词或标记后,模型需要从多个可能的选项中预测下一个词或标记。如果选择的可能性多,模型的预测任务就更为复杂,相应的困惑度就会更高。

两类错误:语言模型可能会犯两种类型的错误,而困惑度对这两种错误的处理方式并不对称:

  • 召回错误:语言模型未能正确地为某个词符分配概率值。
    • 这种情况下,困惑度是毫不留情的。例如,如果模型为词组 ‘𝖺𝗍𝖾’ 在 ‘𝗍𝗁𝖾,𝗆𝗈𝗎𝗌𝖾’ 后出现的概率预测为接近0,那么对应的困惑度值将趋近于无穷大。

p ( a t e ∣ t h e , m o u s e ) → 0 ⇒ perplexity p ( t h e , m o u s e , a t e , t h e , c h e e s e ) → ∞ . p({ate} \mid {the}, {mouse}) \to 0 \quad\Rightarrow\quad \text{perplexity}_p({the}, {mouse}, {ate}, {the}, {cheese}) \to \infty. p(atethe,mouse)0perplexityp(the,mouse,ate,the,cheese)∞.

  • 精确度错误:语言模型为某些错误的词序列过度分配了概率值。
    • 在这种情况下,困惑度会进行适度的惩罚。给定一个语言模型 p,假设我们将一些垃圾分布 r r r 按照概率 ϵ ϵ ϵ 混入:
      q ( x i ∣ x 1 : i − 1 ) = ( 1 − ϵ ) p ( x i ∣ x 1 : i − 1 ) + ϵ r ( x i ∣ x 1 : i − 1 ) . q(x_i \mid x_{1:i-1}) = (1-\epsilon) p(x_i \mid x_{1:i-1}) + \epsilon r(x_i \mid x_{1:i-1}). q(xix1:i1)=(1ϵ)p(xix1:i1)+ϵr(xix1:i1).
    • 可以计算在语言模型 q q q 下的 x 1 : L x_{1:L} x1:L 的困惑度:
      perplexity q ( x 1 : L ) ≤ 1 1 − ϵ perplexity p ( x 1 : L ) ≊ ( 1 + ϵ ) perplexity p ( x 1 : L ) , \text{perplexity}_q(x_{1:L}) \le \frac{1}{1 - \epsilon} \text{perplexity}_p(x_{1:L}) \approxeq (1 + \epsilon) \text{perplexity}_p(x_{1:L}), perplexityq(x1:L)1ϵ1perplexityp(x1:L)(1+ϵ)perplexityp(x1:L),
      其中,最后一个近似等式在 ϵ ϵ ϵ 的值较小时成立。如果我们混入5%的垃圾信息,那么困惑度只增加 5%。这样生成的语言结果会非常糟糕,因为平均每 20 个词符就会生成一个无意义的词符。
2.1.1.1 Penn Tree Bank

Penn Tree Bank 是自然语言处理中的一个经典数据集,最初是为了进行句法解析而标注的。从Emami和Jelinek(2004)Mikolov和Zweig(2012)开始,一个只包含华尔街日报文章的版本被用作语言模型评估。需要注意的是,PTB语言模型基准测试涉及对原始数据集的一些重要预处理(感谢John Hewitt的指出)。

适应性测试。将整个文本作为提示输入到GPT-3中,并评估其困惑度。

2.1.1.2 LAMBADA

该数据的任务:预测句子的最后一个词。
动机:解决这个任务需要对较长的内容进行建模,并对较长的内容具有一定的依赖。

由于LAMBADA本身就是一个语言模型任务,所以我们可以直接要求语言模型完成句子的最后一个词。但是这里有一个问题,语言模型不知道它应该生成句子的最后一个词。因此为了解决这个委托方,我们需要更明确地将其构建为输入-输出映射,并使用额外的示例进行上下文学习。
结果: GPT-3超过了v之前的最好结果(GPT-2)

2.1.1.3 HellaSwag

动机:评估模型进行常识推理的能力
任务:从一系列选择中选出最适合完成句子的选项

该数据是一个多项选择任务,所以最自然的做法是用语言模型为每个候选答案打分,并预测“最佳”答案。

a n s w e r {answer} answer 是以下选项之一:

  1. bake them, then frost and decorate.
  2. taste them as they place them on plates.
  3. put the frosting on the cake as they pan it.
  4. come out and begin decorating the cake as well.

给定一个问题 x,你如何对候选答案 y 进行评分呢?没有明确的答案,但这里有一些启发式方法

启发式算法一般用于解决NP-hard问题,其中NP是指非确定性多项式。
启发式算法是相对于最优化算法提出的,是基于直观或者经验构造的算法,在可接受的开销(时间和空间)内给出待解决组合优化问题的一个可行解。

  • 未归一化的概率(Unnormalized probability):
    • s c o r e ( x , y ) = p ( x , y ) score(x,y)=p(x,y) score(x,y)=p(x,y) 。未归一化概率的问题是它倾向于短答案。
  • 长度归一化概率(Length-normalized probability):
    • s c o r e ( x , y ) = p ( x , y ) / n u m − t o k e n s ( y ) score(x,y)=p(x,y)/num-tokens(y) score(x,y)=p(x,y)/numtokens(y) 。这修正了长度偏见。
    • 然而,对于长度相同的两个答案,模型仍可能偏好更受欢迎的实体。
  • 频率归一化概率(Frequency-normalized probability):
    • s c o r e ( x , y ) = p ( y ∣ x ) / p ( y ∣ x 0 ) score(x,y)=p(y∣x)/p(y∣x_{0}) score(x,y)=p(yx)/p(yx0) ,其中 x 0 x_{0} x0 是一个中立的字符串,如’Answer:'。
    • 这降低了恰巧很常见的答案(例如,“John”)的得分。

结果: GPT-3接近但没有超过最先进的水平:
SOTA结果是在该数据集的训练集中微调得到的结果,因此GPT-3在完全不在该数据集训练的情况下获得了接近的结果是很令人惊喜的。

2.1.7 Other tasks

自原始论文以来,GPT-3已应用于许多更多的任务,包括基准数据集(Benchmark)和一次性的演示(one-off deoms)。以下是一个不详尽的列表:
Benchmarks:

  • SWORDS:词汇替换,目标是在句子的上下文中预测同义词。
  • Massive Multitask Language Understanding:包括数学,美国历史,计算机科学,法律等57个多选问题。
  • TruthfulQA:人类由于误解而错误回答的问答数据集。
    **结果:**虽说GPT-3在这些Benchmark数据集中的表现平庸,但是考虑到我们只使用了few-shot的情况,或许不算太差。

one-off Demos:

2.1.8 总结

  • GPT-3在广泛的标准NLP基准测试和一次性任务上进行了评估。
  • GPT-3可以表现得极好或者非常普通。
  • 增加模型的大小和示例的数量都有助于提高性能。
  • 有一些启发式的方法可以将语言模型适应到感兴趣的任务。
  • 但是为什么会有这样表现,没有人知道。

延伸阅读

  • Language Models are Few-Shot Learners. Tom B. Brown, Benjamin Mann, Nick Ryder, Melanie Subbiah, J. Kaplan, Prafulla Dhariwal, Arvind Neelakantan, Pranav Shyam, Girish Sastry, Amanda Askell, Sandhini Agarwal, Ariel Herbert-Voss, Gretchen Krueger, T. Henighan, R. Child, A. Ramesh, Daniel M. Ziegler, Jeff Wu, Clemens Winter, Christopher Hesse, Mark Chen, Eric Sigler, Mateusz Litwin, Scott Gray, Benjamin Chess, Jack Clark, Christopher Berner, Sam McCandlish, Alec Radford, Ilya Sutskever, Dario Amodei. NeurIPS 2020.
  • Blog post explaining perplexity
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值