Training
weight decay
L2-регуляризация весов, штрафующая большие значения и снижающая риск переобучения.
Что такое weight decay
Weight decay — техника регуляризации, добавляющая к функции потерь штраф за большие значения весов. Эффективно «тянет» веса к нулю, ограничивая сложность модели. Реализуется как L2-регуляризация:
loss_total = loss_task + weight_decay × Σ(w²)
В AdamW weight decay применяется непосредственно к весам после обновления (а не к градиентам, как в Adam + L2). Это критически важная разница — именно поэтому Adam + L2 ≠ AdamW.
Типичные значения
| Задача | Weight decay |
|---|---|
| LLM pretraining | 0.1 |
| Fine-tuning LLM | 0.01 — 0.1 |
| LoRA fine-tuning | 0 — 0.01 (часто не нужен) |
| CV задачи | 1e-4 — 1e-3 |
from transformers import TrainingArguments
args = TrainingArguments(
weight_decay=0.01, # стандарт для fine-tuning
...
)
Когда не нужен weight decay
При LoRA/QLoRA основная регуляризация приходит от малого числа обучаемых параметров. Большой weight decay может навредить: адаптеры имеют малые значения, и сильное «тяготение к нулю» мешает обучению.
Связанные термины
- AdamW — оптимизатор с корректным weight decay
- overfitting — проблема, которую weight decay снижает
- learning rate — второй ключевой параметр регуляризации
Готовы запустить GPU-задачу?
Запустить GPU-сервер