仕組みと構造 — エンジニア視点
テキストがトークン化され、ベクトル化され、Transformerで処理されて確率分布になり、サンプリングで文章になる。LLMの推論パイプライン全体を順に追う。
本章では、言語モデル(LLM)を主な題材に、入力が処理され出力が生成されるまでのパイプラインを順に追います。全体像は 「テキスト → トークン → ベクトル → Transformerによる変換 → 次トークンの確率分布 → サンプリング」 という流れです。
このパイプラインは「正しい答え」ではなく「次に来そうな単語の確率分布」を出すだけなので、最終出力が事実と一致するかどうかは原理的に保証されません。これが 第9章 ハルシネーション の構造的な根っこになります。
トークン化(Tokenization)
モデルは文字や単語をそのまま扱いません。まずテキストを トークン と呼ばれる小さな単位に分割します。多くのモデルは BPE(Byte Pair Encoding) とその派生 WordPiece、別系統の Unigram(Kudo 2018)、これらを多言語対応に拡張する SentencePiece(Kudo & Richardson 2018)のいずれかを用い、頻出する文字列を一つのトークンにまとめます。結果として、よくある単語は1トークン、珍しい単語や日本語の一部は複数トークンに分かれます。
トークン数は コスト・速度・コンテキスト上限 に直結します。英語に比べ日本語は同じ意味でもトークン数が増えやすい傾向があり、API利用時の料金や入力可能量に影響する点は実務上重要です。
# 「ChatGPTは便利だ」が例えば次のように分割される(モデルにより異なる)
["Chat", "G", "PT", "は", "便", "利", "だ"]
↓ 各トークンに整数IDが割り当てられる
[13564, 38, 5868, ...]
埋め込み(Embedding)
整数IDのままでは意味の計算ができないため、各トークンIDを高次元の ベクトル(埋め込み) に変換します。
意味を「位置」で表す
このベクトル空間では、意味的に近い語が近い位置に配置される ように学習されます。たとえば「王」「女王」「王子」のような語は、ベクトル空間内で互いに近い場所に集まります。古典的な例として、Word2Vec 等の研究で示された次の関係が知られています。
ベクトル(王) - ベクトル(男) + ベクトル(女) ≈ ベクトル(女王)
つまり、「性別」「役職」「時制」などの抽象的な属性が、ベクトル空間の方向として表現される わけです。意味そのものを座標として扱えるようになる、というのが埋め込みの核心です。
次元数の感覚
実用モデルの埋め込みは数百〜数千次元です(例:GPT-3(175B)で 12,288 次元、BERT-base で 768 次元、BERT-large で 1024 次元。後継モデルの次元数は非公開)。人間には可視化できませんが、高次元であるほど細かい意味の差を表現できる 一方、計算コストとメモリも増えます。
位置エンコーディング — 語順を伝える
Transformer は元々、入力されたトークンの 「順番」を区別しません(全トークンが並列に処理される)。「猫が犬を追いかけた」と「犬が猫を追いかけた」の区別ができないと困るので、位置エンコーディング(Positional Encoding) を併用します。
位置エンコーディングの実装には複数の方式があります:
- 絶対位置エンコーディング:Vaswani 2017 の原論文で提案された sin/cos 関数ベース
- 学習可能位置埋め込み:BERT、GPT 系で採用
- 相対位置エンコーディング:T5、近年のモデル
- RoPE(Rotary Position Embedding):LLaMA、最新の主要モデルで採用、長文対応に強い
sin/cos 方式は「位置を波の位相として直接ベクトルに足す」素朴な方法で、訓練時より長い系列に外挿しづらい弱点があります。学習可能位置埋め込みは精度は高いが、訓練時の最大長を超えるとほぼ機能しません。
RoPE(回転位置埋め込み) は Q/K ベクトルそのものを「位置に応じた角度で回転させる」ことで相対位置を表現します。回転で表すため、訓練時の長さを超えても角度を延長するだけで対応でき、公開モデル(Llama、Mistral、Qwen 等)の長文化は RoPE 系の改良(YaRN、NTK スケーリング等)が支えています。Claude や Gemini の数100万トークン窓も同系統の技術を用いていると 推測される が、両社とも位置エンコーディング方式を 公式には未公表 です。
近年のモデルでコンテキストウィンドウが 1M トークン級まで伸びたのは、位置エンコーディング方式の進化が大きく寄与しています(コンテキストウィンドウ節 も参照)。
なぜ埋め込みが重要か
- 検索・分類:文章を埋め込みに変換し、ベクトル類似度で意味的に近い文書を探す。これが RAG(第5章 5.5節)の根幹
- 翻訳:言語をまたいで意味を保ったベクトルを作れば、翻訳の精度が上がる
- クラスタリング:似た意味のテキストをまとめてグルーピング
埋め込みは「トークンを数値化する単なる前処理」ではなく、現代の生成AI全体の意味処理の基盤 です。
Transformerとアテンション
現代の生成AIの中核が Transformer 12 です。その心臓部が 自己注意機構(Self-Attention) で、文中の各トークンが「他のどのトークンに注目すべきか」を動的に計算します。これにより、離れた位置にある語どうしの関係(長距離依存)を捉えられます。
アテンションは各トークンから三つのベクトル—Query(問い)・Key(鍵)・Value(値)—を作り、QueryとKeyの内積で「関連の強さ」を測り、その重みでValueを合成します。複数の観点から同時に注目する マルチヘッド・アテンション により、構文・意味など異なる関係を並列に学習します。
Q/K/V は「図書館の検索」になぞらえると掴みやすい例えです。Query はあなたの検索質問、Key は各本のタイトル・索引、Value は本の中身です。Query と各 Key の類似度(内積)を計算し、関連度が高いほど大きな重みを与えて Value を加重合成する—これがアテンションの計算手順です。「√dₖ で割る」のは、次元数が大きいと内積の値が大きくなりすぎて softmax が極端な分布になるのを防ぐスケーリングです。マルチヘッド・アテンションは、この一連の操作を複数組(例:12〜96ヘッド)並列に走らせ、ヘッドごとに「構文関係」「主述関係」「指示語の解決」など別々の観点を学習させる仕組みです。
Attention(Q, K, V) = softmax( QKT / √dk ) · V
生成系のLLMの多くは デコーダのみ(decoder-only) の構成を採り、未来のトークンを見ないよう 因果マスク(causal mask) をかけます。これにより「左から右へ、次の1トークンを予測する」自己回帰生成が成立します。
3つのアーキテクチャ・バリアント
Transformer は当初「エンコーダ + デコーダ」の構成で発表されましたが、その後 3つの方向に分化 しました。
| 種別 | 構造 | 因果マスク | 主な用途 | 代表モデル |
|---|---|---|---|---|
| エンコーダのみ | エンコーダ層を積む | なし(双方向) | 文章理解・分類・埋め込み | BERT15 、RoBERTa、DeBERTa |
| デコーダのみ | デコーダ層を積む | あり(左→右) | テキスト生成 | GPT 系、Claude、Gemini、Llama |
| エンコーダ-デコーダ | 両方を持つ | デコーダのみあり | 翻訳・要約 | T5、BART、Flan-T5 |
2020年以降の生成AIブームは、デコーダのみ モデルが圧倒的主流です。事前学習の「次トークン予測」がそのまま生成タスクと一致するため、シンプルでスケールしやすい構造です。
計算量とスケーリング
自己注意機構の計算量は、入力長 N に対して O(N²) で増加します。1万トークン入れると計算量はおよそ1億操作。これがコンテキストウィンドウを伸ばす最大の障壁でした。
近年は、この計算量を実質的に減らす技術が複数登場しています:
- FlashAttention27 (Tri Dao et al. 2022):IOを意識した ブロック演算で GPU メモリアクセスを劇的に削減。BERT-large で 15%、GPT-2 で 3 倍の高速化を達成
- Sparse Attention:「全員ではなく近所と一部の代表だけに注目する」近似(Longformer, BigBird 等)
- Linear Attention / Mamba:softmax を別の関数で近似することで N×N の行列計算を回避。Mamba は Transformer とは別系統の「状態空間モデル(SSM)」で、過去の文脈を固定長の状態に圧縮し続けることで O(N) の線形時間で長文を処理。長文・高速推論用途で注目されているが、2026年時点では主要対話モデルは依然 Transformer 主流
出典:Tri Dao et al. 2022「FlashAttention」arXiv:2205.14135
スケーリング則(Scaling Laws) — なぜ「大きくすれば賢くなる」のか
OpenAI の Kaplan et al. (2020)25 は、モデルの性能(損失)が パラメータ数・データ量・計算量 に対して滑らかな冪乗則(power law、対数軸で直線になる関係)で改善することを示しました。これがGPT-3以降の「とにかく巨大化」路線の理論的根拠です。
一方、DeepMind の Hoffmann et al. (2022)26 (通称 Chinchilla 論文)は「Kaplan の推奨はモデルが大きすぎ・データが少なすぎる」と再分析。パラメータ数とトークン数を概ね1:20の比率で揃えるのが計算予算に対して最適 という新しい定式を提示しました(70Bパラメータなら約1.4Tトークン)。
以降の主要モデル(Llama、Mistral、Claude 等)は Chinchilla 比率を概ね踏襲し、近年は推論コストを重視して「データを過剰に与えてパラメータを抑える」設計(Llama 3 系の15Tトークン学習等)も主流です。
次のトークンを選ぶ — 確率分布からのサンプリング
Transformer の最終層は、語彙すべて(数万〜十数万トークン)に対して「次にそれが来るスコア(logit)」を出力します。このスコア列に softmax 関数 を適用すると、合計1になる確率分布に変換されます。たとえば「今日は」の続きとして「天気 0.25 / 仕事 0.18 / 寒い 0.10 / …」のような分布が得られます。
ここから1トークンを選ぶ操作が サンプリング です。最も確率の高い語を必ず選べば常に同じ出力(greedy)になりますが、多様性が失われます。逆に確率に従ってランダムに引くと自然な揺らぎが生まれます。この「どう選ぶか」を制御するのが後述の temperature・top-p・top-k です。選ばれたトークンを入力末尾に追加して再びモデルに入れる—これを終了条件まで繰り返すのが自己回帰生成です。
ハルシネーションの構造的原因はここに繋がります:サンプリングの揺らぎは一因にすぎず、最尤選択(temperature=0)にしても誤りは生じます。根本は、このパイプラインが最適化しているのが 「もっともらしさ」であって「真実性」ではない こと——学習データにない・誤った知識でも、文脈的にそれらしい続きが高確率になれば生成されてしまいます。温度を下げることは対策の 一つ にすぎず、構造としては避けられない現象です(第9章 ハルシネーションの仕組み で詳述)。
学習プロセス — 事前学習・微調整・整合
多くのLLMは、大きく三段階を経て作られます。各段階で「何を学ぶか」が異なる点を押さえると、モデルの挙動が理解しやすいでしょう。
| 段階 | 目的 | 学ぶ内容 |
|---|---|---|
| 事前学習 Pre-training | 言語と世界知識の獲得 | 大量テキストで「次トークン予測」を繰り返し、文法・知識・推論の土台を形成。最も計算コストが高い。 |
| 教師あり微調整 SFT | 指示に従う形式の習得 | 「指示と理想的な応答」のペアで学習し、対話・指示遂行の作法を身につける。 |
| 選好整合 RLHF / DPO 等 | 人間の好みへの整合 | 人間の評価を信号に、有用・無害・誠実な応答を強化する。口調や安全性はここで大きく形作られる。 |
RLHF — 人間フィードバックによる強化学習
RLHF(Reinforcement Learning from Human Feedback) は ChatGPT の「丁寧で安全」な応答スタイルを実現した中核技術で、3段階のプロセスを取ります:
- SFT 段階:指示と理想応答のペアでモデルを微調整
- 報酬モデル訓練:人間ラベラーが複数応答を順位付けし、その判定を再現する別のモデル(報酬モデル)を学習
- PPO 等の強化学習:報酬モデルの判定を信号に、ベースモデルを最適化
OpenAI が ChatGPT(2022年11月)で実用化し、その後ほぼ全主要モデルが採用しました。Anthropic は Constitutional AI という独自の派生を提唱し、Claude シリーズで使用しています。
DPO — RLHF の簡素化
DPO(Direct Preference Optimization)28 は Rafailov et al.(Stanford)が 2023年5月 に発表した、RLHF を 大幅に簡素化 する手法です。
論文タイトルは「Your Language Model is Secretly a Reward Model(あなたの言語モデルは、こっそり報酬モデルだ)」。報酬モデルを別途訓練せず、選好データから 直接 モデルを最適化します。
| 観点 | RLHF(PPO) | DPO |
|---|---|---|
| 別途の報酬モデル | 必要 | 不要 |
| 強化学習の安定化チューニング | 要 | 不要 |
| 実装の複雑さ | 高 | 低 |
| 性能 | 高 | RLHF と同等以上 |
論文では「感情制御で PPO ベース RLHF を上回り、要約・対話で同等以上の品質を維持しながら、実装と訓練が大幅に簡素」と報告されています。
これにより、近年は オープンソース陣営(Llama、Mistral 等)も含めた標準的な整合手法 として DPO が広く採用されています。
出典:Rafailov et al. 2023「Direct Preference Optimization」arXiv:2305.18290
Constitutional AI(Anthropic)
Anthropic は RLHF を発展させた Constitutional AI(憲法的AI、CAI) を提唱しています。人間ラベラーの代わりに、AI 自身に「憲法(一連の原則)」に従って応答を批評・修正させる ことで、人間フィードバックの量を減らしつつ整合性を高めるアプローチ。Claude シリーズの基盤技術です。
出典:Anthropic Research: Constitutional AI
推論時のパラメータ
学習済みモデルから実際に文章を生成する際、出力の確率分布から「どう選ぶか」を制御するパラメータがあります。プロンプト設計と並んで、出力品質を左右する重要な要素です。
| パラメータ | 役割 | 挙動 |
|---|---|---|
temperature | ランダム性 | 低いほど決定的・無難に、高いほど多様・創造的になる。0に近いとほぼ最尤の出力。 |
top-p (nucleus) | 候補の絞り込み | 確率の高い順に累積がpに達するまでの候補だけを残してサンプリング。 |
top-k | 候補数の制限 | 確率上位k個の候補のみを対象にする。 |
max tokens | 出力長の上限 | 生成する最大トークン数。コストと打ち切りに関わる。 |
具体的な挙動を数値で見ましょう。元の確率分布「A: 0.5 / B: 0.3 / C: 0.15 / D: 0.05」に対して—
- temperature=0.2(低):分布が鋭くなり「A: 0.92 / B: 0.07 / …」に近づく。ほぼ A が選ばれる
- temperature=1.0(標準):元の分布のまま
- temperature=1.5(高、概算イメージ):分布が平らになり「A: 0.42 / B: 0.30 / C: 0.19 / D: 0.09」のように。B/C/D も選ばれやすくなる
- top-p=0.8:累積確率が0.8を超えるまでの候補(A+B)だけ残し、それ以外を切り捨てて再正規化
- top-k=2:上位2件(A, B)だけ残す。top-p が「内容に応じて候補数が変動」するのに対し、top-k は固定
実務では top-p(0.9〜0.95)と temperature(0.7前後)の組合せが標準。事実回答は temperature=0、創作は0.9〜1.2が目安。
補足:その他の推論パラメータ — frequency / presence penalty(繰り返し抑制):既出トークンの再出現にペナルティを与え、反復を減らす。長文生成や対話で「同じ語が繰り返される」を抑える調整に有効。
コンテキストウィンドウ
コンテキストウィンドウ とは、モデルが一度に処理できるトークン数の上限(入力+出力の合計)です。これを超える情報はモデルから「見えません」。
主要モデルのコンテキスト長(2026年5月時点)
| モデル | コンテキスト長 |
|---|---|
| Claude Opus 4.7/4.8 | 1,000,000 |
| Claude Sonnet 4.6 | 1,000,000 |
| GPT-5.5 | 1,050,000(Codex: 400,000) |
| GPT-5.4 | 1,050,000 |
| Gemini 3.1 Pro | 1,000,000 |
| Grok 4.3 | 1,000,000 |
| Claude Haiku 4.5 | 200,000 |
5年前は数千トークン程度でしたが、位置エンコーディングの進化(RoPE、ALiBi 等)と FlashAttention 系の最適化 により、1M〜2M トークン級が標準化しています。
中盤の見落とし — 長コンテキストの落とし穴
ウィンドウが大きくても、長い文脈の 中間部分が相対的に参照されにくくなる 現象(俗に「中盤の見落とし」と呼ばれる)が報告されています10 。
Liu et al. 2023 の研究では、検索質問応答タスクで「正解情報が文書のどこにあるか」を変えて性能を測ったところ、冒頭または末尾にあるとき性能が高く、中盤にあると低い U 字型の曲線 を示しました。
実務上の含意:
- 重要な指示は冒頭か末尾に
- 長文を入れるときは、特に「最も重要な情報を冒頭に再掲する」と効きやすい
- RAG では検索した複数文書のうち、最も関連度の高い文書を末尾に置く 実装が増えている
長文を扱う実務上の戦略
コンテキストウィンドウが大きくなっても、「全部入れる」が常に最適ではない ことに注意してください。
| 戦略 | 適用場面 |
|---|---|
| 要約してから入れる | 全体像が必要だが詳細は不要 |
| 分割して順に処理 | 各部分が独立に処理できる |
| RAG で関連箇所だけ抽出 | 質問に対する根拠が一部だけ |
| エージェントで反復読解 | 複雑な問いで複数回参照が必要 |
詳細な使い分けは 第5章 5.7 文脈の設計 を参照。
推論最適化 — どう速く・安く動かすか
学習済みモデルから応答を得る「推論」フェーズも、近年大幅に最適化されています。実務で使う API のコストとレイテンシは、これらの技術に直結します。
KV Cache(Key-Value キャッシュ)
自己回帰生成では、各ステップで過去のトークン全部の Key/Value を再計算する必要があります。これを キャッシュして再利用 することで、生成速度を桁違いに改善するのが KV Cache です。
長文を生成するほど効果が大きく、現代のすべての LLM 推論システムが採用しています。Prompt Caching(共通プロンプトのキャッシュ)も、KV Cache を共通プロンプト部分に拡張したものと理解できます(第7章 API料金 で90%引きの根拠)。
Speculative Decoding(投機的デコーディング)
小さな「ドラフトモデル」が複数トークンを 先読みで提案、本体モデルがまとめて検証する手法。検証が成功すれば一気に数トークン進めるため、実効的に2〜3倍速い 推論が可能。多くの主要 API がバックグラウンドで採用しています。
量子化(Quantization)
通常 FP16 / BF16(16ビット)で扱われるモデル重みを、INT8 / INT4 などの低ビット表現に圧縮する技術。メモリ使用量が半減〜1/4 になり、推論速度も向上します。GPTQ、AWQ、SmoothQuant、bitsandbytes などのライブラリが実用化しています。
具体例:70Bパラメータのモデルは FP16 で約140GB(A100 80GB 2枚必要)、INT4 量子化で約40GB(消費者向け RTX 4090 24GB 2枚や M3 Max 64GB Mac で動く)まで縮みます。量子化は精度劣化を伴います — GPTQ / AWQ / QLoRA 等の手法では INT8 はほぼ無視できる程度、INT4 でも会話品質ベンチで概ね数%以内の劣化に収まるケースが報告されています(Frantar et al. GPTQ 2022、Lin et al. AWQ 2023、Dettmers et al. QLoRA 2023)。ただしタスク・モデル・量子化手法により劣化幅は大きく異なるため、本番投入前に自タスクで評価が必要です。
Mixture of Experts(MoE)
モデルを 複数の「専門家」サブネットワーク に分け、入力ごとに一部だけを起動する構造。総パラメータは大きいが、推論時の実効計算量は小さい。
近年の主要モデルの多くが MoE 構造を採用:
- Mistral Mixtral 8x7B:8 つの専門家から 2 つだけ動く
- DeepSeek V3 / R1:256 専門家、8 つ動く
- GPT-4 も MoE と推定される(SemiAnalysis 等の業界推測、OpenAI 公式未公表。Claude については MoE であるとの公式・有力報道は乏しい)
- BPE / SentencePiece などのサブワード分割
- Self-Attention(Query–Key–Value)、Multi-Head Attention、Causal Masking
- Pre-training / SFT / RLHF / DPO といった学習パイプライン
- Temperature, Top-p (nucleus) sampling, Top-k