FFN estándar: FFN(x) = W2 · GELU(W1 · x). Dos matrices de pesos, una activación. FFN con SwiGLU: SwiGLU(x) = W2 · (SiLU(W1 · x) ⊗ W3 · x). Tres matrices de pesos, un mecanismo de compuerta. La compuerta (W3 · x) controla qué pasa, permitiendo a la red suprimir o amplificar selectivamente diferentes características. Para mantener el conteo de parámetros constante, la dimensión intermedia se reduce típicamente de 4×model_dim a (8/3)×model_dim.
La compuerta da a la red una interacción multiplicativa que las activaciones estándar no tienen. Las activaciones estándar aplican una no linealidad fija. La compuerta aplica una no linealidad aprendida y dependiente de la entrada. Esta expresividad adicional ayuda a la red a aprender funciones más complejas por capa, lo que significa que necesitas menos capas (o capas más pequeñas) para un rendimiento equivalente. Shazeer (2020) demostró que las variantes GLU superan consistentemente al FFN estándar en todos los tamaños de modelo.
SwiGLU es una de varias variantes GLU: GeGLU (usa GELU en lugar de SiLU), ReGLU (usa ReLU) y el GLU original (usa sigmoid). SwiGLU y GeGLU rinden de manera similar y ambos superan a ReGLU. La elección entre ellos es mayormente empírica — SwiGLU se ha convertido en el estándar por convención (LLaMA lo adoptó, otros siguieron) en lugar de una superioridad teórica clara sobre GeGLU.