神经网络Transformer架构中的最大似然估计训练
-
基础概念:最大似然估计 (MLE)
最大似然估计是一种统计方法,用于从观测数据中估计模型参数。其核心思想是:寻找一组参数,使得在这组参数下,观测到当前数据的“可能性”(似然度)达到最大。在机器学习的语境下,“模型”就是我们的神经网络(如Transformer),“参数”就是网络的所有权重和偏置,“数据”就是我们用于训练的一组输入-输出对(例如,一段文本和它的下一句或翻译)。我们可以将模型对给定输入产生特定输出的过程,看作是一个由模型参数决定的概率分布。MLE的目标就是调整参数,让模型预测的分布与真实数据的分布尽可能一致,即让模型认为“真实数据”出现的概率最大。 -
在语言模型中的具体应用:下一个词预测
Transformer架构(如GPT系列)的核心训练任务通常是“下一个词预测”或“掩码语言建模”。这完美地契合了MLE框架。对于一个输入文本序列(例如“今天天气很”),模型的任务是预测下一个词(例如“好”)的概率。具体来说:- 数据:我们的训练样本是“今天天气很”作为输入,“好”作为目标输出。
- 模型输出:模型(Transformer)会处理输入序列,并在最后一个位置输出一个概率分布,这个分布覆盖了整个词汇表(“好”、“坏”、“热”、“晴朗”...),表示模型认为每个词是下一个词的可能性。
- 似然计算:我们关心的是,在模型当前的参数下,目标词“好”被分配到的概率有多大。这个概率值(例如P(好 | 今天天气很) = 0.7)就是该样本的“似然度”。
- 目标函数:我们的目标是最大化这个似然度。实际操作中,我们通常取概率的对数(称为对数似然),因为概率相乘会得到极小的数值,对数化后可以转化为相加,更稳定且便于计算。所以,对于单个样本,我们的目标是最大化 log(P(目标词 | 输入序列))。
-
扩展到整个训练集:负对数似然损失 (NLL Loss)
单个样本的优化不足以训练模型。我们需要考虑整个训练数据集(包含数百万甚至数十亿个样本)。MLE原则指导我们寻找一组参数,使得所有训练样本的联合似然度最大。假设样本之间独立,联合似然度就是每个样本似然度的乘积。同样,我们对乘积取对数,得到对数似然之和。
然而,在优化算法(如梯度下降)中,我们习惯最小化一个损失函数。因此,标准做法是将最大化对数似然等价地转化为最小化负对数似然。这就是Transformer训练中最常用的损失函数之一——负对数似然损失。对于一批数据,损失函数计算为每个目标词对应概率的负对数的平均值:Loss = - (1/N) * Σ log(P(目标词_i | 输入序列_i))。模型训练的过程,就是通过反向传播和优化器不断调整参数,以最小化这个损失值。 -
MLE训练在Transformer中的实现细节与挑战
- 自回归生成:在训练像GPT这样的解码器-only模型时,为了预测序列中的每一个词,模型采用自回归方式。即,为了预测位置t的词,输入是前t-1个词,目标就是第t个词。整个序列的损失是所有位置负对数似然损失的总和。这确保了模型学会基于历史上下文生成连贯的文本。
- 与交叉熵损失的关系:在分类任务(如词汇表大小的分类)中,负对数似然损失本质上等同于交叉熵损失。交叉熵衡量的是模型预测的概率分布与真实分布(一个“one-hot”向量,只有目标词位置为1)之间的差异。最小化交叉熵等价于最大化目标类别的似然度。
- 挑战:
- 暴露偏差:在训练时,模型总是基于真实的“前文”来预测下一个词。但在推理(生成)时,模型使用的是自己生成的前文,一旦生成错误,错误会不断累积。这种训练与推理的不匹配称为暴露偏差。
- 似然与质量的脱节:MLE目标是最大化数据似然,但这并不总是与人类判断的文本质量(如创造性、多样性、趣味性)完全一致。模型可能倾向于生成安全、常见但乏味的词句,因为它们的概率高。
- 无法建模复杂分布:MLE假设数据可以由一个相对简单的参数化模型完美表示。对于非常复杂、多模态的文本分布,标准Transformer + MLE可能难以捕捉全部细节。
-
超越MLE:为改进生成质量而设计的训练目标
为了缓解MLE的局限性,研究人员提出了多种替代或补充的训练目标:- 强化学习(如RLHF):引入人类反馈,通过奖励模型来指导策略(语言模型)的优化,直接优化生成内容与人类偏好的一致性,而不仅仅是模仿训练数据。
- 对抗性训练:使用判别器来区分模型生成的数据和真实数据,推动生成器(语言模型)产生更逼真的文本。
- 去噪目标(如BART):训练模型重构被破坏(如掩码、打乱)的输入文本,这比单纯的下一词预测能学习到更丰富的上下文和语义表示。
尽管如此,MLE训练因其简单、稳定和高效,仍然是预训练大型语言模型最核心、最基础的范式,为模型提供了强大的语言建模能力基础,后续的微调或对齐训练往往建立在此基础之上。