尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

从RNN到Transformer:自回归模型如何驱动现代大语言模型

从RNN到Transformer:自回归模型如何驱动现代大语言模型 1. 从序列到序列为什么我们需要超越RNN和CNN在自然语言处理领域我们长期被一个核心问题所困扰如何让机器真正“理解”一个句子或一段文本。传统的循环神经网络RNN及其变体LSTM、GRU通过其循环结构理论上能够处理任意长度的序列并捕捉序列中的时间依赖关系。我早期做机器翻译项目时LSTM是绝对的主流。但实际用起来痛点非常明显训练速度慢得令人发指。因为RNN的计算是顺序进行的当前时刻的计算必须等待上一时刻完成这导致它无法利用现代GPU强大的并行计算能力。长序列带来的梯度消失或爆炸问题即使LSTM有所缓解但在处理超长依赖时依然力不从心。你精心调参的模型可能在遇到一个很长的复杂从句时就“忘记”了句首的主语。另一方面卷积神经网络CNN在图像领域大放异彩后也被引入文本处理。通过一维卷积在文本序列上滑动CNN能够并行提取局部特征训练效率高。但它的“视野”受限于卷积核的大小。为了捕捉长距离依赖就需要堆叠很多层卷积或者使用空洞卷积这又使得模型结构变得复杂且对序列中任意位置的关系建模不够灵活和直接。所以在2017年之前我们处在一个两难境地RNN系列模型擅长序列建模但无法并行效率低下CNN能并行但长程依赖捕捉能力弱。直到《Attention Is All You Need》这篇论文的发表Transformer架构横空出世它几乎以一种“暴力美学”的方式解决了这两个核心矛盾。它完全摒弃了循环和卷积仅依赖注意力机制来构建模型实现了极致的并行化训练同时在长程依赖建模上表现出了惊人的能力。Transformer的成功不是偶然的它背后对应着两类重要的序列生成范式自回归模型和非自回归模型。而Transformer的编码器-解码器架构恰好为这两种范式提供了统一的、强大的基础设施。理解Transformer绝不能只停留在看它的结构图必须深入到它如何支撑这两种生成模式以及“自回归”这个思想是如何贯穿于我们如今熟知的大语言模型如GPT系列的核心。接下来我们就从最根本的“自回归”概念开始拆解。2. 自回归模型的核心思想像人一样逐字创作自回归模型这个名字听起来很高深但其思想非常直观甚至可以说它模仿了人类写作或说话最自然的方式。我们来下一个定义自回归模型在生成序列数据时将生成过程视为一个基于已有历史信息顺序预测下一个元素的循环过程。2.1 用语言模型理解自回归让我们用一个最简单的例子——基于上文预测下一个词的语言模型——来说明。假设我们有一个句子开头“今天天气真”。我们的目标是预测下一个词是什么。一个自回归语言模型会这样做它接收已经生成的序列“今天天气真”作为输入。它计算在给定这个序列的条件下词汇表中所有可能的下一个词的概率分布。比如P(好 | 今天天气真) 0.7 P(不错 | 今天天气真) 0.2 P(糟糕 | 今天天气真) 0.1。模型根据这个概率分布通常通过采样或选择概率最大的词选出一个词比如“好”。将新生成的词“好”拼接到历史序列后面形成新的输入“今天天气真好”。重复步骤1-4预测再下一个词如此循环直到生成一个完整的句子比如“今天天气真好我们出去散步吧。”或者遇到一个终止符。这个过程的关键在于“自”和“回归”“自”指模型预测所依赖的历史信息就是它自己之前生成的部分。“回归”这是一个统计学概念在这里可以通俗地理解为“根据已知变量预测下一个变量”。模型不断地将前一步的输出作为下一步输入的一部分形成一个回归过程。用数学公式可以简洁地表示。对于一个序列 $( X (x_1, x_2, ..., x_T) )$自回归模型将其联合概率分解为一系列条件概率的乘积 $$ P(X) \prod_{t1}^{T} P(x_t | x_{t}) $$ 其中 $( x_{t} )$ 表示位置 $( t )$ 之前的所有元素 $( (x_1, ..., x_{t-1}) )$。模型的任务就是学习每一个条件概率 $( P(x_t | x_{t}) )$。2.2 自回归的优缺点与Transformer的关联这种方式的优点非常符合直觉训练目标清晰在训练时我们可以非常方便地构造数据。对于一段文本“今天天气真好”我们可以轻易地构造出训练样本输入“今天”目标输出“天气”输入“今天天气”目标输出“真”输入“今天天气真”目标输出“好”…… 这被称为因果语言建模或下一个词预测任务。生成质量通常较高由于每一步都基于完整的生成历史生成的序列连贯性和一致性通常比较好。但它的缺点也同样突出顺序生成速度慢这是最致命的弱点。因为必须等前一个词生成完毕才能生成下一个词所以生成过程无法并行。生成一个长度为N的序列需要进行N次顺序推理。这在Transformer解码器中体现为掩码自注意力机制确保在预测位置t时模型只能“看到”位置t之前的词而不能“偷看”未来的词。错误累积如果中间某一步预测出现了一个不太合适的词这个错误会被带入后续的生成历史可能导致后续生成完全偏离方向即所谓的“暴露偏差”问题。Transformer的解码器部分就是为自回归生成量身定制的。它内部的掩码自注意力机制完美地实现了“只看过去不看未来”的因果约束使得它可以被高效地训练来执行 $( P(x_t | x_{t}) )$ 的任务。如今所有GPT系列模型、以及大多数文本生成模型其核心都是基于Transformer解码器构建的自回归模型。理解了自回归我们才能明白Transformer解码器那些看似复杂的设计如掩码究竟是为了解决什么问题。接下来我们进入Transformer本身看看它是如何用“注意力”这把万能钥匙打开并行训练和强大表征能力的大门的。3. Transformer架构全景拆解不只是注意力很多人一提到Transformer就说“注意力机制”这其实不全面。Transformer是一个精心设计的、由多个组件耦合而成的完整架构。它之所以能成功是多头自注意力机制和前馈神经网络在残差连接与层归一化的稳定护航下共同作用的结果。我们结合原始的编码器-解码器结构来彻底拆解它。3.1 输入处理词向量与位置编码的融合Transformer的第一步是如何表示输入。对于文本我们需要将离散的符号词或子词转换为连续的向量。词嵌入通过一个可学习的查找表将每个词映射为一个高维向量如512维。这个向量会在训练过程中不断更新以捕捉词的语义信息。位置编码由于Transformer完全抛弃了RNN和CNN它本身不具备处理序列顺序的能力。为了注入序列的位置信息Transformer引入了位置编码。原始论文使用了正弦和余弦函数来生成固定位置编码 $$ PE_{(pos, 2i)} \sin(pos / 10000^{2i/d_{model}}) $$ $$ PE_{(pos, 2i1)} \cos(pos / 10000^{2i/d_{model}}) $$ 其中 $( pos )$ 是位置$( i )$ 是维度索引。这种编码的好处是对于固定的偏移量 $( k )$$( PE_{posk} )$ 可以表示为 $( PE_{pos} )$ 的线性函数这有助于模型学习相对位置关系。随后词嵌入向量和位置编码向量直接相加作为编码器/解码器的输入。注意现在更流行的做法是使用可学习的位置编码即把位置也当作一个可学习的嵌入向量。实践表明对于足够大的数据和模型可学习的位置编码通常能取得比正弦编码更好或相当的效果且实现更简单。3.2 核心引擎自注意力、多头与掩码这是Transformer的灵魂。我们以编码器的自注意力为例。3.2.1 缩放点积注意力注意力机制的本质可以理解为一种“查字典”或“信息检索”的过程。对于输入序列中的每一个词称为“查询”Query它去“查阅”序列中所有词包括自己的信息称为“键”Key并根据相关性“值”Value来汇总信息。具体操作如下对于输入序列 $( X )$形状为[序列长度, 模型维度]我们通过三个不同的线性变换矩阵 $( W^Q, W^K, W^V )$将其分别投影到查询Q、键K、值V空间。计算注意力分数$( \text{分数} QK^T )$。这个点积操作衡量了Q和K之间的相似度。缩放将分数除以 $( \sqrt{d_k} )$其中 $( d_k )$ 是键向量的维度。这一步至关重要因为当 $( d_k )$ 较大时点积的结果可能非常大将softmax函数推入梯度极小的区域不利于训练。应用softmax函数将分数转换为概率分布注意力权重。用注意力权重对V进行加权求和得到最终的输出。公式为$( \text{Attention}(Q, K, V) \text{softmax}(\frac{QK^T}{\sqrt{d_k}})V )$3.2.2 多头注意力如果只做一次注意力模型只能从一个“视角”去融合信息。为了让模型同时关注来自不同位置、不同子空间的信息Transformer引入了“多头”机制。将Q、K、V在特征维度上切分成 $( h )$ 个头例如8个头。对每一个头独立进行上述的缩放点积注意力计算。将 $( h )$ 个头的输出在特征维度上拼接起来。最后通过一个线性变换 $( W^O )$ 投影回原始维度。公式为$( \text{MultiHead}(Q, K, V) \text{Concat}(head_1, ..., head_h)W^O )$ 其中 $( head_i \text{Attention}(QW_i^Q, KW_i^K, VW_i^V) )$。这相当于让模型拥有了多套并行的“信息检索系统”有的头可能更关注局部语法搭配有的头可能更关注远距离的指代关系。这种设计极大地增强了模型的表征能力。3.2.3 掩码自注意力这是在解码器中使用的关键变体。为了确保自回归属性预测时不能看到未来信息我们需要在计算注意力分数时将未来位置的权重“掩码”掉设置为负无穷大这样经过softmax后概率为0。具体实现是在缩放点积之后、softmax之前加上一个下三角矩阵主对角线及以下为0以上为负无穷。3.3 稳定与高效的基石前馈网络、残差与层归一化注意力层之后Transformer还有一个重要的组件位置式前馈网络。它本质上是一个两层全连接网络中间有一个ReLU激活函数$( \text{FFN}(x) \max(0, xW_1 b_1)W_2 b_2 )$。它的作用是对每个位置的特征进行独立的、非线性的变换和升维再降维可以增强模型的表达能力。注意这个网络对序列中的每个位置是独立应用的这依然保持了高度的并行性。然而堆叠这么多层如何保证训练稳定、避免梯度消失或爆炸Transformer借鉴了ResNet的思想引入了残差连接和层归一化。残差连接将子层如自注意力层、前馈网络层的输入直接加到其输出上即 $( \text{LayerOutput} \text{LayerNorm}(x \text{Sublayer}(x)) )$。这创建了一条“高速公路”让梯度可以直接回流极大地缓解了深层网络训练的困难。层归一化对单个样本的所有特征维度进行归一化与批归一化对整个批次进行归一化不同。它被应用在残差相加之后、前馈网络之后。层归一化有助于稳定激活值的分布加速模型收敛。编码器就是由N个如6个相同的层堆叠而成每层包含一个多头自注意力子层和一个前馈网络子层每个子层外围都有残差连接和层归一化。3.4 解码器自回归生成的控制中心解码器的结构与编码器类似但有三点关键区别掩码多头自注意力层第一个自注意力层是掩码的确保解码时只能关注已生成的部分。编码器-解码器注意力层这是解码器独有的第二层注意力。它的Query来自解码器上一层的输出而Key和Value来自编码器的最终输出。这一步是理解“序列到序列”任务的关键解码器在生成每一个目标词时都可以有选择地聚焦于源序列输入的任何部分。这在机器翻译中实现了经典的“对齐”概念。输出层解码器最后的输出会通过一个线性层将模型维度投影到词汇表大小和一个softmax层生成下一个词的概率分布。4. Transformer如何赋能自回归从训练到推理理解了架构我们来看Transformer是如何具体支持自回归模型的。这里主要涉及解码器的工作模式在GPT这类纯解码器模型中体现得最为纯粹。4.1 训练阶段并行化的“教师强制”在训练时我们虽然要训练一个自回归模型但可以利用“教师强制”技术实现并行化这是Transformer训练效率高的核心。输入我们将完整的目标序列例如一句翻译好的英文同时输入给解码器。掩码通过前述的掩码矩阵确保在计算位置t的注意力时模型只能“看到”位置1到t-1的词。对于位置t模型需要预测的词就是位置t的词。并行计算由于所有位置同时输入且掩码是预先设定好的静态矩阵整个序列的条件概率 $( P(x_t | x_{t}) )$ 可以在一个前向传播过程中并行计算出来。损失计算将模型对所有位置的预测结果与真实的下一个词即目标序列本身进行交叉熵损失计算然后反向传播更新参数。这个过程高效地利用了GPU的并行能力一次性完成了所有时间步的“模拟自回归”训练。4.2 推理阶段串行化的“真实生成”推理生成时才是真正的自回归过程无法并行。给定开始符号如s模型预测第一个词的概率分布并通过采样或贪心搜索得到第一个词 $( w_1 )$。将[s, w_1]作为新的输入序列再次输入模型预测第二个词 $( w_2 )$。将[s, w_1, w_2]作为输入预测 $( w_3 )$如此循环直到生成结束符号或达到最大长度。这里有一个巨大的效率瓶颈生成N个词需要进行N次前向传播且每次传播处理的序列长度逐渐增加1, 2, 3, ..., N后面的计算会越来越慢。为了解决这个问题业界采用了KV缓存技术。原理在Transformer的自注意力计算中当前步的Key和Value只依赖于当前步及之前步的输入与未来无关。因此在生成第t个词时我们可以把前t-1步计算好的Key和Value缓存下来。效果当生成第t个词时我们只需要计算当前新词第t个词作为Query对应的Key和Value并将其加入缓存。然后用当前Query去和缓存中所有历史Key计算注意力并用所有历史Value进行加权求和。这样每次前向传播只需要计算当前一个词的特征大大加快了推理速度。这也是为什么像GPT这样的大模型在生成时虽然第一次响应稍慢但后续续写会快很多的原因。4.3 与编码器-解码器架构的对比在原始的Transformer论文中它同时包含了编码器和解码器用于序列到序列任务如机器翻译。在这种设定下编码器负责将源序列如中文句子编码成一个富含语义的上下文矩阵即Key和Value的内存。解码器以自回归的方式利用自身的掩码注意力历史并交叉注意力到编码器的输出上逐个生成目标序列如英文句子。而在GPT等生成式预训练模型中只使用了解码器堆叠。它没有编码器-解码器注意力层因为它的任务不是翻译而是无条件或有条件地生成文本。它通过掩码自注意力来建立对输入历史即提示的理解并基于此进行自回归生成。这种架构被称为仅解码器模型是目前大语言模型的主流。5. 超越自回归Transformer与非自回归生成自回归虽然主流但其串行生成的慢速问题在实时性要求高的场景如同声传译、快速文本摘要中是个硬伤。因此研究者们一直在探索基于Transformer的非自回归生成模型。非自回归模型的目标是打破顺序生成的限制一次性并行地生成整个目标序列。它的核心思想是$( P(Y|X) \prod_{t1}^{T} P(y_t | X) )$即目标序列的每个词都只依赖于源输入X而彼此之间条件独立。5.1 非自回归Transformer的常见思路移除解码器掩码最直接的方法是将解码器中的掩码自注意力改为普通的全注意力让目标序列的所有位置在生成时都能相互看见。但这样简单的改动效果通常很差因为模型失去了对目标端词序的学习。引入隐变量或迭代细化为了解决上述问题主流方法引入中间步骤。例如NATNon-Autoregressive Translation首先预测目标序列的长度然后并行生成所有词。由于条件独立假设太强生成质量往往不高容易出现重复或遗漏。迭代式NAT不追求一步到位而是进行多轮迭代。第一轮可能生成一个粗糙的序列后续几轮再对这个序列进行并行地修正和细化类似于去噪。这需要在模型中引入能感知序列顺序的机制如插入Transformer或莱文斯坦Transformer。连接主义时序分类借鉴语音识别中的CTC方法允许模型输出一个可能包含空白符的更长序列然后通过去重和移除空白符得到最终结果。5.2 自回归与非自回归的权衡特性自回归模型非自回归模型生成方式顺序生成左到右并行生成一次性输出推理速度慢与序列长度成正比极快常数时间生成质量通常更高连贯性好通常较低易出现词序或语义错误训练目标最大似然估计简单直接目标多样可能涉及强化学习、知识蒸馏等典型应用GPT系列、文本创作、对话同声传译、实时字幕、某些特定领域的文本生成目前自回归模型因其卓越的生成质量仍然是文本生成领域的绝对主导。非自回归模型则在速度要求极高、且对生成质量有一定容忍度的场景中寻找用武之地。许多研究正致力于结合两者的优点例如部分自回归模型先并行生成一些片段再串行连接或采用更强大的迭代细化机制。6. 实战中的Transformer以GPT为例的模型解析与调优思考理解了原理我们最后落到实际应用上。如今最成功的Transformer变体无疑是OpenAI的GPT系列。它完美地展示了如何用一个“简化”的Transformer架构仅解码器结合海量数据和自回归任务涌现出惊人的能力。6.1 GPT的核心架构选择GPTGenerative Pre-trained Transformer本质上是一个堆叠了多层Transformer解码器块的模型。注意它没有原始Transformer中的编码器-解码器注意力层。它的每个块包含掩码多头自注意力层用于建模当前上下文。前馈神经网络层用于特征变换。残差连接与层归一化应用于每个子层之后。它的预训练任务极其纯粹因果语言建模。给定一个庞大的文本语料库模型的任务就是预测文本中下一个词是什么。通过这个任务模型学会了语法、事实知识、逻辑推理甚至代码和风格。6.2 关键超参数与缩放定律在构建或理解一个大语言模型时有几个核心超参数模型维度词向量的维度也是Transformer层内部的主要维度。层数Transformer块的堆叠数量。注意力头数多头注意力中头的数量。前馈网络隐藏层维度通常是模型维度的4倍。上下文长度模型一次能处理的最大令牌数。OpenAI等机构的研究发现在计算预算、模型规模和数据集大小之间存在着缩放定律。简单说平滑地扩大模型规模、数据量和计算量模型的性能会可预测地提升。这直接催生了“大模型”的军备竞赛。6.3 推理阶段的生成策略训练好的自回归模型在生成文本时并不是永远选择概率最高的词贪心搜索因为这容易导致重复、乏味的输出。常用的策略包括采样根据softmax后的概率分布随机选取下一个词。可以配合温度参数控制分布的平滑程度温度高更随机温度低更确定。Top-k采样只从概率最高的k个候选词中采样。Top-p采样只从累积概率超过p的最小候选词集合中采样。束搜索保留多个可能序列束宽每一步扩展所有序列最后选择整体概率最高的序列。这对追求准确性的任务如翻译有用但对开放生成可能限制创造性。6.4 经验与避坑指南在实际使用或研究Transformer和自回归模型时我总结了一些心得体会位置编码的坑如果你要处理远超训练时最大长度的序列正弦位置编码可能会因为外推导致性能下降。可学习的位置编码同样有此问题。对于长文本可以考虑相对位置编码如RoPE旋转位置编码它通过旋转矩阵将相对位置信息注入注意力计算具有更好的长度外推性。注意力计算复杂度自注意力的计算复杂度是 $( O(n^2) )$其中n是序列长度。这对于长文档如书籍、长代码文件是难以承受的。这也是当前研究的热点出现了稀疏注意力、线性注意力、分块注意力等多种优化方法。解码器推理优化如前所述一定要实现KV缓存这是推理加速的必备技巧。同时可以使用诸如FasterTransformer、vLLM等高性能推理框架它们对注意力计算和内存管理做了极致优化。评估生成质量对于自回归生成不要只看困惑度。要用人工评估或更全面的自动指标如BLEU、ROUGE用于翻译摘要或专门针对对话、创作的评估体系来衡量。模型很容易生成流畅但无意义或事实错误的文本。“幻觉”问题这是自回归大模型的核心挑战之一。模型基于概率生成文本它追求的是序列的连贯性和概率合理性而非事实正确性。缓解方法包括检索增强生成RAG、指令微调与对齐如RLHF、在输出时引入事实核查模块等。Transformer架构的出现不仅革新了自然语言处理更扩散到了计算机视觉Vision Transformer、音频处理、甚至生物信息学等领域。而自回归作为其最成功的应用范式正在推动着AIGC时代的到来。理解它们不仅仅是理解几个公式和框图更是理解当前人工智能如何“思考”和“创造”的基本逻辑。从RNN/CNN的困境到注意力机制的破局再到自回归与非自回归的路径选择这条技术演进的脉络清晰地指向了一个目标让机器更高效、更智能地理解和生成我们世界的序列。
返回列表