標準 FFN:FFN(x) = W2 · activation(W1 · x + b1) + b2,其中 W1 從模型維度投影到更大的中間維度(通常為 4 倍),啟動函數引入非線性,W2 投影回模型維度。每個位置(token)獨立通過——FFN 看不到其他 token,只有注意力層能做到。
現代 LLM(LLaMA、Mistral 等)使用 SwiGLU 而非標準 FFN:SwiGLU(x) = (W1 · x · SiLU) ⊗ (W3 · x)。這增加了第三個權重矩陣(W3)和一個門控機制,讓網路控制什麼資訊通過。儘管有額外的參數,但在同等計算量下表現更好,因此中間維度被向下調整以作為補償。這是一個稍微複雜的組件改善整個系統的案例。
研究表明,FFN 層的功能類似鍵值記憶體:第一個線性層(W1)偵測輸入中的模式(鍵),第二個線性層(W2)將這些模式映射到輸出更新(值)。「艾菲爾鐵塔在」會啟動 W1 中的特定神經元,透過 W2 提升「巴黎」這個 token 的機率。這種鍵值解釋說明了為什麼 FFN 層儲存事實知識,以及為什麼知識編輯技術可以透過更新特定的 FFN 權重來修改特定的事實。