A FFN padrão: FFN(x) = W2 · activation(W1 · x + b1) + b2, onde W1 projeta da dimensão do modelo para uma dimensão intermediária maior (tipicamente 4x), a função de ativação introduz não-linearidade, e W2 projeta de volta para a dimensão do modelo. Cada posição (token) passa por isso independentemente — a FFN não vê outros tokens, apenas a camada de atenção faz isso.
LLMs modernos (LLaMA, Mistral, etc.) usam SwiGLU em vez da FFN padrão: SwiGLU(x) = (W1 · x · SiLU) ⊗ (W3 · x). Isso adiciona uma terceira matriz de pesos (W3) e um mecanismo de gate que permite à rede controlar que informação passa. Apesar dos parâmetros extras, tem melhor desempenho com computação equivalente, então a dimensão intermediária é ajustada para baixo para compensar. Este é um caso onde um componente ligeiramente mais complexo melhora todo o sistema.
Pesquisas sugerem que camadas FFN funcionam como memórias de chave-valor: a primeira camada linear (W1) detecta padrões na entrada (chaves), e a segunda camada linear (W2) mapeia esses padrões para atualizações de saída (valores). "A Torre Eiffel fica em" ativa neurônios específicos em W1, que através de W2 promovem o token "Paris". Essa interpretação chave-valor explica por que camadas FFN armazenam conhecimento factual e por que técnicas de edição de conhecimento podem modificar fatos específicos atualizando pesos específicos da FFN.