【Transformer 与注意力机制】26|前馈网络:那个看似平平无奇的两层 MLP,其实是「记忆」所在

💡 原文中文,约29300字,阅读约需70分钟。
📝

内容提要

本文探讨了Transformer中的前馈网络(FFN),强调其在模型中的重要性。FFN占据了大约三分之二的参数量,是模型存储知识的主要部分。文章分析了FFN的结构、设计选择及其与注意力机制的关系,指出FFN负责每个token的内部计算,而注意力处理token间的通信。现代模型普遍采用SwiGLU替代ReLU,以提高性能。FFN的逐位置计算特性使其在推理时具有并行处理的优势,但也带来了量化时的挑战。整体来看,FFN在Transformer中扮演着核心角色。

🎯

关键要点

  • 前馈网络(FFN)占Transformer模型参数量的三分之二,是模型存储知识的主要部分。
  • FFN的结构是两层MLP,第一层将维度从d升到4d,经过ReLU激活后再压回d。
  • FFN负责每个token的内部计算,而注意力机制处理token间的通信。
  • 现代模型普遍采用SwiGLU替代ReLU,以提高性能,SwiGLU的d_ff设为8d/3。
  • FFN的逐位置计算特性使其在推理时具有并行处理的优势,但在量化时面临挑战。
  • FFN的设计选择包括两层结构和4倍扩张比,这些选择有实证依据。
  • FFN被视为键值记忆,能够存储模型学到的事实和模式。
  • FFN的计算可以无成本地并行,适合在GPU上高效运行。
  • FFN在推理阶段是带宽瓶颈,无法缓存历史计算结果。
  • FFN的激活值分布呈现厚尾特性,导致量化时处理困难。

延伸问答

前馈网络(FFN)在Transformer模型中占据什么样的地位?

FFN占Transformer模型参数量的三分之二,是模型存储知识的主要部分。

FFN的结构是怎样的?

FFN由两层MLP组成,第一层将维度从d升到4d,经过ReLU激活后再压回d。

FFN与注意力机制的主要区别是什么?

FFN负责每个token的内部计算,而注意力机制处理token间的通信。

现代模型为何普遍采用SwiGLU替代ReLU?

SwiGLU提高了性能,能够更好地处理激活值分布的问题。

FFN在推理阶段的计算特性是什么?

FFN的逐位置计算特性使其在推理时具有并行处理的优势,但在量化时面临挑战。

FFN的激活值分布有什么特点?

FFN的激活值分布呈现厚尾特性,导致量化时处理困难。

➡️

继续阅读