フィードフォワード層 ふぃーどふぉわーどそう
Feed-Forward LayerTransformerFFN全結合層活性化関数中間層
フィードフォワード層について教えて
簡単に言うとこんな感じ!
Transformerのアテンション層が「単語間の関係を把握する耳」なら、フィードフォワード層は「その情報をもとに深く考える脳みそ」だよ!アテンションの後に毎回挟まれて、情報を変換・精製する役割なんだ。
フィードフォワード層とは
フィードフォワード層(Feed-Forward Layer/FFN) とは、Transformerブロック内でアテンション層の直後に配置される全結合ニューラルネットワークです。各トークンに対して独立に(位置ごとに別々に)適用されるため、「Position-wise Feed-Forward Network」とも呼ばれます。
構造はシンプルで、2層の線形変換と活性化関数で構成されます。隠れ層の次元はアテンション層の埋め込み次元の通常4倍程度に拡張され(GPT-3なら4 × 12,288 = 49,152次元)、情報を一度広げてから圧縮することで複雑な特徴を学習します。
LLMのパラメータの約2/3はFFNに含まれると言われており、モデルの「知識の倉庫」的な役割を担うことが研究で示されています。
構造の詳細
入力ベクトル x (次元 d_model)
↓ 線形変換 W1 (d_model → 4 × d_model)
↓ 活性化関数(ReLU or GeLU or SwiGLU)
↓ 線形変換 W2 (4 × d_model → d_model)
出力ベクトル (次元 d_model)
| 活性化関数 | 特徴 | 採用モデル |
|---|---|---|
| ReLU | 負の値をゼロに、シンプル | 元のTransformer |
| GeLU | 滑らかなReLU、学習安定 | BERT、GPT-2 |
| SwiGLU | ゲート付きで高性能 | LLaMA、PaLM |
歴史と背景
- 2017年:元のTransformer論文でReLUを使ったFFNが提案
- 2020年:GeLU活性化がBERT/GPT系で広く普及
- 2021年:Googleがアテンション層の代替や変形を多数提案(「Are Transformers Effective for Time Series Forecasting?」など)
- 2022年以降:SwiGLUなどのゲート付き活性化関数が高性能モデルで採用
Mixture of Experts(MoE)との関係
大規模モデルでは、1つの大きなFFNを持つ代わりに複数の専門家FFN(エキスパート)を持ち、入力によって使うFFNを切り替えるMoEアーキテクチャが採用されることがあります。これにより計算コストを抑えながらパラメータ数を増やせます。
| 方式 | FFNの扱い | 代表モデル |
|---|---|---|
| Dense | 全トークンで同じFFN | GPT-3、LLaMA |
| MoE | トークンごとにFFNを選択 | Mixtral、GPT-4(推定) |
関連用語
- マルチヘッドアテンション — フィードフォワード層と交互に並ぶアテンション層
- エンコーダー / デコーダー — FFNが組み込まれるTransformerの構造
- Mixture of Experts — FFNを複数持つ拡張アーキテクチャ
- 量子化 — FFNの大量のパラメータを圧縮する技術