基于本文回答
0
评论

说说 Transform 的整体架构

知识点图片

Transformer 模型由 Google 团队在 2017 年的经典论文《Attention Is All You Need》中提出。它彻底抛弃了传统的循环神经网络(RNN)和卷积神经网络(CNN)结构,完全基于注意力机制(Attention Mechanism)来处理序列数据。

Transformer 的整体架构是一个经典的 Encoder-Decoder(编码器-解码器) 结构。

为了让你更清晰地理解,我们可以将其分为三个层面来剖析:宏观架构核心组件以及数据流向


1. 宏观架构 (The Big Picture)

从宏观上看,Transformer 由左右两部分组成:

  • 左侧:Encoder(编码器)
    • 作用:负责“理解”输入序列(例如一句话)。它将输入转换成一组包含丰富语义信息的向量(Context Vector)。
    • 特点:并行计算,一次性通过所有输入。
  • 右侧:Decoder(解码器)
    • 作用:负责“生成”输出序列。它根据 Encoder 提供的语义信息以及之前已经生成的词,逐个预测下一个词。
    • 特点:自回归(Autoregressive),即上一步的输出是下一步的输入。

两者都由 N 个相同的层(Layer)堆叠而成(原论文中 N=6)。


2. 内部核心组件 (The Components)

要理解 Transformer,必须理解构成它的几个积木块:

A. 位置编码 (Positional Encoding)

由于 Transformer 没有 RNN 那样的循环结构,它本身不知道“第一个词”和“第二个词”的顺序。因此,必须显式地将位置信息注入到输入向量中。

  • 做法:将词向量(Input Embedding)与位置向量相加。
  • 原理:通常使用正弦和余弦函数生成。

B. 多头自注意力机制 (Multi-Head Self-Attention)

这是 Transformer 的灵魂。

  • Self-Attention (自注意力):让模型在处理某个词时,能同时关注句子中的其他词。例如处理 "it" 时,模型能通过注意力机制知道它指代前面的 "animal"。
    • 核心公式:Attention(Q,K,V)=softmax(QKTdk)VAttention(Q, K, V) = \text{softmax}(\frac{QK^T}{\sqrt{d_k}})V
    • Q (Query):查询向量(我在找什么?)
    • K (Key):键向量(我是什么标签?)
    • V (Value):值向量(我的实际内容是什么?)
  • Multi-Head (多头):相当于把注意力机制复制多份(比如 8 份)。每一份(Head)关注不同的语义空间(有的关注语法结构,有的关注指代关系),最后拼接起来。这极大地增强了模型的表达能力。

C. 前馈神经网络 (Position-wise Feed-Forward Networks, FFN)

在每个注意力层之后,都有一个全连接网络。它对每个位置的向量独立进行非线性变换(通常是两层线性变换中间加一个 ReLU 激活函数),用于进一步提取特征。

D. 残差连接与层归一化 (Add & Norm)

在每个子层(Attention 和 FFN)的输出端,都使用了:

  1. Residual Connection (残差连接)x+Sublayer(x)x + Sublayer(x),防止深层网络梯度消失,让训练更稳定。
  2. Layer Normalization (层归一化):对每一层的数据进行归一化,加速收敛。

3. 详细结构拆解

编码器 (Encoder) - 左侧

Encoder 由 N 个堆叠的层组成,每一层包含两个子层:

  1. Multi-Head Self-Attention:让序列中的每个词都能看到所有其他词,建立全局依赖。
  2. Feed-Forward Network:处理特征。
  • 数据流:Input \rightarrow Embedding + Positional Encoding \rightarrow Layer 1 \rightarrow ... \rightarrow Layer N \rightarrow Output (Context Matrix)。

解码器 (Decoder) - 右侧

Decoder 也由 N 个堆叠的层组成,但每一层包含三个子层(比 Encoder 多了一个):

  1. Masked Multi-Head Self-Attention (带掩码的自注意力)
    • 关键点:这里加了 Mask(掩码)。因为在预测第 tt 个词时,模型不能看到 tt 之后的词(不能作弊)。Mask 将未来的位置设为负无穷,使其 Softmax 概率为 0。
  2. Encoder-Decoder Attention (交叉注意力)
    • 关键点:这是连接 Encoder 和 Decoder 的桥梁。
    • Q 来自 Decoder 上一层的输出(我在生成什么?)。
    • K, V 来自 Encoder 的最终输出(原文说了什么?)。
    • 这让解码器在生成每个词时,都能回头去“看”原文中最相关的部分。
  3. Feed-Forward Network:同 Encoder。

4. 整体工作流程 (Workflow Summary)

假设我们要将中文 "我爱你" 翻译成英文 "I love you":

  1. 输入处理:"我爱你" 被转化为 Embedding 并加上位置编码。
  2. Encoder 运行:数据流经 6 层 Encoder,每一层都通过自注意力机制理解词与词的关系。最终输出一个包含整句话深层语义的矩阵(K 和 V)。
  3. Decoder 开始生成
    • Step 1:输入 <Start> 标记。
    • Masked Attention:只能看到 <Start>
    • Cross Attention:拿着 <Start> 的向量去查 Encoder 的输出(K, V),关注到 "我" 这个词。
    • 输出:经过 Linear 和 Softmax,预测出概率最高的词 "I"。
    • Step 2:输入 <Start> I
    • Masked Attention:只能看到 <Start>I
    • Cross Attention:结合上下文去查 Encoder,关注到 "爱"。
    • 输出:预测出 "love"。
    • ...以此类推,直到生成 <End> 标记。

5. 总结与演变

Transformer 的架构之所以伟大,在于它实现了:

  1. 并行计算:Encoder 阶段可以并行处理整个句子,训练速度远超 RNN。
  2. 长距离依赖:无论句子多长,任意两个词之间的距离都是 1(通过 Attention 直接相连),解决了长序列遗忘问题。

后续演变(大模型的基石):

  • Encoder-only (如 BERT):只用左半边。擅长“理解”任务(分类、情感分析)。
  • Decoder-only (如 GPT 系列):只用右半边(去掉交叉注意力,改为纯自回归)。擅长“生成”任务。
  • Encoder-Decoder (如 T5, BART):保持原样。擅长翻译、文本摘要。
右滑查看面试常问