Архитектура и гиперпараметры нейроязыковых моделей: эволюция и консенсус 0:47
Современные большие языковые модели (LLM) прошли путь от оригинальной архитектуры Transformer до сложных, оптимизированных систем. Лекция Стэнфордского университета в рамках курса CS336 посвящена детальному анализу того, как изменились подходы к обучению и проектированию этих моделей, и какие параметры сегодня считаются «золотым стандартом».
1. Архитектурные вариации: от стандартного Transformer к современным моделям 4:28
Первоначальная архитектура Transformer, представленная в 2017 году, претерпела значительные изменения. Сейчас индустрия пришла к своего рода «конвергентной эволюции».
- Pre-norm vs. Post-norm: В оригинальной статье была предложена схема с пост-нормировкой, однако она оказалась менее стабильной в обучении. Современные модели почти повсеместно используют pre-norm, где
LayerNormставится перед блоком внимания или MLP. - RMS Norm: Большинство моделей (LLaMA, PaLM, Chinchilla) перешли на
RMS Norm, отказавшись от вычитания среднего значения и использования параметров смещения (bias). Это не только упрощает вычисления, но и дает выигрыш в скорости без потери качества. - Исключение Bias: Современные реализации часто полностью исключают параметры смещения (
bias terms) в линейных слоях, что дополнительно стабилизирует процесс обучения. - Double Norm: Новейшая инновация, используемая, например, в Grok и Gemma 2, подразумевает использование
LayerNormкак перед, так и после блоков.
2. Активации и гейтированные линейные модули 19:15
Выбор функций активации и типов MLP оказался критически важным для производительности моделей.
- От ReLU к GLU: Хотя
ReLUиGeLUбыли стандартом в моделях семейства GPT, сейчас доминируют гейтированные линейные единицы (GLU), такие как SwiGLU. - Преимущество SwiGLU: Исследования (включая работу Ноама Шазира) показывают, что варианты GLU стабильно дают более низкие потери при обучении.
- Параметризация: При использовании гейтированных модулей эксперты рекомендуют уменьшать скрытую размерность на 1/3, чтобы общее количество параметров оставалось сопоставимым с негейтированными аналогами.
3. Позиционное кодирование: победа RoPE 32:43
Ранее существовало множество методов кодирования позиций (абсолютное, относительное), но сегодня индустрия практически единогласно перешла на RoPE (Rotary Position Embeddings).
- Суть RoPE: Метод использует повороты векторов в многомерном пространстве для сохранения относительных позиций слов. Это позволяет модели быть инвариантной к абсолютным позициям и эффективно работать с разными длинами контекста.
- Реализация: В отличие от классических методов, где позиции добавляются в начале, RoPE внедряется непосредственно в слои внимания при генерации запросов и ключей.
4. Гиперпараметры и их настройка 41:03
Выбор гиперпараметров часто основывается на эмпирических правилах, которые доказали свою эффективность:
- Feed-forward размерность: Стандартное правило для
ReLU-моделей —dff = 4 * d_model. Для GLU-моделей коэффициент составляет примерно2.66(или8/3). - Связь голов внимания: Общепринятым считается соотношение
1:1между размерностью модели и произведением числа голов на размерность каждой головы. - Размер словаря: Наблюдается явный тренд на увеличение словарей (от 30к до 100к–250к токенов), что особенно критично для поддержки мультиязычности и снижения затрат на инференс в низкоресурсных языках.
5. Стабильность обучения: «волшебная» сила LayerNorm
По мере роста моделей проблемы численной стабильности (взрыв градиентов) становятся всё более актуальными.
- z-loss: Техника, популяризированная моделью PaLM, направлена на стабилизацию нормализатора softmax, чтобы значение
log(z)всегда было близко к нулю. - QK Norm: Новое веяние (используется в Gemma 2, OLMo 2), при котором
LayerNormприменяется к запросам и ключам перед их умножением. Это ограничивает размер входов в softmax и предотвращает численные сбои.
6. Оптимизация инференса: GQA и MQA
Для борьбы с высокими затратами памяти при генерации текста (из-за KV cache) применяются специальные подходы к организации внимания:
- MQA (Multi-Query Attention): Использование множества голов для запросов (Query), но только одной для ключей (Key) и значений (Value).
- GQA (Grouped Query Attention): Компромиссный вариант, где количество голов для K и V уменьшается кратно количеству запросных голов, что позволяет сбалансировать скорость и качество модели.
- Структурированные паттерны: Новейшие модели (например, LLaMA 4) комбинируют полное внимание (в нижних слоях) с «скользящим окном» (в верхних), что позволяет экстремально эффективно обрабатывать длинные контексты.