From Tranformer to Decoder ONLY
Transformer
为了达到深入浅出的目的,学习之前明确以下几个目标:
- Transformer 是做什么的
- Transformer 的输入是什么
- Transformer 的输出是什么
- Transformer 是什么,长什么样
- Transformer 还能怎么优化
Transformer 模型整体结构分为两个主要部分:
- Encoder(编码器)部分:负责处理输入,提取表示。
- Decoder(解码器)部分:接收编码器输出并逐步生成目标输出(用于翻译等任务)。
- 每个部分由多个结构相同的子层(Layer)堆叠而成。
输入 → Encoder(N层) → 中间表示 → Decoder(N层) → 输出
Add & LayerNorm(残差连接和层归一化)
- 残差连接:帮助缓解深层网络训练中的梯度消失问题。
- LayerNorm:标准化激活值,提升训练稳定性和速度。
- 在每个子层(如注意力层和前馈层)后面都加上这一步骤。
编码器
输入表示(Input Embedding + Positional Encoding)
功能:将离散的输入序列(如词或Token)转换为连续的向量,并加入位置信息。
📌 包括两部分:
- Input Embedding:将输入 token(如词或子词)映射为固定维度的向量(类似 word2vec、BERT embedding)。
Positional Encoding(位置编码):为克服 Transformer 不具备顺序感,引入每个位置的向量。最初用的是正弦/余弦函数编码位置。
多头自注意力机制(Multi-Head Self-Attention)
功能:
每个位置可以根据整个输入序列中的其它位置信息动态调整其表示。多头机制增强模型表示能力。
📌 过程:
对每个输入向量 𝑥
多头注意力:
将 Q, K, V 分为多个子空间(多个头),每个头独立计算注意力,再拼接合并。
多头注意力的优势在于模型能关注多个不同的语义子空间。
前馈神经网络( Feed Forward Network)
功能:对每个位置单独地进行非线性变换(增强特征表达能力)。
可理解为对每个 token 表示的“激活变换”。