Transformer核心模块解析:FFN、Add & LN 的作用与应用
元数据
- 分类:深度学习、自然语言处理
- 标签:Transformer、前馈网络、层归一化、残差连接、深度学习优化
- 日期:2025年3月2日
核心内容总结
Transformer 中的 FFN(前馈网络)、Add(残差连接)和 LN(层归一化)是构建其强大性能的关键模块。这些模块分别承担了以下功能:
- FFN 前馈网络:在多头注意力(MHA)后,独立处理每个 token 的信息,完成更深层次的学习与计算。
- Add 残差连接:缓解深层网络中的梯度消失问题,确保更好的梯度回传。
- LN 层归一化:加速模型收敛,避免梯度爆炸/消失问题,特别适合 NLP 场景。
详细解析
✅ FFN 前馈网络:独立计算的核心
FeedForward Network 是 Transformer 中的关键组件。MHA(多头注意力)模块汇聚了不同 token 之间的信息,但 FFN 则负责让每个 token 独立思考这些信息。
- 作用:模拟“交流之后的个人思考”,通过非线性变换进一步提取特征。
- 特点:每个 token 的处理是独立的,不涉及其他 token 的交互。
💡 启发点:FFN 是 Transformer 的“计算引擎”,让模型不仅能看,还能“思考”。
⚠️ Add 残差连接:优化深层网络的梯度回传
深度神经网络常面临梯度消失或爆炸问题,而残差连接为梯度提供了一条“高速通道”:
- 作用:通过直接加法操作,将输入信息直接传递到后续层,确保即使网络很深,梯度依然能顺畅地回传。
- 好处:
- 初始阶段,残差块影响较小,但为梯度提供了稳定路径。
- 随着训练进行,残差块逐渐增强其作用。
💡 启发点:残差连接是深层网络训练成功的关键之一。
❗️ LN 层归一化:NLP 中的收敛加速器
Layer Normalization 在 NLP 任务中尤为重要,与 Batch Normalization 不同,它针对每个样本的特定维度进行归一化:
- 区别:
- Batch Norm 在样本批次维度(N)上归一化,适合计算机视觉任务。
- Layer Norm 在通道维度(C)上归一化,更适合自然语言处理任务。
- 应用场景:
- NLP 中需要保留句子内的分布信息,因此 Layer Norm 是更优选择。
💡 启发点:Layer Norm 能更好地保留上下文语义,是 NLP 模型的标配。
📈 数据对比表:Batch Norm vs Layer Norm
特性 | Batch Norm | Layer Norm |
---|---|---|
归一化维度 | 样本批次维度(N) | 通道维度(C) |
应用场景 | 计算机视觉(CV) | 自然语言处理(NLP) |
是否保留上下文信息 | 否 | 是 |
举例 | 图像 RGB 通道归一化 | 每句话独立归一化 |
常见错误警告区块
⚠️ 常见错误:
- 将 Batch Norm 用于 NLP 模型,导致上下文信息丢失。
- 忽略残差连接的重要性,导致深层网络难以优化。
- 忽视 FFN 的独立性,误以为它也会进行 token 间的交互。
行动清单 📋
- 在构建 NLP 模型时,优先选择 Layer Norm 而非 Batch Norm。
- 确保残差连接在深层网络中被正确实现,以提升训练稳定性。
- 深入理解 FFN 的独立性,并结合实验验证其在特征提取中的作用。
[思考] 延伸问题
- 残差连接是否适用于任何类型的深度学习模型?在什么情况下可能不适用?
- 除了 Layer Norm 和 Batch Norm,还有哪些归一化方法可以优化 NLP 模型?
- FFN 能否进一步改进,比如加入更多的上下文交互?
原文参考自 Transformer 核心模块解析材料。