### 学习目标 理解Transformer的Encoder-Decoder结构 掌握各组件的作用和连接方式 了解Token处理流程 ### 整体架构 `输入``Token``序列`` → Encoder → ``编码表示`\ ` ↓`\ `输出``Token``序列`` ← Decoder ← ``编码表示` ### Encoder层 单层结构 `输入``X`\ ` ↓`\ `Multi-Head Self-Attention`\ ` ↓`\ `Add & Norm (``残差连接`` + ``层归一化``)`\ ` ↓`\ `Feed-Forward Network (FFN)`\ ` ↓`\ `Add & Norm`\ ` ↓`\ `输出``H` #### 残差连接 `输出`` = F(x) + x` 作用: - 缓解梯度消失 - 便于训练深层网络 #### 层归一化 `输出`` = ``LayerNorm``(x + F(x))` 作用: - 稳定训练 - 加速收敛 #### FFN (前馈网络) `FFN(x) = ``ReLU``(``xW``₁ + b₁)W₂ + b₂` 本质:两层全连接网络,非线性变换 ### Decoder层 #### 结构 `输入``X`\ ` ↓`\ `Masked Self-Attention (``只能看之前的位置``)`\ ` ↓`\ `Add & Norm`\ ` ↓`\ `Cross-Attention (Query``来自``Decoder, Key/Value``来自``Encoder)`\ ` ↓`\ `Add & Norm`\ ` ↓`\ `FFN`\ ` ↓`\ `Add & Norm`\ ` ↓`\ `输出`` (``接``Softmax``预测概率``)` #### Cross-Attention `Q: Decoder``的隐藏状态`\ `K, V: Encoder``的输出` 作用:让Decoder关注Encoder的相关部分 ## Token处理流程 ### 输入处理 `文本`` → Tokenize → Token IDs`\ ` ↓`\ ` Embedding``层`\ ` ↓`\ ` ``位置编码相加`\ ` ↓`\ ` Encoder/Decoder` ### 输出处理 `Decoder``输出`` → ``线性层`` → ``Softmax`` → ``概率分布`\ ` ↓`\ ` ``选择最大值` ## 训练与推理 训练阶段 `教师强制`` (Teacher Forcing)``:`\ ` ``真实标签作为``Decoder``输入`\ ` ``可以并行计算` 推理阶段 `自回归生成`` (Autoregressive)``:`\ ` ``生成一个``Token → ``加入输入`` → ``生成下一个`\ ` ``串行计算` ## Transformer变体 BERT (Encoder-only) `输入`` → Encoder → [CLS]``表示`` / ``每个``Token``表示` 应用:分类、NER、问答 GPT (Decoder-only) `输入`` → Decoder → ``下一个``Token``预测` 应用:文本生成 T5 (Encoder-Decoder) `输入`` → Encoder → ``表示`` → Decoder → ``输出` 应用:翻译、摘要 ## 思考与练习 1. 为什么Decoder需要Masked Attention? 2. Encoder-only和Decoder-only模型各有什么优势? 3. Transformer如何处理超长序列? ## 关键术语 ---------------------------------------------------------- 中文 英文 说明 --------------- --------------------- -------------------- 残差连接 Residual Connection 跨层连接 层归一化 Layer Normalization 归一化层 教师强制 Teacher Forcing 训练时使用真实标签 自回归 Autoregressive 基于前序生成后续 编码器-解码器 Encoder-Decoder Seq2Seq架构 ---------------------------------------------------------- ## 延伸阅读 1. [The Annotated Transformer](https://nlp.seas.harvard.edu/2018/04/03/attention.html) [Visualizing A Machine Learning Model](https://poloclub.github.io/transformer-explainer/) \# 03.3 大语言模型应用