大規模言語モデルの系譜と仕組み — Transformer から ChatGPT まで、LLM の全体像を図解で理解する
Word2Vec から GPT-4 に至る LLM の進化の系譜と、Transformer・自己注意機構・テキスト生成・RLHF の仕組みをインタラクティブな図解で徹底解説する。
はじめに
ChatGPT の登場以来、大規模言語モデル(LLM: Large Language Model)は社会を一変させた。コードを書き、論文を要約し、複雑な質問に答える——これらはすべて「次のトークンを予測する」という驚くほどシンプルな原理から生まれている。
この記事では、LLM の全体像を以下の 6 つの柱で解説する。
- 歴史と系譜 — Word2Vec から GPT-4 までの進化
- トークナイゼーション — テキストを数値に変換する仕組み
- Transformer アーキテクチャ — LLM の心臓部
- 自己注意機構 — Transformer の核心アルゴリズム
- テキスト生成 — 温度・top-k サンプリングの仕組み
- 学習パイプライン — 事前学習から RLHF まで
LLM の系譜 — 10 年の進化
言語モデルの進化を振り返ろう。
Word2Vec 時代(2013)
Mikolov et al. (2013) が提案した Word2Vec は、単語を固定次元のベクトル(埋め込み)に変換する手法だ。有名な例として king - man + woman ≈ queen という関係を捉えることができた。しかし、Word2Vec は文脈を考慮しない静的な埋め込みだった。
Transformer の登場(2017)
Vaswani et al. (2017) の論文 "Attention Is All You Need" が全てを変えた。RNN の逐次処理を自己注意機構(Self-Attention)で置き換え、並列計算を可能にした。この革新が現在の LLM の基盤となっている。
事前学習時代(2018–)
Transformer をベースに 3 つのアーキテクチャファミリーが発展した。
エンコーダ系(BERT 系)
BERT(2018)は、マスクされたトークンを予測するマスク言語モデル(MLM)で事前学習される。双方向の文脈を捉えるため、分類・固有表現抽出・類似度計算などの理解タスクに強い。
エンコーダ-デコーダ系(T5 系)
T5(2019)は全てのタスクを「テキスト→テキスト」に統一する。翻訳、要約、質問応答すべてが同じフォーマットで処理できる。
デコーダ系(GPT 系)
GPT シリーズは自己回帰型言語モデルで、左から右へ 1 トークンずつ生成する。パラメータ数の増加とともに能力が飛躍的に向上し、GPT-3(1750 億パラメータ)で few-shot 学習が実証された。現在の ChatGPT、Claude、Gemini はすべてこの系統の発展形だ。
スケーリング則
Kaplan et al. (2020) は、言語モデルの損失がパラメータ数 、データ量 、計算量 のべき乗則に従うことを発見した。
さらに Hoffmann et al. (2022) の Chinchilla 論文 は、パラメータ数とトークン数を均等にスケールさせるのが最適だと示した。例えば 700 億パラメータのモデルには約 1.4 兆トークンの学習データが必要だ。
トークナイゼーション — テキストを数値に
LLM はテキストを直接理解するのではなく、トークンと呼ばれる数値系列として処理する。
BPE(Byte Pair Encoding)
現代の LLM で最も広く使われるトークナイゼーション手法が BPE(Sennrich et al., 2016)だ。
アルゴリズム:
- テキストを文字(またはバイト)単位に分割
- コーパス全体で最も頻繁に隣接するペアを見つける
- そのペアを 1 つの新しいトークンとしてマージ
- 語彙サイズが目標に達するまで繰り返す
# BPE の簡略化された疑似コード
vocab = set(all_characters)
for i in range(num_merges):
# 最頻ペアを見つける
pair = most_frequent_pair(corpus)
# マージして新トークンに
new_token = pair[0] + pair[1]
vocab.add(new_token)
corpus = merge_in_corpus(corpus, pair, new_token)GPT-4 は約 10 万トークン の語彙を持つ。日本語のように形態素が複雑な言語では、1 文字が 1 トークン以上になることも多い。
なぜサブワードか?
- 未知語問題の解消: 見たことない単語もサブワードの組み合わせで表現可能
- 語彙サイズの制御: 文字レベル(語彙小、系列長大)と単語レベル(語彙大、OOV 問題)の中間
- 多言語対応: 同じ BPE トークナイザで多言語テキストを処理可能
Transformer アーキテクチャ
LLM の心臓部である Transformer(デコーダ型)の構造を見てみよう。
Transformer ブロックは以下の 5 つのコンポーネントで構成される。それぞれを詳しく見ていこう。
1. 入力埋め込み + 位置エンコーディング
トークン ID を高次元ベクトル(例: 4096 次元)に変換する。Transformer は RNN と異なり入力を並列に処理するため、トークンの順序情報を位置エンコーディングで明示的に注入する必要がある。
正弦波位置エンコーディング(オリジナル)
Vaswani et al. (2017) の Transformer は正弦波ベースの位置エンコーディングを使用した:
以下のヒートマップで正弦波 PE のパターンを確認しよう。低い次元(左側)は高周波、高い次元(右側)は低周波の波を形成する。
なぜ正弦波か? 任意の固定オフセット に対して が の線形関数として表現できるため、モデルが相対位置を学習しやすい。
RoPE(回転位置埋め込み)
現代の LLM(LLaMA, Gemma, Mistral など)では RoPE(Rotary Position Embedding)が主流だ。RoPE はベクトルの次元をペアにして、位置に応じた角度で 2D 回転を適用する。
RoPE の核心的な性質:2 つのトークンの内積 が相対位置 のみに依存する。これにより絶対位置を明示的にエンコードせずとも、相対位置関係を自然に捉えられる。
さらに RoPE は位置外挿(学習時より長い系列への対応)が容易で、NTK-aware スケーリングや YaRN によるコンテキスト長拡張の基盤にもなっている。
2. マルチヘッド自己注意機構
Transformer の核心。次のセクションで詳しく解説するが、ここでは全体の中での位置づけを確認する。
単一の注意ヘッドは 1 種類の関係性パターンしか捉えられない。マルチヘッドにすることで、異なるヘッドが異なるパターン(主語-動詞の一致、形容詞-名詞の修飾、共参照など)を並列に学習する。
ここで 。GPT-3 は 96 ヘッド、LLaMA 2 70B は 64 ヘッドを使用している。
MQA / GQA — 推論効率の最適化
標準のマルチヘッド注意(MHA)では各ヘッドが独立した K, V 射影を持つ。推論時の KV キャッシュが巨大になる問題を解決するために:
| 方式 | K,V ヘッド数 | モデル例 | 特徴 |
|---|---|---|---|
| MHA | = Q ヘッド数 | GPT-3 | 最高品質、メモリ大 |
| MQA | 1 | PaLM, StarCoder | K,V 全共有、推論最速 |
| GQA | Q の 1/g | LLaMA 2, Mistral | 品質と効率のバランス |
GQA(Grouped-Query Attention)は Q ヘッドをいくつかのグループに分け、各グループで K,V を共有する。LLaMA 2 70B は GQA を採用し、MHA とほぼ同等の品質で推論速度を大幅に改善した。
3. 残差接続 & 層正規化
各サブ層(自己注意と FFN)の出力に入力を加算(残差接続)し、正規化を適用する。
なぜ残差接続が不可欠か
残差接続がないと、逆伝播の勾配は 個の層を通過する間に指数的に減衰(または爆発)する。残差接続は勾配のショートカットパスを提供し、深い層にも直接勾配が届く。
これにより 100 層以上のネットワーク(GPT-3 は 96 層、LLaMA 2 70B は 80 層)の学習が可能になる。
Post-LN vs Pre-LN
| Post-LN (オリジナル) | Pre-LN (現代) | |
|---|---|---|
| 正規化の位置 | サブ層の後 | サブ層の前 |
| 正規化手法 | LayerNorm | LayerNorm (GPT-3) → RMSNorm (LLaMA 以降) |
| 学習安定性 | ウォームアップが必須 | 安定。大規模モデルでも収束しやすい |
| 採用モデル | 元の Transformer, BERT | GPT-3, LLaMA, Mistral |
RMSNorm(Root Mean Square Layer Normalization)は LayerNorm の簡略版で、平均を引く操作を省略する:
計算量が少なく、実験的に LayerNorm と同等の性能を示すことから、LLaMA 以降のモデルで標準的に使用されている。
4. フィードフォワードネットワーク(FFN)
各トークンに独立に適用される全結合ネットワーク。注意機構が「トークン間の関係」を捉えるのに対し、FFN は「各トークンの特徴変換」を行う。FFN のパラメータは Transformer 全体の約 2/3 を占める巨大な"知識の貯蔵庫"だ。
標準 FFN
オリジナルの Transformer(Vaswani et al., 2017)は ReLU を使用し、GPT-2 以降は GELU に置き換えられた:
中間層の次元 は通常 (例: なら )。
SwiGLU — 現代の標準
Shazeer (2020) が提案した SwiGLU は Gated Linear Unit にSwish 活性化を組み合わせた手法で、LLaMA, PaLM, Gemma などで採用されている。
なぜ SwiGLU が優れるのか:
- ゲーティング機構: がゲートとして機能し、情報の選択的な通過を制御する
- Swish 活性化: は ReLU と違い滑らかで、負の値も少量通すため勾配の流れが良い
- SwiGLU は 3 つの行列()を使うため、パラメータ数を一定に保つよう に設定される(標準 FFN の と異なる)
5. 最終出力層
最後のトランスフォーマー層の出力に RMSNorm を適用し、線形変換(Unembedding)で語彙サイズ の次元に射影する。softmax で確率分布に変換し、次トークンを予測する。
多くの LLM では埋め込み行列 と出力層の重み を重み共有(weight tying)する。 とすることで、パラメータ数を 分削減し、入出力の意味空間を一致させる。
デコーダの因果マスク
GPT のようなデコーダ型モデルでは、因果マスク(causal mask)を使って未来のトークンへの注意を遮断する。位置 のトークンは位置 のトークンにのみ注意できる。
実装上はスコア行列の上三角部分を に設定し、softmax 後にゼロになるようにする。これにより、自己回帰生成(左から右に 1 トークンずつ)と整合する。
Transformer ブロック全体の流れ
ここまでの各コンポーネントが実際にどう連携するか、1 つの Transformer ブロックのデータフローをステップバイステップで追跡しよう。
Transformer ブロック順伝播
"I love cats" のデータが1つの Transformer ブロックをどう通過するか追跡しましょう。
| I | 0.82 | −0.15 | 0.44 | 0.91 |
| love | 0.33 | 0.78 | −0.22 | 0.56 |
| cats | 0.61 | 0.42 | 0.73 | −0.08 |
自己注意機構 — Transformer の核心
自己注意機構(Self-Attention)は、各トークンが他の全トークンとの関連度を動的に計算し、文脈に応じた表現を作り出す仕組みだ。
数式
- (Query): 各トークンが「何を探しているか」を表すベクトル
- (Key): 各トークンが「何を持っているか(どんな情報で自分を検索してほしいか)」を表すベクトル
- (Value): 各トークンが「実際に渡す情報」を表すベクトル
- : スケーリング因子。内積が大きくなりすぎて softmax が飽和するのを防ぐ
インタラクティブデモ
自己注意機構(Self-Attention)
"The cat sat" に対する自己注意の計算過程を見てみましょう。
| The | 1.0 | 0.2 | 0.5 | 0.8 |
| cat | 0.3 | 0.9 | 0.1 | 0.6 |
| sat | 0.7 | 0.4 | 0.8 | 0.2 |
なぜ自己注意が革新的なのか
- 長距離依存: RNN では遠いトークンの情報が減衰するが、自己注意は全トークンに直接アクセスできる
- 並列計算: RNN は逐次処理だが、自己注意は行列演算なので GPU で高速に並列計算できる
- 解釈可能性: 注意重みを可視化することで、モデルが「どこに注目しているか」を解析できる
計算量の課題
自己注意の計算量は系列長 に対して であり、長い文脈では問題になる。これに対する解決策が活発に研究されている。
| 手法 | 計算量 | 概要 |
|---|---|---|
| 通常の注意 | 全トークン対を計算 | |
| Flash Attention | (メモリ ) | IO 効率を最適化、HBM アクセスを削減 |
| Multi-Query Attention | K,V のヘッドを共有し推論を高速化 | |
| Grouped-Query Attention | MQA と MHA の中間。LLaMA 2 以降で採用 | |
| Ring Attention | 複数デバイスでコンテキスト長を並列分割 |
テキスト生成 — 次トークン予測の仕組み
LLM の推論はシンプルだ。コンテキスト(入力トークン列)を与えると、次に来るトークンの確率分布を出力する。この確率分布からトークンをサンプリングし、それをコンテキストに追加して繰り返す——これが自己回帰生成だ。
生成戦略
Greedy decoding: 常に最高確率のトークンを選ぶ。決定的だが単調な出力になりがち。
温度スケーリング: ロジットを温度 で割ってから softmax を適用する。
- : 分布が鋭くなる → より決定的(事実を述べるタスク向き)
- : 分布がなだらかになる → より多様・創造的(創作向き)
- : greedy decoding に収束
Top-k サンプリング: 確率上位 個のトークンだけを残し、残りをゼロにして再正規化する。
Top-p (Nucleus) サンプリング: 確率の累積和が (例: 0.95)を超えるまでのトークンだけを残す。動的に候補数が変わるため、top-k より柔軟。
インタラクティブデモ
テキスト生成デモ
LLMが温度とtop-kサンプリングで1トークンずつテキストを生成する過程を見てみましょう。
学習パイプライン — 生のモデルから対話 AI へ
ステージ 1: 事前学習(Pre-training)
目的: 言語の一般的な知識を獲得する
数兆トークンの大規模テキストコーパス(Web テキスト、書籍、コード)から、次トークン予測タスクを反復学習する。
この段階のモデルは文の続きを生成できるが、「質問に答える」「指示に従う」といった振る舞いはできない。
ステージ 2: 教師あり微調整(SFT)
目的: 指示に従うようにする
高品質な(指示, 応答)ペアのデータセット(約 10 万件)で微調整する。これにより、モデルが「ユーザーの質問に対して回答する」というフォーマットを学習する。
[指示] 日本の首都はどこですか?
[応答] 日本の首都は東京です。ステージ 3: RLHF(人間のフィードバックによる強化学習)
目的: 人間の選好に合わせる
SFT だけでは、事実に基づかない回答や有害な出力を生成することがある。RLHF はこれを改善する。
- 報酬モデルの学習: 人間のアノテータが複数の回答をランキング → 報酬モデルを学習
- PPO(近接方策最適化): 報酬モデルのスコアを最大化するようにポリシー(LLM)を更新。ただし元のモデルから乖離しすぎないよう KL ペナルティを加える
DPO(Direct Preference Optimization) は RLHF を簡素化した手法で、報酬モデルを明示的に学習せず、選好データから直接ポリシーを最適化する。LLaMA 2 自体は PPO ベースの RLHF を使用したが、その後 Zephyr、LLaMA 3 などのオープンモデルで DPO が広く採用されている。
現代 LLM の主要テクニック
KV キャッシュ
自己回帰生成では、新しいトークンを生成するたびに全トークンの K, V を再計算するのは無駄だ。以前のステップで計算した K, V をキャッシュして再利用する仕組みが KV キャッシュ。推論速度を大幅に向上させるが、メモリ消費が系列長に比例して増加する。
量子化
LLM のパラメータを 32/16 ビット浮動小数点から 4/8 ビット整数 に変換し、メモリと計算コストを削減する。GPTQ や AWQ などの手法により、精度をほぼ維持したまま 70B モデルを単一 GPU で動作可能にする。
MoE(Mixture of Experts)
Mixtral に代表される手法。FFN 層を複数の「エキスパート」に分割し、各トークンに対してルーターが少数(例: 8 個中 2 個)のエキスパートを選択する。全パラメータ数は大きいが、推論時に活性化されるパラメータは少ないため、効率的に大規模化できる。
コンテキスト長の拡張
初期の Transformer はコンテキスト長 512 トークン程度だったが、現在は 100 万トークン以上を処理できるモデルも存在する。RoPE の周波数スケーリング、YaRN、Ring Attention などの手法が使われている。
まとめ
LLM の核心技術を 6 つの柱で見てきた。
- 歴史: Word2Vec → Transformer → BERT/GPT → スケーリング則による大規模化
- トークナイゼーション: BPE によるサブワード分割で任意のテキストを数値系列に
- Transformer: 自己注意 + FFN + 残差接続を N 層積み重ねたアーキテクチャ
- 自己注意: で全トークン間の関連度を動的計算
- テキスト生成: 温度・Top-k・Top-p サンプリングによる確率的な自己回帰生成
- 学習パイプライン: 事前学習 → SFT → RLHF/DPO で「次トークン予測器」を「対話 AI」に変換
「次のトークンを予測する」という一見単純な ── しかし十分にスケールさせると驚くべき能力を発揮する ── 原理が、現代の AI を支えている。
参考文献
- A. Vaswani et al. Attention Is All You Need. NeurIPS 2017.
- J. Devlin et al. BERT: Pre-training of Deep Bidirectional Transformers. NAACL 2019.
- T. Brown et al. Language Models are Few-Shot Learners. NeurIPS 2020 (GPT-3).
- J. Kaplan et al. Scaling Laws for Neural Language Models. 2020.
- J. Hoffmann et al. Training Compute-Optimal Large Language Models. NeurIPS 2022 (Chinchilla).
- L. Ouyang et al. Training language models to follow instructions with human feedback. NeurIPS 2022 (InstructGPT / RLHF).
- R. Rafailov et al. Direct Preference Optimization. NeurIPS 2023.