Transformer架构核心数学原理:从嵌入、注意力到训练与生成

📅 2026/8/14 10:24:01
Transformer架构核心数学原理:从嵌入、注意力到训练与生成
1. 从“注意力”到“变换器”一个核心思想的诞生如果你在过去的几年里关注过人工智能尤其是自然语言处理领域那么“Transformer”这个词对你来说一定不陌生。从ChatGPT到Midjourney从代码生成到蛋白质结构预测Transformer架构几乎成了现代AI模型的代名词。但当我们谈论“训练一个Transformer”或者“用Transformer生成文本”时我们究竟在做什么这背后远不止是调包和跑代码那么简单它是一系列精妙数学思想的结晶。今天我们不谈框架不谈调参技巧就聊聊那些支撑起Transformer大厦的数学基石。理解这些你才能从“会用”走向“懂它为什么行”甚至在它出问题时知道该从哪里下手。很多人第一次接触Transformer都会被那张经典的“编码器-解码器”结构图吓到上面布满了“自注意力”、“前馈网络”、“残差连接”和“层归一化”的方块。但剥开这些工程实现的外壳其核心驱动力可以归结为几个关键的数学概念向量空间与嵌入、注意力机制的概率化解释、基于梯度的优化以及自回归建模的序列概率分解。这些概念共同构成了Transformer训练学习规律与生成创造内容的完整逻辑闭环。接下来我们就逐一拆解看看数学是如何在无声中指挥这场AI交响乐的。2. 基石一万物皆向量——嵌入空间的数学表达Transformer处理的是离散的符号比如单词、子词Token。但计算机和数学模型擅长处理的是连续的数字。因此第一步数学转换就是嵌入Embedding。这本质上是一个查表操作将每个Token映射为一个高维空间比如768维或1024维中的向量。2.1 嵌入矩阵从离散到连续的桥梁假设我们的词汇表大小为V嵌入维度为d。那么嵌入层就是一个可学习的参数矩阵E ∈ R^(V×d)。对于一个索引为i的Token我们取出矩阵E的第i行就得到了它的d维向量表示e_i。注意这个“可学习”是关键。在训练开始时这些向量是随机初始化的。模型的目标就是通过海量的文本数据调整矩阵E中的每一个数字使得语义相近的单词如“猫”和“狗”在向量空间中的位置即向量的方向也接近而语义无关的单词如“猫”和“哲学”则相距甚远。这个过程背后的数学思想是分布式表示。一个单词的含义不再由一个孤立的符号定义而是由它在高维空间中的坐标以及它与其他所有单词向量的相对关系来共同定义。这为后续的注意力机制提供了计算的基础——因为只有处于同一向量空间中的对象我们才能计算它们之间的相似度如点积。2.2 位置编码为序列注入顺序信息纯粹的嵌入丢失了单词在句子中的顺序信息。“猫追老鼠”和“老鼠追猫”的嵌入向量之和可能是一样的。Transformer抛弃了循环神经网络RNN的递归结构因此需要显式地注入位置信息。这就是位置编码Positional Encoding, PE。原始论文中使用的是正弦和余弦函数的固定编码 对于位置pos和维度ii为偶数或奇数PE的计算公式如下PE(pos, 2i) sin(pos / 10000^(2i/d))PE(pos, 2i1) cos(pos / 10000^(2i/d))为什么用三角函数这背后有巧妙的数学动机周期性但不同频不同维度对应不同的正弦波频率使得每个位置都能获得一个独特的编码模式。相对位置可推导对于固定的偏移量kPE(posk) 可以表示为 PE(pos) 的线性函数。这意味着模型能够轻易地学会关注相对位置信息例如“下一个词”或“前两个词”。值域有界正弦余弦函数的值域在[-1, 1]之间与经过归一化的词嵌入向量尺度匹配便于直接相加。最终输入模型的向量是词嵌入向量和位置编码向量的逐元素相加x e PE。至此离散的、有序的符号序列被转化为了一个连续的、包含语义和位置信息的矩阵X ∈ R^(n×d)其中n是序列长度。这是我们所有后续数学操作的起点。3. 核心引擎注意力机制的数学本质注意力机制是Transformer的灵魂。它的核心思想是“动态加权聚合”。我们可以从两个层面来理解其数学本质几何视角和概率视角。3.1 缩放点积注意力一种加权平均给定输入序列矩阵X我们通过三个不同的可学习线性变换矩阵W_Q, W_K, W_V为每个位置生成三组向量查询Query、键Key、值Value。Q X W_QK X W_KV X W_V注意力分数的计算就是查询向量与所有键向量的点积经过缩放后使用Softmax函数归一化为权重Attention(Q, K, V) softmax( QK^T / sqrt(d_k) ) V让我们拆解这个公式QK^T计算相似度。第i个查询向量与第j个键向量的点积度量了位置i对位置j的“关注程度”。点积越大意味着两个向量在方向上的对齐度越高。除以 sqrt(d_k)缩放因子。这是为了防止点积的值过大或过小。当维度d_k很高时点积的结果可能具有很大的方差导致Softmax函数的梯度非常小饱和区不利于训练。缩放操作起到了稳定梯度的作用。Softmax归一化为概率分布。对每一行对应一个查询位置的分数进行Softmax操作使得该位置对所有位置的注意力权重之和为1。这形成了一个“注意力分布”。乘以V加权求和。用这个注意力分布对值向量V进行加权平均得到该位置的输出。输出向量是所有值向量的线性组合其权重由注意力分布决定。从几何上看输出向量是值向量空间中的一个点这个点被“拉向”那些与当前查询更相关的值向量方向。从信息流上看它允许序列中任意两个位置直接建立联系无论它们相距多远从而完美解决了长距离依赖问题。3.2 多头注意力并行化的子空间学习单一套注意力机制可能只关注到一种类型的关联例如语法依赖。为了让模型同时关注来自不同表示子空间的信息Transformer使用了多头注意力Multi-Head Attention。数学上就是将Q、K、V矩阵在特征维度d上切分成h份头数每一份单独进行注意力计算最后将结果拼接起来再经过一个线性变换WO输出。MultiHead(Q, K, V) Concat(head_1, ..., head_h) W_Owhere head_i Attention(Q W_Q^i, K W_K^i, V W_V^i)这里的W_Q^i, W_K^i, W_V^i是每个头独有的投影矩阵。这意味着每个头可以学习到不同的投影方式从而在不同的子空间中捕捉不同类型的关系。例如一个头可能专门关注指代关系如代词与其指代的名词另一个头可能关注固定搭配。多个头的输出在最后被融合形成了更丰富、更鲁棒的上下文表示。实操心得多头注意力中的“头数”h是一个超参数。并非头数越多越好。实践中d嵌入维度通常被设计为h的整数倍d % h 0以确保每个头的维度d_k d_v d/h是整数。头数过多可能导致每个头捕获的信息过于细碎增加计算和过拟合风险头数过少则可能限制模型的表达能力。在BERT-base中h12d768每个头维度为64。4. 训练过程基于梯度下降的损失函数优化训练Transformer的目标是找到一组模型参数θ包括所有的嵌入矩阵、注意力权重矩阵、前馈网络权重等使得模型在训练数据上的预测损失最小。这是一个标准的优化问题。4.1 损失函数交叉熵与语言建模目标对于生成式Transformer如GPT系列最常用的训练目标是自回归语言建模。给定一个文本序列x_1, x_2, ..., x_T模型被训练来预测下一个Token其目标是最大化整个序列的联合似然这个似然被分解为一系列条件概率的乘积P(x_1, ..., x_T) Π_{t1}^T P(x_t | x_t)其中x_t表示t时刻之前的所有Token。在训练时我们通常使用交叉熵损失Cross-Entropy Loss。具体来说在每一步t模型基于上文x_t输出一个在词汇表V上的概率分布P_θ(· | x_t)。真实的下一Tokenx_t是一个one-hot向量。交叉熵损失衡量了模型预测分布与真实分布one-hot之间的差异L_t(θ) -log P_θ(x_t | x_t)整个序列的损失是每一步损失的平均L(θ) (1/T) Σ_{t1}^T L_t(θ)最小化这个损失等价于让模型给真实的下一个Token分配尽可能高的概率。这个过程迫使模型学习到训练数据中蕴含的语法、语义、事实和逻辑规律。4.2 反向传播与优化器如何更新参数损失函数L(θ)关于参数θ的梯度指明了参数应该朝哪个方向调整才能减小损失。计算这个梯度的过程就是反向传播Backpropagation。在Transformer中由于存在大量的矩阵乘法和非线性函数SoftmaxLayerNormGELU反向传播链式求导的计算非常复杂但框架如PyTorch, TensorFlow的自动微分功能为我们处理了这一切。得到梯度∇θ L(θ)后我们需要一个优化算法来更新参数。最常用的是AdamW优化器。它是Adam优化器的改进版加入了权重衰减Weight Decay的正则化。其更新规则比简单的随机梯度下降SGD更复杂它维护了梯度的一阶矩估计均值和二阶矩估计未中心化的方差并进行偏差校正使得每个参数的学习率是自适应调整的。数学形式略复杂但其核心优势在于对超参数特别是学习率不那么敏感在训练初期能快速收敛并且能处理稀疏梯度。踩坑实录训练Transformer时学习率的设置至关重要。通常使用“热身Warm-up”策略在训练初期例如前几千步从一个很小的学习率线性或余弦增长到预设的峰值然后再缓慢衰减。这是因为训练初期模型参数随机初始化梯度估计的方差很大如果一开始就用大学习率可能导致训练不稳定。Warm-up让优化器先“热身”积累足够稳定的动量估计再开始加速。5. 生成过程自回归采样与概率解码训练好的Transformer如何生成文本这是一个序列生成问题其核心是自回归采样。5.1 自回归循环一步步构建序列给定一个初始提示Prompt模型计算第一个输出Token的概率分布P(x_1 | prompt)。接下来我们需要从这个分布中“采样”一个Token作为x_1。然后将prompt x_1作为新的输入计算P(x_2 | prompt, x_1)再采样得到x_2。如此循环直到生成结束标记如eos或达到最大长度。这个过程的数学本质是在每一步模型都在计算一个基于所有已生成上文的条件概率分布生成过程就是从这个分布中进行一次随机抽样。整个生成序列的概率就是每一步条件概率的乘积。5.2 采样策略在确定性与创造性之间权衡如何从概率分布中采样决定了生成文本的质量和多样性。主要有以下几种策略贪婪搜索Greedy Search每一步都选择概率最高的Token。即x_t argmax P(x_t | x_t)。这种方法简单高效但容易导致重复、乏味的文本因为一旦进入某个高概率的“局部最优”路径就很难跳出来。束搜索Beam Search保留概率最高的k条候选序列k称为束宽。在每一步对每条候选序列扩展下一个Token从所有可能的扩展中选出总概率或对数概率之和最高的k条新序列。最终从k条完整序列中选出总概率最高的。束搜索比贪婪搜索能找到更优的全局序列但依然倾向于生成安全、常见的文本创造性不足。在开放域对话或创意写作中可能显得呆板。核采样Top-p Sampling / Nucleus Sampling这是目前大语言模型生成中最常用的策略。它设定一个概率阈值p如0.9。在每一步从概率分布中按概率从高到低累积Token直到累积概率超过p然后只从这个“核”集合中重新归一化概率并采样。这种方法动态地调整候选集的大小既能避免选择极低概率的奇怪Token又能保证一定的随机性和创造性。温度调节Temperature Scaling在Softmax函数计算概率前对模型的输出logits除以一个温度参数TP_i exp(z_i / T) / Σ_j exp(z_j / T)。T 1保持原始分布。T 1分布变得更平缓“升温”低概率Token被提升生成更多样、更有创意的结果但也可能包含更多错误。T 1分布变得更尖锐“降温”高概率Token的概率被进一步放大生成更确定、更保守的文本。 温度采样常与Top-p采样结合使用以精细控制生成行为。个人经验在实际应用中没有“最好”的采样策略只有“最适合”当前任务的策略。例如在代码补全或翻译任务中追求准确性可能使用低温度的束搜索。在撰写故事或聊天时追求新颖性则使用Top-p如p0.9和适中温度如T0.8~1.0的组合。生成时一个常见的技巧是设置“重复惩罚”降低已出现Token的采样概率能有效缓解文本重复的问题。6. 稳定与高效支撑训练的深层数学技巧Transformer模型通常非常深数十层没有RNN那样的时序结构训练起来面临梯度消失/爆炸、收敛缓慢等问题。以下两个数学技巧是它成功的关键保障。6.1 残差连接梯度高速公路在Transformer的每个子层自注意力层、前馈层之后都使用了残差连接Residual Connection子层输出 LayerNorm(x Sublayer(x))。它的数学意义非常深刻。假设我们要学习一个目标映射H(x)。与其直接让堆叠的非线性层去拟合H(x)不如让它们去拟合残差函数F(x) H(x) - x。这样原始映射就变成了 H(x) F(x) x。在反向传播时梯度计算为∂Loss/∂x ∂Loss/∂H(x) * (1 ∂F(x)/∂x)。即使∂F(x)/∂x很小梯度消失也仍然有一条“直连通道”使得梯度∂Loss/∂H(x)可以直接传回输入x这极大地缓解了深层网络中的梯度消失问题使得训练数十甚至上百层的模型成为可能。你可以把它想象成在主干道旁修建了一条“梯度高速公路”确保信息和梯度能够顺畅地向前和向后流动。6.2 层归一化稳定训练状态层归一化Layer Normalization作用于每一个样本的每一个层对一个样本在该层所有神经元特征维度的输出进行归一化。其操作是LN(x) γ * (x - μ) / σ β其中μ和σ是该样本在该层所有特征上的均值和标准差γ和β是可学习的缩放和平移参数。它为什么有效稳定激活函数的输入范围深度学习中的激活函数如ReLU GELU对输入值的范围敏感。LN通过归一化将每一层的输入数据稳定在均值为0、方差为1的分布附近防止数据在经过多层变换后发生协变量偏移使得激活函数工作在梯度较敏感的区域。加速收敛稳定的数据分布允许我们使用更大的学习率从而加快训练速度。对Batch Size不敏感与批归一化BatchNorm不同LN的计算不依赖于Batch内其他样本因此在小批量或动态批量大小的情况下表现更稳定非常适用于NLP任务序列长度可变。在Transformer中LN被用在残差连接之后即“Pre-Norm”结构如原始论文现在更流行的“Post-Norm”或“Sandwich Norm”结构也有使用。无论哪种其核心数学目标都是控制数据流的尺度为优化器提供一个更平滑、更易优化的损失曲面。7. 前馈网络的非线性提供模型容量在自注意力层之后Transformer还有一个位置级前馈网络Position-wise Feed-Forward Network, FFN。它对序列中的每个位置的向量独立进行相同的变换FFN(x) max(0, x W_1 b_1) W_2 b_2。这本质上是一个两层全连接网络中间有一个ReLU激活函数。从数学上看自注意力层擅长进行全局的信息交互和加权聚合但它本质上是线性变换加权和的组合。FFN的作用是引入非线性并增加模型的容量Capacity。它可以被看作是在每个位置上独立进行的一次特征变换能够学习到比注意力更复杂的函数映射。通常FFN的中间隐藏层维度如4*d远大于模型嵌入维度d这为模型提供了强大的表示能力。你可以把Transformer块理解为一个“注意力信息路由 FFN信息加工”的循环单元注意力决定“关注哪里”FFN决定“如何加工关注到的信息”。理解Transformer背后的这些数学基础并不能让你立刻成为调参高手但它能为你提供一个坚实的心智模型。当模型输出 nonsense 时你会去检查注意力权重是否异常当训练loss震荡时你会去审视学习率策略和归一化层当生成文本重复啰嗦时你会去调整采样温度和惩罚参数。这些数学概念就是你在复杂AI系统中进行调试和创新的导航图。它把黑盒变成灰盒让你不仅是技术的使用者更是它的理解者和驾驭者。