大規模言語モデル入門【Transformer:基礎理論A-2】

基礎理論

Transformerモデル構造の全体像:3つの主要コンポーネント

前回の記事で、言語モデルがN-gramからRNN、そしてTransformerへと進化した歴史を学びました。今回は、Transformerの具体的なモデル構造を詳しく解説します。

以前のブログでもTransformerについては言及しておりますので、こちらもご参考にしてみてください。

Transformerの全体像:ブロック構成

Transformerの基本的な構造は、エンコーダー と デコーダー という2種類の「ブロック」から成り立っています。これらのブロックを層状に積み重ねることで、より高度な言語処理が実現されます。

オリジナルTransformer vs 現代のGPT型モデル

種類目的構造
オリジナルTransformer機械翻訳エンコーダー + デコーダー翻訳タスク
GPT型(Decoder-only)テキスト生成デコーダーのみGPT-1〜4, ChatGPT

このブログの後続セクションでは、主に Decoder-only型(つまりGPT型)の構造を詳しく解説します。

Transformerの3つの主要コンポーネント

Transformerは、以下の3つの主要な部品から構成されています:

各コンポーネントの役割

1. Embedding層:「言葉を数字に翻訳する」

コンピュータは数字しか理解できないため、文字を数字に変換する必要があります。

入力:「私」 → ID: 1050 → ベクトル: [0.2, -0.5, 0.8, ...]
      「は」 → ID: 80   → ベクトル: [-0.1, 0.3, 0.2, ...]
      「学校」→ ID: 2450 → ベクトル: [0.5, 0.1, -0.3, ...]

2. Multi-Head Attention:「文脈に応じて重要な単語に注目する」

「学校へ行く」という文では「へ」という助詞の意味は「学校」と「行く」の関係から決まります。Attentionは「学校」と「行く」を繋ぐ関係性を自動的に発見します。

3. FFN:「知識を記憶する」

「学校」という単語を見た時、モデルは「学校 = 教育の場、複数の生徒がいる、時間割がある」というような知識を、層内の重みとして保持します。これが「モデルの知識」です。

Embeddingと位置情報の統合

Transformerがテキストを処理する最初のステップは、Embedding層 です。

ステップ1:文字の分割(トークン化)

生のテキストは、まずトークン化によって最小単位に分割されます:

入力テキスト:「今日の天気はいいですね」
       ↓
トークン化:「今日」「の」「天気」「は」「いい」「です」「ね」
       ↓
トークンID: [1001, 82, 1234, 80, 892, 456, 234]

💡 ポイント
Byte Pair Encoding (BPE) という標準的なアルゴリズムを用いて、高頻出する単語は1個のトークン、稀な単語は複数のトークンに分割します。

ステップ2:ワードエンベディング

各トークンIDを、学習可能な数値ベクトルに変換します。学習を通じて、意味的に似た単語は近い位置に配置されます:

単語ペア関係ベクトル距離
「学校」と「大学」どちらも教育機関近い
「猫」と「犬」どちらも動物近い
「赤」と「青」どちらも色近い

これが「単語の意味がベクトルに埋め込まれている」という意味です。

ステップ3:位置エンコーディング(Positional Encoding)

Transformerは各トークンを「同時に」処理するため、トークンの順序情報 をモデルに明示的に与える必要があります。

文:「私は学校へ行く」
     0  1  2  3  4

位置情報なし:
[ベクトル_「私」, ベクトル_「は」, ベクトル_「学校」, ...]
→ どの順で並んでいるか分からない!

位置エンコーディング追加後:
[ベクトル_「私」 + 位置_0, ベクトル_「は」 + 位置_1, ...]
→ 順序がモデルに伝わります。

このステップにより、Transformerは「何という単語か」と「どの位置にあるか」の両方の情報を同時に処理できるようになります。


Add & Norm:学習を安定させるテクニック

深いニューラルネットワークを学習させると、「勾配消失」や「学習の不安定化」といった問題が生じます。これを解決するために、Transformerでは2つの重要なテクニックが採用されています。

残差接続(Add: Residual Connection)

なぜ効果があるのか?

もし Attention がノイズだらけで役に立たなかったら、最終出力 ≈ y + x = (ノイズ) + x ≈ x(元のデータ)となります。

つまり、悪い時は「何もしない(恒等関数)」を容易に学習できます。これにより、モデルは「改善できない層」をスキップして、「改善できる層」に集中できるようになります。

レイヤー正規化(Norm: Layer Normalization)

各層から出力されるベクトル x = [x1, x2, x3, …] を以下の式で正規化します:

$$\text{正規化後} = \frac{x – \text{平均値}}{\sqrt{\text{分散} + \epsilon}}$$

これにより、各次元が-1〜1のスケールに正規化されます。

効果:

  • ニューロンの出力スケールが統一される
  • 学習率が安定し、収束が早くなる
  • 深いモデルでも安定して学習できる

Transformerブロックの層状積み重ね

Transformerは、上述の「Embedding → Attention → FFN → Add & Norm」というブロックを、何十層も積み重ねることで、より複雑な言語理解を実現します。

理解する内容
層1「「猫」という単語の意味を抽出」
層2「「猫が」という2語の関係を理解」
層3「「猫が好きだ」という文の意味を把握」
層4-6より抽象的な概念(話題、感情など)を理解
層7-12文脈全体の深い意味を理解

各層が段階的に、より高度で抽象的な理解を構築していきます。


まとめ

この記事では、Transformerの全体構造と3つの主要コンポーネントを解説しました:

コンポーネント役割
Embedding層単語をベクトルに変換 + 位置情報を追加
Multi-Head Attention全単語間の関係性を把握
FFN知識を記憶・蓄積
Add & Norm学習を安定化

次回は、Multi-Head Attentionの詳細なメカニズムを解説します。

� 参考文献

主要論文

  1. Vaswani, A., et al. (2017): “Attention Is All You Need”, NeurIPS 2017
  2. Dai, Z., Yang, Z., Yang, Y., et al. (2019): “Transformer-XL: Attentive Language Models Beyond a Fixed-Length Context”, ACL 2019
  3. Press, O., Smith, N. A., & Lewis, M. (2022): “Train Short, Test Long: Attention with Linear Biases Enables Input Length Extrapolation”, ICLR 2022

補足資料

  1. Ba, J. L., Kiros, J. R., & Hinton, G. E. (2016): “Layer Normalization”, NeurIPS 2016
  2. He, K., Zhang, X., Ren, S., & Sun, J. (2016): “Deep Residual Learning for Image Recognition”, CVPR 2016

�📚 シリーズ案内

この記事は「LLM事前学習シリーズ」の一部です。

コメント

タイトルとURLをコピーしました