FFN standard : FFN(x) = W2 · GELU(W1 · x). Deux matrices de poids, une activation. FFN SwiGLU : SwiGLU(x) = W2 · (SiLU(W1 · x) ⊗ W3 · x). Trois matrices de poids, un mécanisme de porte. La porte (W3 · x) contrôle ce qui passe, permettant au réseau de supprimer ou amplifier sélectivement différentes features. Pour garder un nombre de paramètres constant, la dimension intermédiaire est typiquement réduite de 4×model_dim à (8/3)×model_dim.
Les portes donnent au réseau une interaction multiplicative que les activations standard n'ont pas. Les activations standard appliquent une non-linéarité fixe. Les portes appliquent une non-linéarité apprise et dépendante de l'entrée. Cette expressivité supplémentaire aide le réseau à apprendre des fonctions plus complexes par couche, ce qui signifie qu'il faut moins de couches (ou des couches plus petites) pour une performance équivalente. Shazeer (2020) a montré que les variantes GLU surpassent constamment le FFN standard à travers les tailles de modèles.
SwiGLU est une parmi plusieurs variantes GLU : GeGLU (utilise GELU au lieu de SiLU), ReGLU (utilise ReLU), et le GLU original (utilise sigmoid). SwiGLU et GeGLU performent de manière similaire et surpassent toutes deux ReGLU. Le choix entre elles est surtout empirique — SwiGLU est devenu le défaut par convention (LLaMA l'a adopté, les autres ont suivi) plutôt que par supériorité théorique claire sur GeGLU.