SwiGLU: улучшенный FFN-блок

Термин глоссария

SwiGLU


SwiGLU — разновидность FFN-блока с управляющим гейтом, который использует swish-активацию для более устойчивых и выразительных представлений.

Определение

SwiGLU — это модификация Gated Linear Unit (GLU), в которой управляющая часть проходит через swish-активацию вместо сигмоидальной функции. Такой подход повышает гладкость градиентов, улучшает устойчивость обучения и усиливает способность модели извлекать сложные зависимости. Благодаря сочетанию гейта и swish-нелинейности SwiGLU стал стандартным элементом FFN-блоков в современных языковых моделях.

По структуре SwiGLU напоминает GEGLU и ReGLU, но использует активацию swish (x·σ(x)), обеспечивающую более плавное подавление и усиление признаков.

Как работает

SwiGLU принимает входной вектор и применяет к нему две отдельные линейные проекции: одна создаёт основной поток признаков, вторая — управляющий вектор для gating-механизма.

  • проекция A — формирует основной сигнал;
  • проекция B — формирует управляющий вектор;
  • активация swish — применяется к управляющему вектору: swish(B) = B · σ(B);
  • элементное умножение — результат = A ⊙ swish(B);
  • выходной слой — линейная проекция возвращает размерность к dmodel.

Формула SwiGLU:

SwiGLU(x) = (W₁x + b₁) ⊙ swish(W₂x + b₂)

Swish-гейт делает переходы между «пропусканием» и «подавлением» более мягкими, чем в GLU или ReGLU, что улучшает качество модели.

Где применяется

  • LLM-семейства, включая LLaMA и её производные.
  • Мультимодальные модели для текста, изображений и аудио.
  • Сложные трансформеры с глубокими стековыми архитектурами.
  • Системы генерации кода и анализа больших документов.
  • Модели, оптимизированные под длительное обучение с крупными batch size.

Практические примеры использования

В современных языковых моделях SwiGLU используется как замена классическим FFN-блокам, основанным на ReLU или GELU. Он улучшает устойчивость градиентов при глубокой архитектуре, позволяя моделям сохранять стабильность при большом числе слоёв.

В LLaMA-подобных архитектурах SwiGLU обеспечивает более выразительные промежуточные представления, что особенно заметно при анализе длинных контекстов и сложных структурных зависимостей.

В мультимодальных системах SwiGLU помогает фильтровать шумовые или второстепенные признаки, улучшая согласование модальностей в cross-attention блоках.

В кодовых моделях SwiGLU снижает ошибки, связанные с резкими изменениями активаций, и делает генерацию стабильнее при работе с длинными и формальными структурами.

Почему SwiGLU стал стандартом

Исследования показали, что SwiGLU обеспечивает заметное улучшение качества по сравнению с ReLU- и GELU-FFN при примерно тех же вычислительных затратах. Причины:

  • более гладкие градиенты — swish снижает резкие переходы в активации;
  • мягкое gating-поведение — ворота не просто «включают/выключают» признаки, а регулируют их интенсивность;
  • лучшее соотношение выразительности и параметров — качество растёт без увеличения FLOPs;
  • устойчивость при глубоких моделях — меньше деградации слоёв при увеличении глубины стека.

В результате SwiGLU используется в большинстве современных производительных LLM, включая модели с длинными контекстами и мультимодальные архитектуры.

Преимущества и ограничения

  • Плюс: улучшенная устойчивость FFN-блоков.
  • Плюс: плавное и эффективное gating-поведение.
  • Плюс: повышение качества без увеличения вычислительных затрат.
  • Плюс: хорошо сочетается с глубокими трансформерами.
  • Минус: немного более дорогостоящая активация по сравнению с ReLU.
  • Минус: может требовать аккуратной инициализации весов.
  • Минус: чувствительность к распределению входных признаков.
  • Минус: взаимодействие со scaling-факторами требует настройки.

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

  • GLU
  • GEGLU
  • Feed-forward network
  • Transformer block
  • Nonlinear activations
  • Gated attention
  • MoE-FFN

Категория термина

Архитектуры моделей