自回归概率模型(Autoregressive Probabilistic Models)是大型语言模型(LLMs)如 GPT 系列的核心组成部分。它们通过建模序列的联合概率分布,逐步生成下一个元素(通常是词或字符),广泛应用于自然语言处理(NLP)任务。本文将从基础概念、数学原理、模型结构、训练方法、优缺点以及实际应用等多个方面,详细、深入地讲解自回归概率模型。
自回归模型是一种基于序列数据的概率模型,核心思想是将序列的联合概率分解为条件概率的乘积。假设有一个序列 x = ( x 1 , x 2 , … , x T ) x = (x_1, x_2, \dots, x_T) x=(x1,x2,…,xT),其中 x i x_i xi 是序列中的第 i i i 个元素(例如词、字符或子词),自回归模型假设每个元素 x i x_i xi 的概率依赖于它之前的所有元素 x < i = ( x 1 , x 2 , … , x i − 1 ) x_{x<i=(x1,x2,…,xi−1)。因此,序列的联合概率可以表示为:
p ( x 1 , x 2 , … , x T ) = ∏ i = 1 T p ( x i ∣ x 1 , x 2 , … , x i − 1 ) p(x_1, x_2, \dots, x_T) = \prod_{i=1}^T p(x_i | x_1, x_2, \dots, x_{i-1}) p(x1,x2,…,xT)=∏i=1Tp(xi∣x1,x2,…,xi−1)
在 LLMs 中,自回归模型通常用于建模自然语言序列,例如预测句子的下一个词或生成连贯的文本。
为了深入理解自回归模型,我们需要从概率论和机器学习的视角分析其数学基础。
自回归模型的核心是链式法则(Chain Rule of Probability)。对于任意序列 x 1 , x 2 , … , x T x_1, x_2, \dots, x_T x1,x2,…,xT,联合概率可以分解为条件概率的乘积:
p ( x 1 , x 2 , … , x T ) = p ( x 1 ) ⋅ p ( x 2 ∣ x 1 ) ⋅ p ( x 3 ∣ x 1 , x 2 ) ⋅ ⋯ ⋅ p ( x T ∣ x 1 , … , x T − 1 ) p(x_1, x_2, \dots, x_T) = p(x_1) \cdot p(x_2 | x_1) \cdot p(x_3 | x_1, x_2) \cdot \dots \cdot p(x_T | x_1, \dots, x_{T-1}) p(x1,x2,…,xT)=p(x1)⋅p(x2∣x1)⋅p(x3∣x1,x2)⋅⋯⋅p(xT∣x1,…,xT−1)
为了建模条件概率 p ( x i ∣ x 1 , … , x i − 1 ) p(x_i | x_1, \dots, x_{i-1}) p(xi∣x1,…,xi−1),我们通常使用参数化的神经网络(如 Transformer)。假设模型的参数为 θ \theta θ,条件概率可以表示为:
p θ ( x i ∣ x 1 , … , x i − 1 ) = NN θ ( x 1 , … , x i − 1 ) p_\theta(x_i | x_1, \dots, x_{i-1}) = \text{NN}_\theta(x_1, \dots, x_{i-1}) pθ(xi∣x1,…,xi−1)=NNθ(x1,…,xi−1)
其中, NN θ \text{NN}_\theta NNθ 是一个神经网络,输入是前 i − 1 i-1 i−1 个元素,输出是第 i i i 个元素的所有可能值的概率分布(通常通过 softmax 函数实现)。
自回归模型的训练目标是最大化训练数据上的似然概率。假设训练数据集包含 N N N 个序列 { x ( 1 ) , x ( 2 ) , … , x ( N ) } \{x^{(1)}, x^{(2)}, \dots, x^{(N)}\} {x(1),x(2),…,x(N)},每个序列为 x ( n ) = ( x 1 ( n ) , x 2 ( n ) , … , x T n ( n ) ) x^{(n)} = (x_1^{(n)}, x_2^{(n)}, \dots, x_{T_n}^{(n)}) x(n)=(x1(n),x2(n),…,xTn(n)),我们希望模型的参数 θ \theta θ 能够最大化所有序列的对数似然函数:
L ( θ ) = ∑ n = 1 N log p θ ( x ( n ) ) = ∑ n = 1 N ∑ i = 1 T n log p θ ( x i ( n ) ∣ x 1 ( n ) , … , x i − 1 ( n ) ) \mathcal{L}(\theta) = \sum_{n=1}^N \log p_\theta(x^{(n)}) = \sum_{n=1}^N \sum_{i=1}^{T_n} \log p_\theta(x_i^{(n)} | x_1^{(n)}, \dots, x_{i-1}^{(n)}) L(θ)=∑n=1Nlogpθ(x(n))=∑n=1N∑i=1Tnlogpθ(xi(n)∣x1(n),…,xi−1(n))
Loss = − 1 N ∑ n = 1 N ∑ i = 1 T n log p θ ( x i ( n ) ∣ x 1 ( n ) , … , x i − 1 ( n ) ) \text{Loss} = - \frac{1}{N} \sum_{n=1}^N \sum_{i=1}^{T_n} \log p_\theta(x_i^{(n)} | x_1^{(n)}, \dots, x_{i-1}^{(n)}) Loss=−N1∑n=1N∑i=1Tnlogpθ(xi(n)∣x1(n),…,xi−1(n))
在现代 LLMs 中,自回归模型通常基于 Transformer 架构实现。以下是其核心组件和实现细节。
Transformer 是自回归语言模型的基础,尤其是在 GPT 系列模型中。它的核心组件包括:
因果自注意力是自回归模型的关键。在标准自注意力中,每个位置可以关注序列中的所有位置,但在自回归模型中,我们需要限制注意力机制,使其只关注之前的元素。具体实现方式是:
M i j = { 0 , if i ≥ j − ∞ , if i < j M_{ij} = \begin{cases} 0, & \text{if } i \geq j \\ -\infty, & \text{if } i < j \end{cases} Mij={0,−∞,if i≥jif i<j
Transformer 的最后一层通常是一个线性层,后面接一个 softmax 函数,将隐藏状态映射到词汇表 V V V 上的概率分布:
p ( x i ∣ x 1 , … , x i − 1 ) = softmax ( W ⋅ h i + b ) p(x_i | x_1, \dots, x_{i-1}) = \text{softmax}(W \cdot h_i + b) p(xi∣x1,…,xi−1)=softmax(W⋅hi+b)
其中, h i h_i hi 是第 i i i 个位置的隐藏状态, W W W 和 b b b 是可学习的参数,输出的维度是词汇表大小 ∣ V ∣ |V| ∣V∣。
以 GPT(Generative Pre-trained Transformer)为例,它是一个典型的自回归模型:
训练自回归模型需要以下步骤:
对于大型模型(如 GPT-3,拥有 1750 亿参数),需要分布式训练技术:
自回归模型在 NLP 中有广泛应用,尤其是在以下场景:
在生成文本时,自回归模型需要选择合适的解码策略,以平衡生成质量和多样性:
以下是一些更深入的主题,适合有兴趣进一步研究的同学:
为了解决自回归模型的计算效率问题,研究者提出了多种优化方法:
一些研究尝试结合自回归和非自回归模型的优点:
自回归模型不仅限于文本,还可以扩展到多模态数据: