現代大型語言模型架構內部
LLM 中的激活函數(activation functions)
激活函數是那一點非線性,讓網路能做的事超越疊放平坦的線性映射——後者無論多深都會塌縮成一個平坦映射。在大型語言模型裡,它住在前饋區塊中,把每個隱藏值彎折過一道曲線閘門,決定那個單元說話的力道有多大。少了它,整個模型不過是一次矩陣乘法,學不出語言那層層交疊的豐富樣式。
早期 transformer 用 ReLU,一個把負值歸零的硬鉸鏈。現代大型語言模型偏好平滑曲線:GELU,依輸入為正的可能性柔和地為它加權;以及 SiLU,又稱 Swish,是輸入乘上它自己的 sigmoid。平滑帶來更乾淨的梯度,以及雖小卻真實的品質優勢。當前的預設做法是把 SiLU 摺進一道閘門,也就是 SwiGLU 模式,讓一個投影去調制另一個,而非只是彎折單一數值。
\mathrm{SiLU}(x) = x\,\sigma(x), \quad \sigma(x)=\frac{1}{1+e^{-x}}
SiLU(Swish):輸入乘上自己的 sigmoid;平滑且是 SwiGLU 的基本構件。
又称
另见