Transformer

千伏电压(讨论 | 贡献)2026年7月1日 (三) 19:33的版本

Transformer 是一种基于自注意力机制(Self-Attention)的深度学习模型架构,最初由 Vaswani 等人在 2017 年的论文《Attention is All You Need》中提出。它彻底改变了自然语言处理(NLP)领域,并成为许多现代模型(如BERT、GPT 等)的基础。

Transformer模型的崛起标志着自然语言处理技术的一个重要转折点。自问世以来,Transformer以其卓越的性能迅速成为NLP任务的首选架构。研究者们逐渐认识到,对于大多数语言任务,对模型架构的改进已不再是关键,而是转向了预训练(Pretraining)加上微调(finetune)的策略。这种策略的核心在于,使用大规模数据集训练一个通用的语言模型,然后在此基础上针对特定任务进行微调,预训练与微调的结合可以更有效地提高模型泛化能力和适应性,使模型能够快速适应新的应用场景。

背景

在 Transformer 出现之前,序列建模任务(如机器翻译)主要依赖于循环神经网络(RNN)和卷积神经网络(CNN)。然而,RNN 存在梯度消失和难以并行化的问题,而 CNN 在处理长距离依赖关系时表现不佳。

早期主流的序列建模方法基于RNN/LSTM编码器-解码器架构(如Bahdanau Attention、GNMT)。这类模型通过循环隐藏状态处理序列,理论上可以捕捉任意长度的上下文,但其“固有顺序性”带来明显瓶颈:每一步计算依赖前一步,无法并行,导致训练效率低;同时信息在长序列中逐步传递,路径长度为[math]\displaystyle{ O(n) }[/math],即便有LSTM/GRU门控机制,长程依赖仍难以学习;此外,反向传播需保存所有中间状态,造成显存压力大,限制batch size和训练稳定性。

为缓解这些问题,注意力机制被引入。Bahdanau Attention使解码器在生成每个词时能够“回看”编码器所有位置,并动态分配权重,从而显著提升长句建模能力。但注意力只是RNN框架中的辅助模块,未改变其顺序计算本质,因此并行性和效率问题依旧存在,本质上只是“加速理解”,没有“加速计算”。

随后研究者尝试用CNN替代RNN(如ByteNet、ConvS2S),利用卷积实现并行计算,提高训练速度。然而CNN受限于局部感受野,建模长程依赖需要堆叠多层或使用扩张卷积,导致模型复杂度上升;任意两位置间的信息路径仍随距离增长(尽管为对数级)。因此,一个核心问题浮现:能否仅用注意力机制构建完整序列模型,从而实现更强并行性、更短信息路径和更高训练效率。

ransformer 通过引入自注意力机制,解决了这些问题,并显著提升了模型性能。

整体架构

概览

Transformer延续了经典的编码器-解码器框架,但在具体实现上进行了彻底重构。编码器由6个完全相同的层堆叠而成,每一层都包含两个核心子结构:多头自注意力机制和前馈神经网络,同时在每个子层外部都配有残差连接与层归一化,以保证训练的稳定性与深层信息的有效传播。解码器同样由6层组成,其结构与编码器基本一致,但额外引入了一个“编码器-解码器注意力”子层,使其在生成输出时能够利用编码器的全局信息。此外,解码器中的自注意力采用了掩码机制,确保当前位置只能依赖已生成的内容,从而避免未来信息泄露。

在核心计算机制上,Transformer完全依赖注意力来建模序列关系。其中,缩放点积注意力通过查询(Q)、键(K)、值(V)的相似度计算注意力权重,并通过缩放操作稳定梯度,使训练更加高效。而多头注意力机制则将这一过程并行化为多个“头”,使模型能够在不同的表示子空间中同时捕捉多种关系,从而提升表达能力和建模灵活性。

由于模型摒弃了循环和卷积结构,本身不具备对序列顺序的感知能力,因此需要显式引入位置信息。为此,Transformer使用基于正弦和余弦函数的位置编码,将位置信息注入到输入表示中,使模型能够理解词与词之间的相对和绝对位置关系,从而在完全并行的计算框架下仍然具备处理序列结构的能力。

编码器层解剖

在Transformer的编码器中,每一层都可以拆解为几个紧密协作的核心组成部分。首先是多头自注意力子层,其计算流程可以概括为:输入表示先经过层归一化(LayerNorm),随后进入多头注意力模块进行特征交互,最后通过残差连接将子层输出与原始输入相加,从而保留原始信息并缓解深层网络训练中的梯度问题。

第二个关键组成是前馈神经网络(Feed-Forward Network, FFN)。该子层对每个位置的表示独立地进行非线性变换,其形式可写为:

[math]\displaystyle{ FFN(x) = max(0, xW_1 + b_1)W_2 + b_2 }[/math]

这一结构本质上等价于对每个位置分别应用的两层全连接网络,也常被类比为通道维度上的“1×1卷积”,因为它不涉及不同位置之间的信息交互,而是对每个位置的特征进行独立映射与提升。

第三个重要机制是贯穿各子层的残差连接与层归一化,其标准形式为:

[math]\displaystyle{ y = LayerNorm(x + Sublayer(x)) }[/math]

这种设计一方面通过残差路径缓解梯度消失问题,使深层模型更易训练;另一方面通过层归一化稳定激活分布,从而提升收敛速度与模型表现。

整体来看,编码器层具有几个鲜明特征:它完全基于注意力机制来建模序列内部关系,不再依赖任何循环结构或卷积操作;同时,其计算过程是纯前馈的,这使得模型可以在所有位置上实现高度并行计算,从而显著提升训练效率。