Feed-Forward Network (FFN)
iaDéfinition
Le Feed-Forward Network (FFN), aussi appelé MLP (Multi-Layer Perceptron) dans ce contexte, est le deuxième sous-composant majeur de chaque bloc Transformer, après le mécanisme d'attention. Il traite chaque token de manière indépendante (point-wise), appliquant une transformation non-linéaire dans un espace de dimension bien plus large que l'espace d'embedding. Dans le Transformer original, le FFN est composé de deux projections linéaires avec une activation ReLU entre elles : FFN(x) = max(0, xW₁ + b₁)W₂ + b₂. La dimension intermédiaire d_ff est typiquement 4× la dimension du modèle d_model (ex: 4096×4 = 16384 pour LLaMA 7B). Cette expansion puis compression est parfois appelée "bottleneck" à l'envers. Des recherches récentes (Geva et al., 2021) ont montré que les couches FFN agissent comme des "mémoires de clés-valeurs" qui stockent des associations factuelles dans leurs paramètres. Les clés (lignes de W₁) s'activent pour des patterns d'input spécifiques, et les valeurs (lignes de W₂) encodent les informations à retriever. Cette compréhension est fondamentale pour l'interprétabilité mécaniste des LLMs. Les LLMs modernes remplacent la ReLU par des activations plus expressive : SwiGLU (LLaMA, Mistral, Qwen), GeGLU, ou SoLU. Ces activations "gated" utilisent deux branches parallèles avec une multiplication élément-par-élément, améliorant significativement les performances à paramètres équivalents. Dans les architectures MoE, le FFN est remplacé par une collection d'experts FFN avec routage dynamique. Pour les praticiens, le FFN représente environ 2/3 des paramètres d'un Transformer (vs ~1/3 pour l'attention), et son dimensionnement est un levier clé dans le scaling des modèles selon les scaling laws de Chinchilla.
Variantes d'activation modernes
| Activation | Formule | Modèles |
|---|---|---|
| ReLU | max(0, x) | Transformer original |
| GELU | x×Φ(x) | BERT, GPT-2 |
| SwiGLU | SiLU(xW₁)⊗(xW₂) | LLaMA, Mistral, Qwen, Gemma |
| GeGLU | GELU(xW₁)⊗(xW₂) | PaLM, T5 v1.1 |
FFN comme mémoire factuelle
Experiment de Geva et al. (2021) : en interventionnant sur les activations FFN, on peut modifier les faits récités par le modèle (ex: changer la capitale d'un pays dans ses réponses). Cela a conduit aux travaux de model editing (ROME, MEMIT) permettant de "patcher" des connaissances incorrectes sans re-entraîner.
Optimisation FFN
# Profiling du FFN dans un LLM HuggingFace
from torch.profiler import profile, ProfilerActivity
# Les opérations "aten::mm" et "aten::addmm" correspondent aux FFN
# Généralement 60-70% du compute à l'inférence pour un modèle dense
Articles liés
Expert en cybersécurité offensive et intelligence artificielle. Pentest, audit et développement IA sur-mesure.
Services
- Audit Infrastructure
- Audit Kubernetes
- Audit Microsoft 365
- Audit Sécurité Réseau
- Analyse de Risques
- Audit Active Directory
- Audit Application Web
- Audit Cloud (AWS/Azure/GCP)
- Audit Messagerie
- Audit API (OWASP Top 10)
- Audit DevSecOps & CI/CD
- Audit Code Source (SAST)
- Audit Postes de Travail
- Audit Sauvegarde & Résilience
- Audit OT/SCADA (IEC 62443)
- Développement IA
- Formations
Ressources
Projets & Outils
© 2026 Ayi NEDJIMI Consultants. Tous droits réservés.
Un projet cybersécurité ?
Expert dispo · Réponse 24h