Backpropagation

Backpropagation — базовый алгоритм обучения нейросетей: при ошибке предсказания он вычисляет, как менять каждый из миллиардов весов, чтобы уменьшить ошибку. Делает это через правило цепочки, прогоняя градиент от выхода назад ко входу.

Суть

Цикл из четырёх шагов:

  1. Forward pass — прогон входа через сеть, получение предсказания.
  2. Loss — измерение ошибки (например, cross-entropy).
  3. Backward pass — вычисление градиентов через правило цепочки.
  4. Update — w_new = w_old − learning_rate × gradient.

Зачем это нужно

Это механизм, которым LLM вообще «учится»: те же принципы, что в крошечной сети, просто масштаб — сотни слоёв и миллиарды весов. На нём держатся все этапы из LLM Training Stages.

Как работает

  • Правило цепочки: ∂loss/∂w = ∂loss/∂y · ∂y/∂h · … · ∂x/∂w — градиент «течёт» от выхода назад через все слои.
  • Пример обучения y = 2x: w=0.5 → loss=20.25 → … → w=2.00 → loss≈0 за ~50 шагов.
  • Реализуется через automatic differentiation (PyTorch/TensorFlow) — градиенты считаются автоматически.
  • Тонкости масштаба: vanishing/exploding gradients лечат LayerNorm/RMSNorm и residual connections (см. Transformer); оптимизаторы SGD/Adam «помнят» историю градиентов; обновление идёт на батчах, а не на отдельных примерах.
  • Так же обучается и матрица эмбеддингов (см. Embeddings) — из случайной инициализации в осмысленную геометрию.

Связано с

  • LLM Training Stages — backprop работает на всех этапах обучения
  • Transformer — residual/LayerNorm существуют ради стабильного градиента
  • Embeddings — обучаются тем же backprop из случайной инициализации

Открытые вопросы

  • чем Adam практически лучше SGD для трансформеров
  • что такое gradient checkpointing и зачем (память при обучении)