大模型理论基础(So-Large-LLM)Task02 大模型能力
1 概述
GPT-3并未明确针对这些任务进行训练,它只是作为一个语言模型,被训练来预测下一个词。然而,即便没有“特别努力”,GPT-3平均来看,仍然可以在广泛的NLP任务中做得不错。
2 语言模型的适应性
在自然语言处理的世界中,语言模型 p 是一种对token序列 x 1 : L x_{1:L} x1:L 的分布。这样的模型能够用于评估序列,例如 :p(the,mouse,ate,the,cheese) 。同样,它还能用于在给定提示的条件下生成完成的序列。
使用“适应”来指代将语言模型转化为任务模型的过程。过程需要两个输入:任务的自然语言描述、一组训练实例(输入-输出对)
同时还有两种方式来进行“适应”:训练(标准的有监督学习)、提示(上下文)学习。其中可将后者细分为:零样本学习(Zero-shot)、单样本学习(One-shot)以及少样本学习(Few-shot)。
2.1. Language Modeling
在自然语言处理(NLP)领域,除了研究大型语言模型,我们还需深入探讨一些基础任务。比如,我们要对GPT-3的各种功能有深入的认知,并真正理解如何优化给模型的提示(当前只通过基于提出信息就可以获得性能的提示已经成为了共识)。这些都是语言模型研究的核心部分。最直观的方法是验证语言模型是否能够有效地模仿和理解语言。
困惑度(Perplexity)是一个重要的指标,解释为模型在预测下一个词时的平均不确定性,用于衡量语言模型的性能,其定义为:
P
(
X
)
=
P
(
x
1
,
x
2
,
…
,
x
N
)
(
1
/
N
)
P(X)={P(x_1,x_2,\ldots,x_N)}^{({1}/{N})}
P(X)=P(x1,x2,…,xN)(1/N)
其中,
X
=
x
1
,
x
2
,
…
,
x
N
X={x_1,x_2,\ldots,x_N}
X=x1,x2,…,xN 是测试集中的词序列,N是测试集中的总词数。困惑度与语言模型的质量紧密相关。一个优秀的语言模型应能准确预测测试数据中的词序列,因此它的困惑度应较低。相反,如果语言模型经常做出错误的预测,那么它的困惑度将较高。
困惑度采用几何平均,由于在几何平均中,每个词标记的概率都被同等看待,并且一个极低的概率(如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=1∑Llogp(xi∣x1:i−1)1).
困惑度可以被理解为每个标记(token)的平均"分支因子(branching factor)"。这里的“分支因子”可以理解为在每个位置,模型认为有多少种可能的词会出现。
两类错误:语言模型可能会犯两种类型的错误,而困惑度对这两种错误的处理方式并不对称:
- 召回错误:语言模型未能正确地为某个词符分配概率值。这种情况下,困惑度是毫不留情的。例如,如果模型为词组 '𝖺𝗍𝖾’在 ‘𝗍𝗁𝖾,𝗆𝗈𝗎𝗌𝖾’ 后出现的概率预测为接近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|the,mouse)→0 => \text{perplexity}_p(the,mouse,ate,the,cheese)→∞ p(ate∣the,mouse)→0=>perplexityp(the,mouse,ate,the,cheese)→∞
- 精确度错误:语言模型为某些错误的词序列过度分配了概率值。在这种情况下,困惑度会进行适度的惩罚。给定一个语言模型 p,假设我们将一些垃圾分布 r 按照概率
ϵ
\epsilon
ϵ混入:
q ( x i ∣ x 1 : i − 1 ) = ( 1 − ϵ ) p ( x i ∣ x i − 1 ) + ϵ r ( x i ∣ x i − 1 ) q(x_i|x_{1: i-1})=(1- \epsilon)p(x_i|x_{i-1})+{\epsilon}r(x_i|x_{i-1}) q(xi∣x1:i−1)=(1−ϵ)p(xi∣xi−1)+ϵr(xi∣xi−1)
那么,我们可以计算在 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+ϵ)perplexity∗p(x∗1:L),
之后分别探讨GPT-3在数据集Penn Tree Bank、LAMBADA、HellaSwag上的表现,结果可以总结为GPT-3在前两个数据集上表现较好,在最后一个数据集上的表现结果一般,
2.2 Question answering
考虑(闭卷)问答题,其中输入是一个问题,输出是一个答案。语言模型必须以某种方式“知道”答案,而无需在数据库或一组文档中查找信息。
之后分别考虑GPT-3在不同数据集上的表现情况,GPT-3在TriviaQA上表现较好,WebQuestions和NaturalQuestions上表现一般
2.3 Translation
翻译任务是将源语言(例如,德语)中的句子翻译成目标语言(例如,英语)中的句子。由于存在人类翻译者,因此它一直是一个数据丰富的领域。标准的评估数据集比如是WMT’14和WMT’16数据集。由于存在多种可能的翻译,所以(自动)评估指标是BLEU(它捕获了n-gram重叠的概念)。
- 即使没有监督训练数据,GPT-3也能达到全监督系统的最新技术水平!
- 这为机器翻译的性能设定了一个下限;因为肯定会想利用大量的平行语料库(对齐的输入-输出对)。
- 法语和罗马尼亚语的结果类似。
- 从英语到外语的结果要差得多,这是可以预料的,因为GPT-3主要是一个英语模型。
2.4 Arithmetic
GPT-3是一个语言模型(主要是英语),但我们可以在一系列更“抽象推理”的任务上评估它,以评估GPT-3作为更通用模型的性能.这里的Arithmetic任务是做算术题(2-5位数的加法,减法,乘法)你没有实际的理由要解决这个问题;这只是一个诊断任务,满足我们的科学好奇心。
从实验结果看起来,虽说不能认为GPT-3获得很好的结果,但是还是让我们惊艳,并对未来充满想象。
2.5 News article generation
这个项目的任务是给定标题和副标题,生成新闻文章。标题/副标题取自newser.com。 并且设立了一个评估标准,人类根据文章可能由机器编写的可能性对文章进行评分。
**结果:**人类只有52%的时间能够正确地分类“人类”与“机器”(几乎只是随机机会)。
2.6 Novel tasks
- 使用新词:给定一个新造的词和定义,生成使用该词的句子。
- 纠正英语语法:给定一个不合语法的句子,生成其合语法的版本。
2.7 Othere tasks
自原始论文以来,GPT-3已应用于许多更多的任务,包括基准数据集(Benchmark)和一次性的演示(one-off deoms)。以下是一个不详尽的列表:
Benchmarks:
- SWORDS:词汇替换,目标是在句子的上下文中预测同义词。
- Massive Multitask Language Understanding:包括数学,美国历史,计算机科学,法律等57个多选问题。
- TruthfulQA:人类由于误解而错误回答的问答数据集。
**结果:**虽说GPT-3在这些Benchmark数据集中的表现平庸,但是考虑到我们只使用了few-shot的情况,或许不算太差。
one-off Demos:
- Examples from the OpenAI website
- Examples from gpt3demo.com 这些演示既创新又有趣,但很难判断它们的可靠性如何。
3、总结
- 困惑度解释为模型在预测下一个词时的平均不确定性,用于衡量语言模型的性能
- GPT-3在广泛的标准NLP基准测试和一次性任务上进行了评估。
- GPT-3可以表现得极好或者非常普通。
- 增加模型的大小和示例的数量都有助于提高性能。
- 有一些启发式的方法可以将语言模型适应到感兴趣的任务。
- 但是为什么会有这样表现,没有人知道。
参考资料
- so-large-llm 第二章:大模型的能力