GPT的自回归语言建模(Autoregressive Language Modeling)
GPT的自回归语言建模(Autoregressive Language Modeling)
flyfish
1. 什么是语言建模?
首先,先从语言建模的目标说起。语言建模的任务是让模型学会理解语言的结构和模式。具体来说,它要根据已经观察到的上下文预测下一个单词的可能性。
举个例子:
假设你看到这样一句话:
“我今天去超市买了”
作为人类,我们可能会预测这句话后面最可能的单词是:
- “水果”
- “一些东西”
- “食品”
为什么能预测出这些合理的词?这是因为我们掌握了语言的规律和语义逻辑。
语言模型的目标就是通过数学和机器学习的方法让计算机具备这种能力。它需要学习:
- 语言中单词之间的关联。
- 语法结构和上下文关系。
2. 什么是自回归语言建模?
自回归语言建模是一种特殊的语言建模方法,核心思想是:
- 根据已经生成的单词,逐个预测下一个单词的概率。
“自回归”(Autoregressive)这个词来源于统计学,意思是输出取决于过去的输出。在语言建模中,这就意味着:
P ( x 1 , x 2 , x 3 , … , x T ) = P ( x 1 ) ⋅ P ( x 2 ∣ x 1 ) ⋅ P ( x 3 ∣ x 1 , x 2 ) ⋯ P ( x T ∣ x 1 , x 2 , … , x T − 1 ) P(x_1, x_2, x_3, \dots, x_T) = P(x_1) \cdot P(x_2 | x_1) \cdot P(x_3 | x_1, x_2) \cdots P(x_T | x_1, x_2, \dots, x_{T-1}) P(x1,x2,x3,…,xT)=P(x1)⋅P(x2∣x1)⋅P(x3∣x1,x2)⋯P(xT∣x1,x2,…,xT−1)
分解含义:
-
序列概率分解:
- 整个句子的概率 P ( x 1 , x 2 , … , x T ) P(x_1, x_2, \dots, x_T) P(x1,x2,…,xT) 可以分解成每个单词的条件概率乘积。
- 例如,一个句子的概率是由每个单词在其上下文中的合理性共同决定的。
-
逐步预测:
- 自回归建模每次只预测下一个单词,而不会同时预测多个单词。
- 比如,给定 “我今天去超市”,模型会预测 “买” 是最有可能的下一个单词;然后它会用 “我今天去超市买” 作为上下文,预测后面的单词 “水果”。
GPT 的核心任务:
GPT 就是一个自回归语言模型,它通过训练让模型最大化每个单词在上下文中的概率。换句话说,它学会了从左到右逐个生成单词。
3. 自回归语言建模的训练过程
GPT 的训练目标是让模型学会预测下一个单词的概率。具体来说:
目标函数:
给定一个输入序列 x 1 , x 2 , … , x T x_1, x_2, \dots, x_T x1,x2,…,xT,训练模型的目标是最大化整个序列的概率:
P ( x 1 , x 2 , … , x T ) = ∏ t = 1 T P ( x t ∣ x 1 , x 2 , … , x t − 1 ) P(x_1, x_2, \dots, x_T) = \prod_{t=1}^T P(x_t | x_1, x_2, \dots, x_{t-1}) P(x1,x2,…,xT)=t=1∏TP(xt∣x1,x2,…,xt−1)
为了实现这个目标,模型通过最大化对数概率(log-likelihood)来训练:
L = 1 N ∑ i = 1 N ∑ t = 1 T log P ( x t ∣ x 1 , x 2 , … , x t − 1 ; θ ) \mathcal{L} = \frac{1}{N} \sum_{i=1}^N \sum_{t=1}^T \log P(x_t | x_1, x_2, \dots, x_{t-1}; \theta) L=N1i=1∑Nt=1∑TlogP(xt∣x1,x2,…,xt−1;θ)
其中:
- N N N:是训练样本的总数。
- T T T:是每个句子的单词数。
- θ \theta θ:是模型的参数。
训练过程的步骤:
-
输入序列:
- 输入模型一个序列,例如 “我今天去超市”。
-
预测下一个单词:
- 模型预测下一个单词 P ( x t + 1 ∣ x 1 , x 2 , … , x t ) P(x_{t+1} | x_1, x_2, \dots, x_t) P(xt+1∣x1,x2,…,xt)。比如它可能预测 “买” 的概率是 80%,“看” 是 10%,“玩” 是 5%。
-
计算损失(Loss):
- 如果真实单词是 “买”,但模型预测的概率只有 0.8,则损失会是:
− log ( 0.8 ) -\log(0.8) −log(0.8)。模型会尝试调整参数,让下次预测更准确。
- 如果真实单词是 “买”,但模型预测的概率只有 0.8,则损失会是:
-
反向传播和参数更新:
- 通过梯度下降优化模型参数,逐步提升预测能力。
-
重复:
- 通过数亿句子训练,模型逐渐学会捕捉语言模式和语义规律。
4. GPT 的自回归生成
当训练完成后,GPT 可以用来生成文本。其生成过程如下:
生成步骤:
-
输入起始内容:
- 比如输入一句话的开头 “人工智能正在改变世界,尤其是”。
-
预测下一个单词:
- GPT 会基于这部分内容预测下一个单词。例如可能预测:
- “科技” 的概率是 50%;
- “经济” 的概率是 30%;
- “文化” 的概率是 20%。
- GPT 会基于这部分内容预测下一个单词。例如可能预测:
-
采样生成:
- 根据概率分布,随机选择一个单词作为输出。例如选了 “科技”。
-
迭代生成:
- 用新的句子 “人工智能正在改变世界,尤其是科技” 作为输入,继续预测下一个单词。
-
终止条件:
- 当生成的内容达到指定长度或出现结束符(如句号)时停止。
5. 自回归的强大能力
自回归语言建模有几个关键优势:
-
上下文感知:
- 每个预测都考虑了之前所有的单词,所以生成的内容具有上下文逻辑。
-
灵活性:
- 可以处理任意长度的序列,因为生成是逐步进行的。
-
生成能力:
- 模型会生成概率最高的内容,但也可以通过随机采样引入多样性。
6. 自回归的局限性
虽然自回归语言建模非常强大,但也存在一些限制:
-
单向性:
- 自回归模型只能从左到右生成,不能同时利用后文信息。
- 例如,不能直接知道句子最后一个词对第一个词的影响。
-
生成速度较慢:
- 生成是逐步进行的,每次都要计算所有的前文,上下文越长计算越慢。
-
无法全局优化:
- 每个单词的预测是独立的,可能导致整体句子生成不连贯。