ML Fundamentals

gradient

Вектор частных производных loss по параметрам модели — указывает направление наибольшего роста loss.

Что такое gradient

Gradient (градиент) — вектор частных производных скалярной функции потерь (loss) по каждому параметру модели. Элемент градиента ∂L/∂w_i показывает, насколько изменится loss при малом изменении параметра w_i.

Поскольку мы хотим минимизировать loss, обновляем параметры в противоположном направлению градиента (gradient descent):

w_new = w - lr × ∇L(w)

Gradient descent

Для нейросетей с миллиардами параметров точный градиент по всему датасету слишком дорог. Используют стохастический gradient descent (SGD) и его вариации:

  • Mini-batch SGD: градиент по небольшому батчу (типично 8–512 примеров)
  • Adam/AdamW: адаптивные learning rate для каждого параметра, основанные на моментах градиента. Стандарт для LLM

Vanishing и exploding gradients

Vanishing gradients: при backpropagation через много слоёв градиенты экспоненциально уменьшаются → ранние слои почти не обучаются. Решения: residual connections, нормализация (LayerNorm).

Exploding gradients: градиенты нарастают → нестабильное обучение. Решение: gradient clipping.

# Gradient clipping — стандартная практика при обучении LLM
torch.nn.utils.clip_grad_norm_(model.parameters(), max_norm=1.0)

Gradient accumulation

При ограниченной VRAM нельзя обработать весь желаемый батч за один проход. Gradient accumulation позволяет накапливать градиенты по нескольким mini-batch и делать один шаг оптимизатора суммарно.

Связанные термины

  • backpropagation — алгоритм вычисления градиентов
  • loss — скалярная функция, градиент которой вычисляется
  • gradient accumulation — накопление градиентов между шагами
  • learning rate — шаг обновления параметров по градиенту

Готовы запустить GPU-задачу?

Запустить GPU-сервер