Обрезка градиента

Тема дорожной карты · Глубокое обучение

Gradient clipping ограничивает величину градиентов перед шагом оптимизатора, предотвращая дестабилизирующие "exploding gradient" обновления, которые часто появляются в RNN, transformers и очень глубоких сетях. Два распространённых варианта — clip-by-value (поэлементное ограничение) и clip-by-global-norm, при котором весь вектор градиента масштабируется, если его L2-норма превышает порог. Clip-by-norm используется по умолчанию в большинстве рецептов обучения LLM и seq2seq, потому что сохраняет направление градиента. В PyTorch это один вызов torch.nn.utils.clip_grad_norm_(model.parameters(), max_norm=1.0) между loss.backward() и optimizer.step(); возвращаемое значение нормы полезно логировать — резкие скачки нормы градиента предвещают расхождение обучения раньше, чем это видно по loss-кривой.

Как это работает

Обрезка градиента — toolkit практика за пределами basic SGD: transfer learning (старт с pretrained модели, fine-tune под задачу — single highest-leverage трюк), data augmentation (синтетически расширить training set), learning rate scheduling (cosine, warmup-then-decay), gradient clipping (cap norm для предотвращения взрывов), regularisation (weight decay, label smoothing, MixUp). Вместе превращают "модель не обучается" в "модель надёжно обучается".

Когда применять

Transfer learning первым — pretrained веса экономят недели compute + бьют from-scratch если у вас не ImageNet-масштаб. Аугментация агрессивно при training set < 100k. Warmup (~5% шагов) перед любым LR schedule — спасает от gradient explosion рано. Clip gradients на Transformer + RNN (norm 1.0 дефолт). Sweep weight decay (0, 1e-4, 1e-2) — оптимум сильно варьируется.

Типичные ошибки

Ловушки Обрезка градиента: обучение с нуля, когда pretrained работает (compute впустую); агрессивная аугментация, разрушающая label-семантику (вращение MNIST 6 → 9); LR schedule без warmup (gradient explosion в первые 100 шагов); weight decay на bias + norm-параметры (AdamW-style decoupled decay).

Связанные понятия

Полезные ресурсы

Проверить знания (2)

Загрузка вопросов…