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

基礎理論

言語モデルの本質と進化軌跡:N-gramからTransformerへ

スマートフォンのキーボードで「私は学校へ」と入力した時、次に出現しそうな単語を予測する機能が働きます。この「次に来そうな単語を予測する能力」こそが、言語モデル(Language Model) の本質です。

この記事では、言語モデルがどのように進化し、現在のChatGPTやGPT-4を支えるTransformerアーキテクチャに至ったのかを解説します。

言語モデルとは何か?

定義:確率で捉える言語

言語モデルは、**単語の系列(テキスト)の生起確率をモデル化したもの** です。数式で表すと:

$$P(x_1, x_2, \cdots, x_L) = \text{「単語列 } x_1, x_2, \cdots, x_L \text{ が出現する確率」}$$

この確率は、連鎖律(チェーンルール)により分解できます:

$$P(x_1, x_2, \cdots, x_L) = P(x_1) \cdot P(x_2|x_1) \cdot P(x_3|x_1, x_2) \cdots P(x_L|x_1, \cdots, x_{L-1})$$

つまり、「最初の単語の確率」× 「その後の各単語が前の情報から予測できる確率」の積で全体の確率が決まる、ということです。

実践:テキスト生成への道

この条件付き確率を活用することで、テキスト生成が実現します:

例1:決定的生成

  • 入力:「日本の首都は」
  • モデルの判定:$$P(\textrm{「東京」}|\textrm{「日本の首都は」}) = 0.95$$(最も高い確率)
  • 出力:「東京」

例2:確率的生成(サンプリング)

同じ入力「日本の首都は」に対して、確率分布に基づいてランダムにサンプリング:

候補確率
東京95%
京都3%
大阪2%

この確率分布から複数回サンプリングすることで、多様なテキストを生成できます。

デジタル時代以前の言語モデル:N-gramの限界

コンピュータが今ほど高性能でなかった時代、言語モデルはどのように実装されていたでしょうか?

N-gram言語モデルの登場

N-gramは、「直近の N-1 個の単語だけを使って次の単語の確率を推定する」という簡潔なアプローチです:

$$P(x_t | x_1, x_2, \cdots, x_{t-1}) \approx P(x_t | x_{t-n+1}, \cdots, x_{t-1})$$

具体例(3-gram の場合)

訓練データ:「私は毎日学校へ行く。私は毎日勉強する。」

学習結果:
- P(「行く」| 「毎日」, 「学校へ」) = 0.8
- P(「勉強」| 「毎日」, 「学校へ」) = 0.2

N-gramの2つの根本的問題

問題1:データスパースネス(データの疎性)

N-gramが長くなるほど、訓練データ内での出現頻度が急速に減少します:

N-gram出現回数
1-gram「学校」1000回
2-gram「へ行く」100回
3-gram「学校へ行く」5回
4-gram「学校へ行く」0回(見たことない!)

見たことのないパターンは確率が計算できず、モデルは新しい文章の理解に失敗します。

問題2:長距離の関係を理解できない

N-gramは「直近 N-1 個」の単語しか見ないため、遠く離れた単語との関係を全く把握できません:

例文:「私が学生の時に習った先生は、
        今も同じ学校で教えている。」
                        ↑ 
                  これが何を指すのか?
                  N-gramは遠くの「先生」を見られない

この2つの問題が、N-gramベースの言語モデルを実用化から遠ざけていました。

ニューラル言語モデルへの転換

データスパースネスと長距離依存性の問題を解決するため、コンピュータサイエンスは新たな道を探ります。その答が、ニューラルネットワーク を使った言語モデリングでした。

RNN(再帰型ニューラルネットワーク)の登場

RNNは、各時刻の状態を次の時刻に「隠れ状態」として引き継ぐ構造を持ちます:

入力:    「私」  →  「は」  →  「学校」 →  「へ」  →  「行く」
           ↓         ↓           ↓           ↓           ↓ 
