Архитектуры и гиперпараметры нейросетей: опыт от OpenAI до Stanford CS336
Современные большие языковые модели (LLM) прошли путь от классических архитектур 2017 года до стандартизированных решений, оптимизированных для обучения и инференса. В лекции Stanford CS336 рассматривается эволюция трансформаторов, анализируются консенсусы в выборе гиперпараметров и обсуждаются новейшие методы стабилизации обучения, которые стали индустриальным стандартом.
🏗️ Архитектурные вариации и эволюция трансформаторов
Развитие архитектур последних лет демонстрирует своего рода «конвергентную эволюцию». Хотя существует множество моделей (от 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 инвариантен к абсолютной позиции, что критически важно для экстраполяции длины контекста в продакшн-системах.
⚙️ Правила выбора гиперпараметров
Выбор гиперпараметров часто является консервативным процессом: исследователи предпочитают копировать проверенные значения, чтобы минимизировать риски при обучении.
- 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).
🛡️ Стабилизация обучения и «проблемные» зоны
При обучении моделей на огромных массивах данных критически важным становится контроль за «взрывом» градиентов.
- Z-loss: Используется для стабилизации выходного слоя softmax, заставляя нормализатор (z) оставаться близким к единице, что предотвращает численные ошибки.
- QK Norm: Применение LayerNorm к запросам (Q) и ключам (K) перед их перемножением в механизме внимания — это эффективный метод контроля стабильности, пришедший из области компьютерного зрения.
- Soft capping: Метод ограничения логитов перед softmax через функцию
tanh, позволяющий избежать экстремальных значений.
🧠 Инференс и оптимизация внимания
Эффективность генерации текста определяется использованием KV-кэша, но этот процесс имеет слабую арифметическую интенсивность (много обращений к памяти при малом количестве вычислений).
- MQA и GQA: Multi-Query Attention (MQA) и Grouped-Query Attention (GQA) — способы снижения объема памяти, необходимого для хранения кэша ключей и значений, за счет совместного использования KV-головок для нескольких Q-головок.
- Гибридные архитектуры: Современные решения используют блоки с полной self-attention (для глобального контекста) в сочетании с блоками со sliding window attention (для локального контекста), что позволяет эффективно масштабировать модели до миллионов токенов контекста.