注意:文章内容参考了斯坦福CS324 - Large Language Models课程,以及我们的Datawhale的一起学课程中的内容。
1、概述
在大模型的能力概述中,以GPT-3为例,主要就是描述了GPT-3在一些任务上的能力主要包括:
-
Language modeling(语言模型)
Question answering(问答)
Translation(翻译)
Arithmetic(算术)
News article generation(文章生成)
Novel tasks(小说任务)
以及从语言模型到任务模型的转化(语言模型的适应性)。
2、语言模型——>任务模型
在自然语言处理的世界中,语言模型是一种对token序列的分布。这样的模型能够用于评估序列,例如 p(𝗍𝗁𝖾,𝗆𝗈𝗎𝗌𝖾,𝖺𝗍𝖾,𝗍𝗁𝖾,𝖼𝗁𝖾𝖾𝗌𝖾)
- 同样,它还能用于在给定提示的条件下生成完成的序列,如
\text{𝗍𝗁𝖾 𝗆𝗈𝗎𝗌𝖾 𝖺𝗍𝖾}⇝\text{𝗍𝗁𝖾 𝖼𝗁𝖾𝖾𝗌𝖾}
在这里,任务被定义为从输入映射到输出。以问答任务为例,我们可能有如下的输入输出:
输入:What school did Burne Hogarth establish?
输出:School of Visual Arts
我们使用“适应(Adaptation)”一词来指代将语言模型转化为任务模型的过程。这个过程需要以下两个输入:
- 任务的自然语言描述
- 一组训练实例(输入-输出对)
原文中有两种方法,来进行适应即语言模型到任务模型的转化
原文的内容如下:
- 训练(标准的有监督学习):训练一个新模型,使其能将输入映射到输出。这可以通过创建一个新模型并利用语言模型作为特征(探针法),或者从现有的语言模型出发,根据训练实例进行更新(微调),或者在这两者之间找到平衡(轻量级的微调)。以上内容会将在第七章进行学习(大模型之Adaptation)。
- 提示(上下文)学习:根据对任务的描述建一个或一组提示/上下文信息,将其输入到语言模型中以获取基于该任务的生成结果。根据提示/上下文信息的数量,我们还可以进一步细分:
- 零样本学习(Zero-shot):提示/上下文信息的数量为0,模型直接基于对任务的理解输出结果。
- 单样本学习(One-shot):提示/上下文信息的数量为1,一般来说模型基于1个例子可以更好的理解任务从而较好的生成结果。
- 少样本学习(Few-shot):提示/上下文信息的数量大于1,大模型可以看到更丰富的例子,一般来说获得比单样本学习更好的效果。
我的理解对于这个任务转化:1、微调,使用特定任务数据集,进行微调。2、Prompt工程,即在提示词中明确任务,比如说:现在你是一个中英文翻译家,请你帮我把我的话翻译成英文,我的话{$}
原课程中,为了凸显大模型的能力,对于每个任务,讨论以下几点:
- 定义:任务是什么,以及其动机?
- 适应:我们如何通过提示将任务简化为语言模型?
- 结果:与该任务的最先进模型相比,GPT-3的定量性能如何?
同时也引出了GPT-3在一些任务上的优越性能。
3、GPT-3在任务中表现的能力
要想知道语言模型的能力,我们就要先了解Language Modeling
3.1、Language Modeling
在自然语言处理(NLP)领域,除了研究大型语言模型,我们还需深入探讨一些基础任务。比如,我们要对GPT-3的各种功能有深入的认知,并真正理解如何优化给模型的提示(当前只通过基于提出信息就可以获得性能的提示已经成为了共识)。这些都是语言模型研究的核心部分。最直观的方法是验证语言模型是否能够有效地模仿和理解语言。
语言模型 p p p 是关于词汇序列的概率分布。假设我们有一段文本 x 1 : L x_{1:L} x1:L ,例如:
{ 𝗍𝗁𝖾 𝗆𝗈𝗎𝗌𝖾 𝖺𝗍𝖾 𝗍𝗁𝖾 𝖼𝗁𝖾𝖾𝗌𝖾}
我们可以询问:语言模型会给这段文本分配什么概率?
p({𝗍𝗁𝖾 𝗆𝗈𝗎𝗌𝖾 𝖺𝗍𝖾 𝗍𝗁𝖾 𝖼𝗁𝖾𝖾𝗌𝖾})
我们知道,可以将联合概率分解为每个令牌的条件概率的乘积,这是通过链式规则完成的:
p(x_{1:L}) = \prod_{i=1}^L p(x_i \mid x_{1:i-1}).
困惑度(Perplexity)是一个重要的指标,是自然语言处理和语言模型中的一个重要概念,用于衡量语言模型的性能。它可以解释为模型在预测下一个词时的平均不确定性。简单来说,如果一个模型的困惑度较低,那么它在预测下一个词的时候就会更加准确。对于给定的语言模型和一个测试数据集,困惑度被定义为:
P(X) = P(x_1,x_2,...,x_N)^{(-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(xi∣x1:i−1) 进行平均。这里的 p(xi∣x1:i−1) 表示给定之前的词序列 x 1 : i − 1 x_{1:i−1} x1:i−1 后,下一个词 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 {. } perplexity
GPT-3在各类任务中的能力表现

最低0.47元/天 解锁文章
856





