Transformerアーキテクチャ

フィードフォワード層 ふぃーどふぉわーどそう

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全トークンで同じFFNGPT-3、LLaMA
MoEトークンごとにFFNを選択Mixtral、GPT-4(推定)

関連用語