# Как обучают современные модели: архитектурный консенсус

Источник: https://www.youtube.com/watch?v=ptFiH_bHnJw
Канал: Stanford Online
Опубликовано: 16.04.2025

---

## Архитектуры и гиперпараметры нейросетей: опыт от OpenAI до Stanford CS336 [[JUMP:00:00]]

Современные большие языковые модели (LLM) прошли путь от классических архитектур 2017 года до стандартизированных решений, оптимизированных для обучения и инференса. В лекции Stanford CS336 рассматривается эволюция трансформаторов, анализируются консенсусы в выборе гиперпараметров и обсуждаются новейшие методы стабилизации обучения, которые стали индустриальным стандартом.

## 🏗️ Архитектурные вариации и эволюция трансформаторов [[JUMP:04:28]]

Развитие архитектур последних лет демонстрирует своего рода «конвергентную эволюцию». Хотя существует множество моделей (от OLMo 2 до Gemma 3), большинство из них пришло к унифицированному набору решений.

### Стандартизация слоев нормализации

*   **Pre-norm vs Post-norm:** Оригинальный трансформатор использовал *post-norm*, однако современные модели почти повсеместно перешли на *pre-norm* (нормализация перед блоком), так как это обеспечивает более стабильное распространение градиентов и позволяет отказаться от сложной настройки «прогрева» (warm-up) скорости обучения.
*   **RMS Norm:** В большинстве современных моделей (LLaMA, PaLM, Chinchilla) произошло замещение стандартного *LayerNorm* на *RMS Norm*. Основное преимущество заключается в исключении операций вычитания среднего и добавления смещения (bias), что снижает количество вычислений и перемещений данных в памяти, повышая производительность.
*   **Bias terms:** Практика показывает, что удаление bias-терминов из большинства слоев линейных преобразований стабилизирует обучение больших сетей.
*   **Double Norm:** Новое веяние, используемое в моделях Grok и Gemma 2, предполагает размещение нормализации как в начале, так и в конце блока, что, по некоторым данным, делает обучение более предсказуемым.

### Активации и Gated Linear Units (GLU)

*   **Замена классики:** Редкие активации (ReLU) и Gaussian Error Linear Units (GeLU) вытесняются gated-вариантами, такими как *SwiGLU* и *GeGLU*.
*   **Механика gating:** В gated-блоках вход умножается на его линейное преобразование (entrywise), что создает «ворота» для потока информации.
*   **Параметризация:** При использовании GLU-блоков размер скрытого слоя часто уменьшается на 2/3, чтобы сохранить общее количество параметров сопоставимым с не-gated архитектурами.

### Позиционное кодирование: победа RoPE

*   **Конвергенция на RoPE:** Почти все современные модели используют *Rotary Position Embeddings* (RoPE). Суть метода заключается в повороте векторов в многомерном пространстве для кодирования относительных позиций.
*   **Преимущества:** В отличие от абсолютных позиционных эмбеддингов, RoPE инвариантен к абсолютной позиции, что критически важно для экстраполяции длины контекста в продакшн-системах.

## ⚙️ Правила выбора гиперпараметров [[JUMP:41:03]]

Выбор гиперпараметров часто является консервативным процессом: исследователи предпочитают копировать проверенные значения, чтобы минимизировать риски при обучении.

*   **Feed-forward ratio:** Для стандартных MLP принято выбирать отношение скрытого размера к входному как 4:1. Для моделей с GLU-активацией эта константа пересчитывается в ~2.66 (или 8/3).
*   **Aspect Ratio:** Существует «золотая середина» соотношения глубины и ширины модели. Согласно исследованиям (например, Kaplan et al.), оптимальное значение обеспечивает эффективное использование вычислительных ресурсов.
*   **Vocab size:** Размер словаря имеет четкую тенденцию к росту. Если ранние модели ограничивались 30–50 тысячами токенов, то современные многоязычные системы стремятся к 100–250 тысячам токенов для качественной работы с различными языками и символами.
*   **Weight Decay:** Хотя dropout практически вышел из моды, weight decay остается обязательным инструментом, так как его влияние на динамику обучения при уменьшении скорости обучения (learning rate) к концу процесса позволяет достичь более низких потерь (loss).

## 🛡️ Стабилизация обучения и «проблемные» зоны [[JUMP:105:23]]

При обучении моделей на огромных массивах данных критически важным становится контроль за «взрывом» градиентов.

*   **Z-loss:** Используется для стабилизации выходного слоя *softmax*, заставляя нормализатор (z) оставаться близким к единице, что предотвращает численные ошибки.
*   **QK Norm:** Применение LayerNorm к запросам (Q) и ключам (K) перед их перемножением в механизме внимания — это эффективный метод контроля стабильности, пришедший из области компьютерного зрения.
*   **Soft capping:** Метод ограничения логитов перед softmax через функцию `tanh`, позволяющий избежать экстремальных значений.

## 🧠 Инференс и оптимизация внимания [[JUMP:115:37]]

Эффективность генерации текста определяется использованием *KV-кэша*, но этот процесс имеет слабую арифметическую интенсивность (много обращений к памяти при малом количестве вычислений).

*   **MQA и GQA:** *Multi-Query Attention* (MQA) и *Grouped-Query Attention* (GQA) — способы снижения объема памяти, необходимого для хранения кэша ключей и значений, за счет совместного использования KV-головок для нескольких Q-головок.
*   **Гибридные архитектуры:** Современные решения используют блоки с полной self-attention (для глобального контекста) в сочетании с блоками со sliding window attention (для локального контекста), что позволяет эффективно масштабировать модели до миллионов токенов контекста.