Feed-forward network: проекционный блок трансформера

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

Feed-forward network (FFN)


Feed-forward network — двухслойный проекционный блок внутри трансформера, который преобразует скрытые признаки и усиливает нелинейность модели.

Определение

Feed-forward network (FFN) — это компонент трансформерного блока, выполняющий точечное преобразование признаков после attention-слоя. В классической архитектуре FFN представляет собой двухслойную нейронную сеть с нелинейностью, одинаковую для всех позиций последовательности. В отличие от attention, который моделирует связи между токенами, FFN работает независимо для каждого токена, расширяя представление и возвращая его в исходное пространство признаков.

FFN задаёт основную часть параметров трансформера и влияет на глубину, выразительность и способность модели извлекать сложные зависимости.

Как работает

FFN принимает на вход вектор скрытых признаков размера dmodel, преобразует его в более высокомерное пространство и затем возвращает в исходную размерность. Стандартная структура выглядит так:

  • линейная проекция вверх — расширение признаков до dff (обычно в 2–4 раза больше dmodel);
  • нелинейность — функции ReLU, GELU или SwiGLU в современных моделях;
  • линейная проекция вниз — возврат к исходной размерности dmodel;
  • нормализация и residual — FFN интегрируется в блок трансформера через residual-коннект.

Формула FFN для одного токена x:

FFN(x) = W₂ · f(W₁ · x + b₁) + b₂

Где f — нелинейная активация. Несмотря на простоту, FFN обрабатывает большую часть вычислений трансформера, поскольку применяется ко всем токенам независимо.

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

  • Все трансформерные архитектуры: LLM, мультимодальные модели, аудио- и видео-трансформеры.
  • Модели для кодогенерации и анализа больших текстов.
  • Системы, где требуется глубокая обработка признаков.
  • Модели с расширенными проекциями для long-context задач.
  • Гибридные архитектуры, где FFN сочетается с gating и экспертными блоками.

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

В больших языковых моделях FFN выполняет роль «внутреннего преобразователя», который усиливает и модифицирует признаки, полученные из attention-блока. Attention собирает информацию между токенами, а FFN — перерабатывает её внутри каждого токена, превращая сырые связи в полезные высокоуровневые представления.

В современных LLM FFN часто заменяют на вариации с gated-структурами (например, SwiGLU), которые улучшают устойчивость обучения и повышают качество без значительного роста параметров.

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

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

Вариации и усовершенствования FFN

Современные модели используют расширенные версии FFN, которые улучшают производительность или уменьшают затраты:

  • SwiGLU — gated-вариант FFN, применяемый в LLaMA и других современных LLM;
  • GEGLU — версия FFN с GLU-гейтом и улучшенной устойчивостью градиентов;
  • MoE-FFN — использование экспертов внутри FFN-блока для увеличения параметров без роста вычислений;
  • Parallel FFN — одновременное выполнение attention и FFN-проекций (архитектуры «parallel transformer»);
  • Grouped FFN — разбиение признаков на каналы для ускорения вычислений.

В таких вариациях FFN становится адаптивным и более выразительным, сохраняя структуру базовой архитектуры.

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

  • Плюс: даёт модели нелинейность и способность к сложным преобразованиям.
  • Плюс: содержит большую часть параметров трансформера.
  • Плюс: работает независимо по позициям и хорошо масштабируется.
  • Плюс: легко комбинируется с gating и MoE-подходами.
  • Минус: увеличивает количество вычислений при длинных последовательностях.
  • Минус: чувствителен к выбору нелинейности и ширины dff.
  • Минус: без gating может создавать избыточные проекции.
  • Минус: увеличивает VRAM при больших batch size.

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

  • Self-attention
  • Transformer block
  • SwiGLU
  • MoE
  • Residual connections
  • Layer normalization
  • Gated attention

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

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