ML Fundamentals

feedforward layer

Компонент трансформера, применяющий два линейных преобразования с нелинейностью к каждому токену.

Что такое feedforward layer

Feedforward layer (FFN, MLP-блок) — второй основной компонент каждого слоя трансформера (после attention). Применяет одно и то же нелинейное преобразование независимо к каждому токену:

FFN(x) = W₂ × activation(W₁ × x)

Или в варианте SwiGLU (Llama):

FFN(x) = W_down × (SiLU(W_gate × x) ⊗ (W_up × x))

FFN содержит большинство параметров модели: в Llama 3 8B на 32 слоя с FFN приходится ~60% параметров.

Роль FFN в трансформере

Если attention — «коммуникация» между токенами (информация от одного к другому), то FFN — «вычисления» на уровне отдельного токена. Исследования показывают, что FFN хранят «факты»: при редактировании знаний модели часто обновляют именно веса FFN.

Размеры FFN

Модель d_model d_ffn Множитель
GPT-2 768 3072
Llama 3 8B 4096 14336 3.5× (SwiGLU)
Llama 3 70B 8192 28672 3.5× (SwiGLU)

FFN и MoE

В MoE-архитектурах FFN заменяется на набор «экспертов» (expert FFN), из которых активируется только часть для каждого токена. Это позволяет масштабировать параметры без пропорционального роста вычислений.

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

Готовы запустить GPU-задачу?

Запустить GPU-сервер