隠れ状態:  h1    →   h2     →    h3     →    h4    →     h5
           ↓         ↓           ↓           ↓           ↓
出力:   P(「は」)  P(「学校」)   P(「へ」)   P(「行く」)...

RNNは、長い系列全体を処理して「文脈」を保持できるため、遠い単語との関係を理解できます。

RNNの致命的な問題:勾配消失と学習の遅さ

しかし、RNNは深刻な2つの問題を抱えていました:

問題1:勾配消失(Vanishing Gradient)

遠い過去の情報を学習する際、勾配が層を遡る過程で段々と0に近づいてしまいます。結果として、遠い過去の単語情報は学習に反映されません

問題2:学習の並列化が不可能

RNNは逐次的に処理するため、各タイムステップの計算が前のステップに依存します。最新のGPUでも各ステップを同時処理できないため、1000個のトークンを処理するのに最低1000ステップの計算時間が必要 でした。

Transformerの革命:「Attention Is All You Need」(2017年)

2017年、Google の研究チームが発表した論文 「Attention Is All You Need」 は、これまでの言語モデリングに革命をもたらしました。

Transformerの2つの根本的な革新

革新1:Attentionメカニズムによる長距離依存性の解決

Transformerは、全てのトークン間に直接的な接続を確立 します:

入力トークン: [「私」, 「は」, 「学校」, 「へ」, 「行く」]
                 ↓      ↓      ↓       ↓     ↓
                    ←→    ←→    ←→     ←→   ←→ (全ペアを直接つなぐ!)
                 ↓      ↓      ↓       ↓     ↓
出力:               文脈情報を含んだ新しいベクトル

💡 ポイント
任意の距離の単語間関係を1ステップで捉えられるため、勾配消失問題を解決し、理論上「無限に遠い関係」も学習可能になりました。

革新2:並列計算による学習の劇的な高速化

RNNと異なり、Transformerは 全トークンを同時に処理 できます:

方式1000トークン処理
RNN(順次処理)1000ステップ必須
Transformer(並列処理)1ステップで完了

結果として、GPU の並列計算能力をフルに活用でき、大規模データでの訓練時間が数十分の一に短縮 されました。

Transformerがもたらした大規模言語モデル時代

Transformerアーキテクチャの誕生により、LLM開発は急速に加速しました:

時期モデル名パラメータ数特徴
2017年Transformer (元論文)65Mアーキテクチャ提案
2018年BERT340M双方向Transformer
2018年GPT-1117M単方向Transformer(生成)
2019年GPT-21.5B大規模化の可能性を実証
2020年GPT-3175BFew-shot 学習の驚異的な能力
2023年GPT-41-1.8T (推定)高度な推論能力
2024年Gemini 2.5規模未公開マルチモーダル性能

このように、Transformerはわずか7年で、言語処理のパラダイム全体を塗り替えた のです。

まとめ

この記事では、言語モデルの本質から、N-gram、RNN、Transformerへの進化を解説しました。

技術長距離依存性並列計算課題
N-gram❌ 不可✅ 可能データスパースネス
RNN△ 限定的❌ 不可勾配消失、遅い
Transformer✅ 完全解決✅ 可能メモリ使用量

次回は、Transformerの具体的なモデル構造を詳しく解説します。

参考文献

主要論文

  1. Vaswani, A., et al. (2017): “Attention Is All You Need”, NeurIPS 2017
  2. Hochreiter, S., & Schmidhuber, J. (1997): “Long Short-Term Memory”, Neural Computation
  3. Bahdanau, D., Cho, K., & Bengio, Y. (2015): “Neural Machine Translation by Jointly Learning to Align and Translate”, ICLR 2015

補足資料

  1. Mikolov, T., et al. (2013): “Efficient Estimation of Word Representations in Vector Space”, ICLR 2013
  2. Radford, A., et al. (2019): “Language Models are Unsupervised Multitask Learners”

📚 シリーズ案内

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

コメント

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