Weight Decay
iaDéfinition
Le Weight Decay est une technique de regularisation qui ajoute une penalite proportionnelle a la magnitude des poids du modele dans la fonction de perte, encourageant le modele a apprendre des representations avec des poids de petite magnitude. C'est l'equivalent de la regularisation L2 en machine learning classique : la loss totale = loss_standard + lambda * sum(w^2). Dans le contexte des LLMs, le Weight Decay est utilise avec l'optimiseur AdamW (Adam with Weight Decay). La difference entre Adam+L2 et AdamW est importante : AdamW applique la penalite de weight decay directement sur les poids (apres la mise a jour d'Adam), plutot que de l'ajouter au gradient avant la mise a jour d'Adam. Cela donne une regularisation plus efficace et plus stable. Les valeurs de Weight Decay pour les LLMs : 0.1 est le standard pour les pre-entrainements (GPT-2, GPT-3, LLaMA, Mistral), avec certains labs utilisant 0.01 pour le SFT et 0.001 pour le DPO/ORPO ou l'overfitting sur le dataset d'alignment est un risque. Note : les biais, les embeddings de position et les LayerNorm parameters sont generalement exclus du Weight Decay. L'effet du Weight Decay sur les LLMs : il favorise les representations distribuees (les informations sont encodees dans beaucoup de neurones avec de petits poids plutot que dans quelques neurones avec de grands poids), reduit l'overfitting sur les patterns frequents du corpus, et ameliore la generalisation sur des distributions out-of-distribution. Le Weight Decay interagit avec le Learning Rate : a Weight Decay fort, un LR plus eleve peut etre necessaire pour que la mise a jour du gradient soit suffisante face a la penalite. La pratique courante est de regler le LR et le WD ensemble (schedule cosine avec WD 0.1 et LR 1e-4 pour les modeles 7B).
Configuration AdamW pour LLM
from torch.optim import AdamW
# Separer les parametres avec/sans weight decay
no_decay = ['bias', 'LayerNorm.weight', 'layer_norm.weight']
param_groups = [
{'params': [p for n, p in model.named_parameters()
if not any(nd in n for nd in no_decay)],
'weight_decay': 0.1}, # Appliquer WD sur les poids
{'params': [p for n, p in model.named_parameters()
if any(nd in n for nd in no_decay)],
'weight_decay': 0.0}, # Pas de WD sur biais/LN
]
optimizer = AdamW(
param_groups,
lr=1e-4,
betas=(0.9, 0.95),
eps=1e-8,
weight_decay=0.1 # Valeur par defaut du groupe 1
)
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