424 Chapter 12. 基于自注意力的模型 肖桐 朱靖波
12.6 前馈全连接网络子层
在 Transformer 的结构中,每一个编码层或者解码层中都包含一个前馈神经网络,
它在模型中的位置如图12.16中红色方框所示。
Self-Attention
Add & LayerNorm
Feed Forward Network
Add & LayerNorm
Embedding
+
Position
编码器输入: 我 很 好
编码器
Self-Attention
Add & LayerNorm
Encoder-Decoder Attention
Add & LayerNorm
Feed Forward Network
Add & LayerNorm
Output layer
Embedding
+
Position
解码器输入: <sos> I am fine
解码器
解码器输出: I am fine <eos>
图 12.16 前馈神经网络在模型中的位置
Transformer 使用了全连接网络。全连接网络的作用主要体现在将经过注意力计
算之后的表示映射到新的空间中,新的空间会有利于接下来的非线性变换等操作。实
验证明,去掉全连接网络会对模型的性能造成很大影响。Transformer 的全连接前馈神
经网络包含两次线性变换和一次非线性变换(ReLU 激活函数:ReLU(x) = max(0,x)),
每层的前馈神经网络参数不共享,具体计算如下:
FFN(x) = max(0,xW
1
+ b
1
)W
2
+ b
2
(12.14)
其中,W
1
、W
2
、b
1
和 b
2
为模型的参数。通常情况下,前馈神经网络的隐藏层维度
要比注意力部分的隐藏层维度大,而且研究人员发现这种设置对 Transformer 是至关
重要的。比如,注意力部分的隐藏层维度为 512,前馈神经网络部分的隐藏层维度为
2048。当然,继续增大前馈神经网络的隐藏层大小,比如设为 4096,甚至 8192,还
可以带来性能的增益,但是前馈部分的存储消耗较大,需要更大规模 GPU 设备的支
持。因此在具体实现时,往往需要在翻译准确性和存储/速度之间找到一个平衡。