Transformer 模型概述
Transformer 模型是自然语言处理(NLP)领域中的一种重要架构,由 Vaswani 等人在 2017 年提出。它摒弃了传统的循环神经网络(RNN)和卷积神经网络(CNN),完全基于注意力机制(Attention Mechanism)。这种设计使得模型能够并行处理序列数据,极大地提升了训练效率,并显著增强了对长距离依赖关系的建模能力。
自提出以来,Transformer 已成为处理复杂任务的核心架构。衍生模型包括 BERT、GPT 系列、T5、RoBERTa、XLNet、ALBERT、DistilBERT 等。这些模型通过强大的自注意力机制和深度学习能力,大幅提升了文本理解、生成和翻译的精度。此外,Transformer 的应用已扩展到计算机视觉领域,产生了如 DETR 和 ViT 等创新应用,凸显了其在构建智能系统中的关键地位。
Transformer 核心组件
1. 自注意力机制(Self-Attention)
自注意力机制允许模型在处理输入序列中的每个词时,关注序列中所有其他位置的信息。其核心在于计算查询(Query)、键(Key)和值(Value)矩阵之间的交互。
- 计算注意力权重:通过缩放点积注意力(Scaled Dot-Product Attention)公式 $Attention(Q, K, V) = softmax(\frac{QK^T}{\sqrt{d_k}})V$ 计算权重。
- 加权求和:根据计算出的注意力权重对值向量进行加权求和,生成新的词表示。
2. 多头自注意力(Multi-Head Self-Attention)
为了捕捉不同子空间中的特征信息,Transformer 将自注意力机制分成多个'头'。每个头独立计算注意力,最后将结果拼接并通过线性层输出。这使得模型能够同时关注来自不同表示子空间的不同位置信息。
3. 位置编码(Positional Encoding)
由于 Transformer 不包含递归或卷积结构,缺乏对序列顺序的固有感知。因此,必须添加位置编码来注入位置信息。通常使用正弦和余弦函数生成不同频率的位置向量,并将其加到词嵌入(Word Embedding)上。
4. 前馈神经网络(Feed-Forward Neural Networks)
在每个位置的表示都通过一个相同的全连接前馈网络。该网络通常包含两个线性变换和一个 ReLU 激活函数,用于增强模型的表达能力和非线性映射能力。
5. 残差连接和层归一化(Residual Connections and Layer Normalization)
- 残差连接:在每个子层(如自注意力层和前馈层)的输出上添加原始输入,有助于梯度流动,缓解深层网络训练中的梯度消失问题。
- 层归一化:在每个子层的输出上进行标准化,以稳定和加速训练过程。
Transformer 模型结构
标准的 Transformer 架构由编码器(Encoder)和解码器(Decoder)堆叠而成。
编码器(Encoder)
编码器由 N 个相同的层堆叠而成。每层包含两个子层:多头自注意力机制和前馈神经网络。编码器的目标是将输入序列转换为上下文相关的连续表示。
解码器(Decoder)
解码器同样由 N 个相同的层堆叠而成。每层包含三个子层:掩码多头自注意力机制、编码器 - 解码器注意力机制和前馈神经网络。
- 掩码自注意力:防止解码器在预测当前位置时看到未来的位置信息,确保自回归生成的正确性。
- 编码器 - 解码器注意力:使解码器能够关注编码器的输出,从而获取输入序列的相关信息。
BERT 与 GPT 的架构差异
虽然 BERT 和 GPT 均基于 Transformer,但它们在架构设计和应用场景上有显著区别。
BERT (Bidirectional Encoder Representations from Transformers)
- 架构:仅使用编码器部分。


