ReLU(修正線性單元)是最簡單的:f(x) = max(0, x)。它對負輸入輸出零,對正輸入直接傳遞。ReLU 為正輸入提供恆定梯度 1,解決了困擾早期啟動函數(sigmoid、tanh)的梯度消失問題。其簡單性和有效性使它成為十多年來的預設選擇。
GELU(高斯誤差線性單元)現在是 Transformer 的標準(被 BERT、GPT 和大多數 LLM 使用)。與 ReLU 在零處的硬截斷不同,GELU 在零附近平滑漸細,提供更好的梯度流動。SiLU/Swish(x · sigmoid(x))類似,用於 LLaMA 等一些架構。GELU 和 SiLU 之間的實際差異很小——在 Transformer 規模的模型中兩者都優於 ReLU。
現代 LLM 通常在前饋層中使用門控線性單元(GLU)及其變體(SwiGLU、GeGLU)。這些將兩個平行的線性投影相乘,有效地讓網路控制哪些資訊通過。SwiGLU(用於 LLaMA、Mistral 等許多模型)將 SiLU 啟動與門控結合,在僅略微增加參數的代價下,持續優於標準前饋層。