因果的Attentionマスクと自己回帰型生成:GPTの生成原理
前回は、FFN と活性化関数の役割を学びました。今回は、GPT 型モデルがどの順番で単語を生成しているのかを確認しながら、その制約を支える自己回帰型生成 と Causal Attention Mask を解説します。ここでのポイントは、モデルが未来の情報を見ずに、過去の文脈だけで次の単語を決めていることです。
自己回帰型生成:「未来の情報を見ない」制約

GPT 型のモデルは、テキストを 1トークンずつ順番に生成 します(自己回帰型)。つまり、次の単語は、その時点までに出た単語だけを見て決めます。

この生成方法では、各ステップで未来のトークンはまだ存在しないため、参照できません。学習時にも同じ条件を保たないと、推論時とのずれが大きくなります。
学習時の課題

訓練時には、正解の文全体があらかじめ与えられています。ここが、生成時との大きな違いです。
正解文:「私は学校へ行く」
入力ベクトル:[「私」, 「は」, 「学校」, 「へ」, 「行く」]
⚠️ 問題
もし制約がなければ、「へ」という単語を予測する時に、未来の「行く」という情報も参照でき、『カンニング』してしまいます!これは推論時の挙動と矛盾し、モデルが実際のテキスト生成で失敗します。
Causal Attention Mask:マスキングで未来を隠す
このずれを避けるため、訓練時に Causal(因果的)Attention Mask を適用します。未来を見ないように制約をかけることで、学習と推論の条件を揃えます。

マスキングの仕組み

Attention スコアを計算したあと、Softmax を適用する直前に、未来のトークンに対応する要素へ『-∞(マイナス無限大)』を加えます。これにより、未来側の重みは最終的に 0 になります。
例:3番目のトークン「学校」のAttention計算時
| ステップ | 位置0 | 位置1 | 位置2 | 位置3 | 位置4 |
|---|---|---|---|---|---|
| 通常のスコア | 0.5 | 0.3 | 0.8 | 0.2 | 0.1 |
| マスク適用後 | 0.5 | 0.3 | 0.8 | -∞ | -∞ |
| Softmax適用 | 0.4 | 0.25 | 0.35 | 0 | 0 |
結果として、各トークンは「自分自身と過去のトークンのみ」に注意を払い、未来の情報には一切アクセスできなくなります。生成時に本当に使える情報だけを見せることで、学習の筋を通しています。
マスク行列の可視化

下三角行列の形になり、各位置は自分より前の位置のみを参照できます。図で見ると単純ですが、ここが自己回帰生成を成立させる重要な制約です。
並列学習の実現
Causal Mask のもう1つの大きな利点は、全トークンの損失を同時に計算できることです。未来を見ない制約を保ちながら、学習処理自体は並列化できます。
RNN vs Transformer の学習方式

| 方式 | 処理 | ステップ数 |
|---|---|---|
| RNN(順次学習) | 1トークンずつ順番に処理 | T ステップ必須 |
| Transformer(並列学習) | 全位置で同時に予測 | 1 ステップで完了 |
RNN(順次学習):

Transformer(並列学習):

全ての位置で同時に次トークン予測 → 全損失を並列計算
(T 個のトークンでも 1 ステップで計算完了!)
Causal Mask により、全トークンの損失(Loss)を同時に計算できます。RNN のように 1 ステップずつ順番に処理する必要がないため、学習効率が大きく変わります。
💡 ポイント
この並列性により、Transformerは GPU/TPU の並列計算能力を最大限に活用 でき、学習時間が劇的に短縮されました。
なぜ「因果的」と呼ぶのか

「Causal(因果的)」という名前は、因果関係 の概念に由来します。つまり、過去が未来に影響し、未来が過去に影響しないという時間の向きをモデルにも持ち込んでいる、ということです。
- 原因(過去)→ 結果(未来) という時間の流れを尊重
- 未来の情報が過去に影響を与えることはない(因果律)
- テキスト生成でも、前の単語が後の単語に影響を与える
テキスト生成において時間の流れと因果律を数学的に保つためのマスクなので、「因果的 Attention マスク」と呼ばれます。名前だけを見ると抽象的ですが、やっていることは「未来を見せない」という単純で重要な制約です。
まとめ
この記事では、自己回帰型生成と Causal Attention Mask を解説しました。ポイントは、GPT 型モデルが未来を見ない制約を守りながら、学習だけは並列で進められるように設計されていることです。

| 項目 | 内容 |
|---|---|
| 自己回帰型生成 | 1トークンずつ順番に生成 |
| 学習時の課題 | 未来の情報でカンニングしてしまう |
| Causal Mask | 未来のトークンを-∞でマスク |
| 効果 | 過去のみ参照 + 並列学習が可能 |
次回は、基礎用語集と確認問題でこれまでの内容を復習します。ここまでの Transformer の流れを、用語レベルで整理し直していきます。
📖 参考文献
主要論文
- Holtzman, A., Butz, D., Cohan, A., Fine, S., & Turian, J. (2020): “The Curious Case of Neural Text Degeneration”, ICLR 2020
- Devlin, J., Chang, M. W., Lee, K., & Toutanova, K. (2019): “BERT: Pre-training of Deep Bidirectional Transformers”, NAACL 2019
補足資料
3. Sennrich, R., Haddow, B., & Birch, A. (2016): “Neural Machine Translation of Rare Words with Subword Units”, ACL 2016
📚 シリーズ案内
この記事は「LLM事前学習シリーズ」の一部です。
次に読む
- 【Transformer:基礎理論A-6】: 基礎用語集と確認問題 – これまでの内容を復習


コメント