能力
大语言模型
从语言模型到任务模型的转化
在自然语言处理的世界中,语言模型 p p p是一种对代币序列 x 1 : L x_{1:L} x1:L这样的模型能够用于评估序列,例如 p ( t h e , m o u s e , a t e , t h e , c h e e s e ) p(the,mouse,ate,the,cheese) p(the,mouse,ate,the,cheese)同样,它还可以用于在给定提示的条件下生成的序列,如 the mouse ate ⇝ the cheese \text{the mouse ate}⇝\text{the cheese} the mouse ate⇝the cheese。
我们使用"适应(Adaptation)"来指代将语言模型转化为任务模型的过程。这个过程需要以下两个输入:
- 任务的自然语言描述
- 一组实例训练(输入-输出对)
我们主要有两种方式来进行这种适应:
- 训练(标准的有监督学习):训练一个新模型,生成能够将输入映射到输出。这可以通过创建一个新模型并利用语言模型作为特征(标记法),或者从现有的语言模型出发,根据实例训练进行更新(配置),或者在这两者之间找到平衡(轻量级的配置)。以上内容将在第十一章进行学习(大模型之适配)。
- 提示(上下文描述)学习:根据对任务的建一个或一组提示/上下文信息,将其输入到语言模型中以获取基于该任务的生成结果。
语言建模
在语言自然处理(NLP)领域,除了研究大型语言模型,我们还需要深入探讨一些基础任务。比如,我们要对GPT-3的各种功能有研究的认知,并真正理解如何优化给定模型的提示(当前仅通过基于提出的信息就可获得性能的提示已经成为了认知)。这些都是语言模型研究的核心部分。最深入的方法是验证语言模型是否能够有效地模仿和理解语言。
困惑度(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(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出现的概率。这样做的目的是评估模型在处理各种词标记时的平均性能。
总结
增加模型的大小和示例的数量都有助于提高性能。
有一些启发式的方法可以使语言模型适应感兴趣的任务。
但为什么会有这样的表现,没有人知道。