この記事の音声は準備中です。
音声の一覧・再生リストへ推論の内部機構(サンプリング・KV キャッシュ・量子化)
この記事の目的
学習済みモデルが推論時に何をしているかを、数式と計算量の観点で理解できるようになります。ロジット → 確率 → 選択のサンプリングの数理、プリフィルとデコードという 2 相の計算量・メモリ特性、連続バッチング推論サーバーで複数リクエストをまとめて処理し、各リクエストの開始・終了が揃わなくても空いたスロットに次を詰めて GPU を遊ばせない方式。1 件ずつ処理するよりスループットが大きく上がる。高スループット系の推論エンジンが備える中核機能。・投機的デコーディング・量子化モデルの重みを低い数値精度(INT8・INT4 等)で表現してサイズを縮める手法。VRAM とメモリ帯域の負荷が下がり、同じ GPU により大きいモデル・多い同時実行を載せられる。精度を下げるほど品質が落ちうるため、量子化後の品質は自社タスクで検証してから使う。といった高速化技術の原理までを押さえ、「なぜ入力は安く出力は高いのか」「なぜ最初のトークンは遅く以降は速いのか」といった API の価格・レイテンシ特性の『なぜ』に接続できる状態を目指します。
数式は読み下しを添え、読み飛ばしても本文が成立するようにします。推論エンジンの実装・運用はセルフホスト推論の実務側で、本記事は原理を扱います。
対象読者
- LLM はどのようにテキストを生成するかを読み、サンプリング・推論コストの「なぜ」を数式で理解したいエンジニア
- API の価格構造・レイテンシ特性や、セルフホストの高速化技術の原理を押さえたい人
前提知識
- Transformer アーキテクチャ詳解 — 自己注意・出力ヘッド(ロジットの出どころ)
- 注意機構の変種と長コンテキスト技術 — KV キャッシュ生成中に各トークンの中間表現(Key / Value)を保存・再利用する仕組みで、プロンプトキャッシュの実体。中間表現は先頭からの並びに依存するため、キャッシュは前方一致でしか効かない。のサイズ式(本記事で再掲・活用)
- LLM はどのようにテキストを生成するか — サンプリングの直感側
本文
概要: プリフィルとデコードの 2 相
自己回帰生成の推論は、性質の違う 2 つの相からなります。
図を元の大きさで表示
図の中をスクロールして読めます。キーボードでは図の領域へ Tab で移動し、矢印キーを使います。読み終わったら、この見出しをもう一度選ぶと閉じます。
- プリフィルアシスタント応答の書き出しを開発者側で与えてから続きを生成させる技法。生成が与えた書き出しの続きとして条件付けられるため、前置きの除去や形式の強制に指示より強く効く(対応可否はモデルによる)。(prefill): 入力プロンプト全体を 1 回で処理し、各層の KV キャッシュを作る。並列に大量の行列積を回すため計算律速(compute-bound)。最初のトークンまでの時間(TTFT最初のトークンが出るまでの時間。ストリーミング表示の体感と全体レイテンシを左右する主要指標の一つ。)を支配します
- デコード(decode): 1 トークンずつ生成する。各ステップは 1 トークン分の小さな計算だが、モデルの全重みと KV キャッシュをメモリAgent が「覚えている」ように見えるデータの総称。短期記憶(コンテキスト)・作業状態・長期記憶(外部ストレージ)の 3 層に分けて設計する。から読む必要がありメモリ帯域律速(memory-bound)。以降のトークン間の時間を支配します
この非対称が、後述の「入力は安く出力は高い」「バッチングが効く」といった性質の根です。
ロジット → 確率 → 選択の数理
各ステップで、モデルは語彙上のスコア(ロジット )を出します(Transformer アーキテクチャ詳解の出力ヘッド)。これを確率に変え、1 つ選ぶまでを制御するのがサンプリングです。
温度(temperature) は、softmax の鋭さを調整します。
読み下し: 「ロジットを温度 で割ってから softmax する。 が小さいほど分布が尖って決定的に、大きいほど平らでランダムになる。 は最大確率のトークンを選ぶ貪欲法」。
選択肢の絞り込みは 2 系統です。
- top-k: 確率上位 個だけを残し、その中で正規化してサンプリングする
- top-p(核サンプリング / nucleus sampling): 確率の高い順に足していき、累積確率が 以上になる最小の集合だけを残す。候補数を文脈に応じて動的に変える(自信のある場面では少なく、曖昧な場面では多く)
読み下すと: 「top-k は個数で、top-p は確率質量で裾を切る」。さらに繰り返しペナルティ(既出トークンのロジットを下げる)などで退化(同じ語の反復)を抑えます。温度 0 として提供される貪欲法は、固定されたロジットと同点処理のもとで選択時の乱数を除きます。ただし、モデル更新・浮動小数点演算・バッチ構成などによる変化まで消すものではなく、実システムの出力完全一致を保証しません。再現性が必要ならモデル版・推論環境・入力を固定し、回帰評価では業務上の成功条件も確認します(LLM はどのようにテキストを生成するか)。
プリフィルとデコードの計算量・メモリ
KV キャッシュは、過去の全トークンの K・V を保持して各デコードステップで再利用する仕組みです。そのサイズは(注意機構の変種と長コンテキスト技術で導いた式):
読み下し: 「K と V の 2 つ分 × トークン数 × 層数 × KV ヘッド数 × ヘッド次元 × バイト数 」。デコードでは毎ステップこの KV キャッシュ全体とモデル重みをメモリから読むため、1 トークンの生成に必要なメモリ転送量が速度を決めます(メモリ帯域律速)。
ここから重要な非対称が出ます。プリフィルは トークンを並列処理し計算を使い切れる一方、デコードは 1 トークンずつで演算に対してメモリ読み出しが重い。だから:
- 入力(プリフィル)は 1 トークンあたり安く、出力(デコード)は高い — API 料金で出力単価が入力単価より高い構造的な理由
- デコードは GPU の演算能力を持て余す — その余りを埋めるのが次のバッチングです
バッチングと連続バッチング
デコードがメモリ帯域律速だということは、複数リクエストの重み読み出しを共有できれば、演算の余りで同時に処理できることを意味します。これがバッチングです。
- 素朴なバッチング: 複数リクエストをまとめて処理する。だが各リクエストの長さ・完了タイミングが揃わず、遅いものに引きずられて GPU が遊ぶ
- 連続バッチング(continuous batching): リクエストの開始・終了が揃わなくても、空いたスロットに次のリクエストを随時詰める。完了したものを抜き、待っているものを入れることで GPU を遊ばせない(セルフホスト推論の実務の中核機能)
読み下すと: 「デコードの余った演算力を、他リクエストの処理で埋めてスループットを上げる」。ただしバッチング=スループット最適化であり、個々のリクエストのレイテンシとはトレードオフになります(レイテンシ最適化)。KV キャッシュのメモリ管理(断片化を避ける工夫)も、同時に載せられるリクエスト数=スループットを左右します。
投機的デコーディング
デコードがメモリ帯域律速なら、1 回のメモリ読み出しで複数トークンを検証できれば速くなる。これが投機的デコーディング(speculative decoding)です。
- 下書き: 小さく速い「下書きモデル」で次の トークンをまとめて予測する
- 検証: 本命モデルで、その トークンを1 回のフォワードで並列に検証する。貪欲法なら本命が選ぶトークンと先頭から一致する分を採用し、最初の不一致では本命のトークンへ置き換える
確率的にサンプリングする場合は、単なる一致判定では分布を保てません。同じ語彙と接頭辞に対する本命の分布を 、下書きの分布を とすると、下書きトークン を確率 で受理します。最初の棄却時は を正規化した補正分布から選び直し、以降の下書きを捨てます。全候補を受理した場合は本命の分布からさらに 1 トークン生成します。
読み下すと: 「安いモデルで先読みし、本命が不足する確率を補って一括採点する」。原論文の手順では本命から直接サンプリングする分布を保つことが示されています。温度・top-p などの選択処理も織り込んだ分布と正しい受理・補正が条件で、任意の近似実装まで同じ保証を持つわけではありません。速度の利得は受理率と下書き・検証の実行コストに依存します。
量子化
量子化(quantization)は、重み・活性・KV キャッシュを低い数値精度(FP16 → INT8 / INT4 など)で表し、メモリと帯域を減らす技術です(GPU・AI ハードウェアの基礎)。
- 何を量子化するか: 重み(最も一般的・メモリ削減が大きい)、活性(実装が難しい・外れ値の扱いが鍵)、KV キャッシュ(長文で効く)
- 学習後量子化(PTQ): 学習済みモデルを事後に量子化する(GPTQ・AWQ など)。手軽だが精度低下のリスク
- 原理的なトレードオフ: 精度を下げるほどメモリ・速度は得だが、品質が落ちうる。外れ値(outlier)の大きな値をどう保つかが品質維持の鍵で、重要な部分を高精度に残す混合精度が使われます
読み下すと: 「数値の桁を削ってメモリ・帯域を稼ぐ。どこまで削れるかは品質との引き換え」。量子化後の品質は自社タスクで必ず検証します(ベンチマーク上は同等でも、特定タスクで劣化することがあります)。
この理解が効く場面
- API 価格・レイテンシの読み解き: 入力/出力の単価差、TTFT と以降の速度差が、プリフィル/デコードの非対称から説明できる(コスト管理・レイテンシ最適化)
- セルフホストの設計: 連続バッチング・量子化・投機的デコーディングが、スループットとメモリをどう動かすか(セルフホスト推論の実務・GPU・AI ハードウェアの基礎)
- 長文コストの見積り: KV キャッシュ式が、長文デコードのメモリ・同時実行数の上限を決める(注意機構の変種と長コンテキスト技術)
- サンプリング設定の判断: 温度・top-p による多様性の調整と、環境を含む再現性の条件を分ける根拠(LLM はどのようにテキストを生成するか)
実務での注意点
アンチパターン
- 入力と出力のコストを同じに見積もる → デコード(出力)はメモリ帯域律速で高く、プリフィル(入力)は安い → 出力単価が高い構造を前提にコストを試算する(コスト管理)
- バッチングでレイテンシも良くなると期待する → 連続バッチングはスループット最適化で、個々のレイテンシとはトレードオフ → スループット目標かレイテンシ目標かを決めて調整する
- 投機的デコーディングはどんな実装でも分布を保つと思う → 単なる一致判定では確率的サンプリングの分布が変わりうる → 採用する方式の受理・補正手順と保証条件を確認する
- 量子化を「無料の高速化」と考える → 精度低下で特定タスクの品質が静かに落ちうる → 量子化後の品質を自社タスクで検証してから使う
- 温度 0 だけで完全一致を保証する → 演算・バッチ構成・モデル版による差が残る → 選択時の乱数とシステム全体の再現性を分け、環境固定と成功条件による回帰評価を行う
チェックリスト
- プリフィル(計算律速)とデコード(メモリ帯域律速)の違いを説明できる
- 温度・top-k・top-p の定義と、用途による使い分けを説明できる
- KV キャッシュのサイズ式と、それがデコードのメモリ・速度を決める理由を理解している
- 連続バッチングがスループットを上げる原理(遊休演算の充填)を説明できる
- 投機的デコーディングの貪欲法と確率的受理・補正を区別し、分布保存と速度向上の条件を説明できる
- 温度 0 だけで実システムの出力完全一致を保証していない
- 量子化のトレードオフ(メモリ/速度 vs 品質)と、検証の必要性を理解している
- 入力/出力の単価差・TTFT を、プリフィル/デコードの非対称から説明できる
関連トピック
- Transformer アーキテクチャ詳解 — ロジットの出どころ・自己注意(本記事の前提構造)
- 注意機構の変種と長コンテキスト技術 — KV キャッシュ式・注意の効率化(本記事のメモリ話の土台)
- LLM はどのようにテキストを生成するか — サンプリングの直感側
- セルフホスト推論の実務 — 連続バッチング・量子化の運用側(本記事の原理の実装)
- GPU・AI ハードウェアの基礎 — メモリ帯域律速・量子化の受け皿
- レイテンシ最適化 — TTFT・スループットとレイテンシのトレードオフ
- コスト管理 — 入力/出力単価差の運用側
- 推論モデル(考える時間を使う LLM) — 推論トークン推論モデルが答える前に生成する中間の思考のトークン。通常コストとして課金され、生成時間を延ばす。「考える時間」はタダではなく、思考量とコスト・レイテンシは直結する。を増やす別軸のコスト
参考資料
- The Curious Case of Neural Text Degeneration — 核サンプリング(top-p)の原論文(Holtzman et al., 2019、アクセス日: 2026-09-24)
- Fast Inference from Transformers via Speculative Decoding — 受理・補正の Algorithm 1 と分布保存の Appendix A.1(Leviathan et al., 2023、アクセス日: 2026-09-10)
- Efficient Memory Management for Large Language Model Serving with PagedAttention — KV キャッシュのメモリ管理(vLLM)(Kwon et al., 2023、アクセス日: 2026-07-09)
- LLM.int8(): 8-bit Matrix Multiplication for Transformers at Scale — 外れ値を考慮した 8-bit 量子化(Dettmers et al., 2022、アクセス日: 2026-07-09)
- GPTQ: Accurate Post-Training Quantization for Generative Pre-trained Transformers — 学習後量子化(Frantar et al., 2022、アクセス日: 2026-07-09)
TODO・未確認事項
なし