Aller au contenu principal
Expert Cybersécurité & IAv9.0
Centres de ressources conformité
Besoin d'un accompagnement expert ?
Devis personnalisé sous 24h — audit, conformité, incident
Checklists Sécurité — Audit & Durcissement
Formats disponibles
📄 PDF 📊 Excel 🌐 Web

11 checklists professionnelles couvrant 2 200+ points de contrôle. Téléchargement gratuit, aucune inscription.

Pre-LayerNorm vs Post-LayerNorm

ia

Définition

Pre-LayerNorm (Pre-LN) et Post-LayerNorm (Post-LN) designent deux variantes architecturales des Transformers qui different par la position de la normalisation par couche (LayerNorm) relative aux sub-couches d'attention et FFN. Ce choix apparemment mineur a des implications significatives sur la stabilite de l'entrainement et la qualite finale du modele. Post-LayerNorm (architecture originale d'Attention Is All You Need, 2017) : la normalisation est appliquee apres la sous-couche et la connexion residuelle — x = LayerNorm(x + Sublayer(x)). C'est l'architecture du Transformer original, de BERT, et des premiers GPTs. Elle souffre de gradients instables pendant l'entrainement des modeles profonds (gradient vanishing/explosion), necessitant des techniques speciales de warmup et de regularisation. Pre-LayerNorm (standard moderne) : la normalisation est appliquee avant la sous-couche — x = x + Sublayer(LayerNorm(x)). Utilisee par GPT-2, GPT-3, LLaMA (toutes versions), Mistral, et la plupart des LLMs modernes. Pre-LN offre une stabilite d'entrainement bien superieure car la connexion residuelle preservee permet a l'information de fluer sans degredation. C'est pourquoi les LLMs peuvent etre entraines sans warmup complexe. RMSNorm est une variante de LayerNorm utilisee dans les LLMs recents (LLaMA, Mistral, DeepSeek) : RMSNorm normalise uniquement par la norme quadratique moyenne (Root Mean Square) sans centrage, ce qui est computationnellement plus efficace (~40% plus rapide que LayerNorm). RMSNorm maintient les avantages de Pre-LN avec un cout computationnel reduit. Deep Norm (Microsoft, 2022) est une variante de Post-LN qui ameliore la stabilite via une initialisation des poids et une mise a l'echelle specifiques des connexions residuelles. Deep Norm permet de former des Transformers de 1000+ couches (bien plus profonds que Pre-LN) avec une stabilite comparable. Des modeles comme PaLM et certaines variantes utilisent Deep Norm ou des variantes hybrides.

Implementation Pre-LN vs Post-LN

import torch.nn as nn

class PreLNBlock(nn.Module):
    def __init__(self, d_model, n_heads):
        super().__init__()
        self.norm1, self.norm2 = nn.RMSNorm(d_model), nn.RMSNorm(d_model)
        self.attn = MultiHeadAttention(d_model, n_heads)
        self.ffn = FeedForward(d_model)

    def forward(self, x):
        x = x + self.attn(self.norm1(x))  # Normaliser AVANT l'attention
        x = x + self.ffn(self.norm2(x))   # Normaliser AVANT FFN
        return x  # Residual stream preserve

class PostLNBlock(nn.Module):
    def forward(self, x):
        x = self.norm1(x + self.attn(x))  # Normaliser APRES l'attention
        x = self.norm2(x + self.ffn(x))   # Normaliser APRES FFN
        return x  # Gradient instable pour grands modeles

Articles liés

Un projet cybersécurité ?

Expert dispo · Réponse 24h

Devis