LLMデコーディング戦略(エルエルエムデコーディングセンリャク)
LLM(大規模言語モデル)がテキストを生成する際に、次のトークンを選択するアルゴリズムの総称。貪欲法・ビームサーチ・サンプリング系など複数の手法があり、生成品質・多様性・速度のトレードオフを制御する。
LLMデコーディング戦略とは
LLMデコーディング戦略とは、大規模言語モデルが出力テキストを生成する際に、語彙全体の確率分布から次のトークンをどのように選択するかを決定するアルゴリズム群です。GPT-4o、Claude 4、Gemini 2.5 Pro など2026年現在の主要LLMはすべて自己回帰(autoregressive)方式でトークンを1つずつ生成しており、この選択戦略が生成テキストの品質・創造性・一貫性を大きく左右します。
主なデコーディング手法の分類
デコーディング戦略は大きく「決定論的手法」と「確率的手法」に分類されます。
- 貪欲法(Greedy Decoding): 各ステップで最も確率が高いトークンを選択。計算コスト最小だが多様性ゼロ
- ビームサーチ(Beam Search): 複数の候補系列(ビーム幅 k=4〜8 が一般的)を並行探索し、最終的に最高スコアの系列を選択
- Top-k サンプリング: 確率上位 k 個のトークンからランダムサンプリング。k=50 が GPT-2 論文の標準値
- Top-p(Nucleus)サンプリング: 累積確率が p(例: 0.9)に達するまでのトークン集合からサンプリング
- Temperature スケーリング: softmax の温度パラメータ τ を調整。τ→0 で貪欲法に近づき、τ→∞ で一様分布に近づく
- Min-p サンプリング: 2024年に提案された手法。最高確率トークンに対する相対比率で閾値を設定(例: min_p=0.05 で最高確率の5%未満を除外)
- Mirostat: 目標パープレキシティを維持するよう動的に k を調整する適応型手法
- Contrastive Decoding: 大型モデルと小型モデルの確率差を利用して品質を向上
手法比較表
| 手法 | 多様性 | 品質 | 速度 | 主な用途 | パラメータ |
|---|---|---|---|---|---|
| Greedy | なし | 中 | 最速 | 翻訳・要約・コード生成 | なし |
| Beam Search (k=4) | 低 | 高 | 遅い(k倍) | 機械翻訳・音声認識 | beam_width=4〜8 |
| Top-k (k=50) | 中 | 中〜高 | 速い | 汎用テキスト生成 | k=40〜100 |
| Top-p (p=0.9) | 中〜高 | 高 | 速い | 創作・対話 | p=0.8〜0.95 |
| Temperature (τ=0.7) | 調整可 | 調整可 | 速い | 全般 | τ=0.1〜2.0 |
| Min-p (p=0.05) | 高 | 高 | 速い | 創作・ロールプレイ | min_p=0.02〜0.1 |
| Mirostat (τ=5.0) | 自動調整 | 高 | やや遅い | 長文生成 | target_perplexity=3〜8 |
Temperature と Top-p の組み合わせ
実際のLLM APIでは Temperature と Top-p を組み合わせて使用するのが一般的です。
- 正確性重視(コード生成・数学): temperature=0.0〜0.2, top_p=1.0
- バランス型(一般対話): temperature=0.7, top_p=0.9
- 創造性重視(小説・ブレスト): temperature=1.0〜1.5, top_p=0.95
- Claude API: temperature(0〜1.0)と top_k を提供。2026年6月時点で top_p パラメータは未提供
- OpenAI API: temperature(0〜2.0)と top_p の両方を提供。ただし両方を同時に変更することは非推奨
- Gemini API: temperature(0〜2.0)、top_p、top_k の3つを提供
2026年の最新動向
Speculative Decoding(投機的デコーディング)
2024〜2026年に急速に普及した高速化技術です。小型のドラフトモデルが候補トークン列を先行生成し、大型の検証モデルが一括で承認・却下します。
- Google: Gemini 2.5 Pro で内部的に採用。推論速度を約2〜3倍に向上
- Meta: Llama 3.1 で公式サポート。68B モデルに対して 8B ドラフトモデルを使用
- vLLM 0.8+: Speculative Decoding をネイティブサポート。draft_model パラメータで指定
- Medusa: 複数ヘッドで並列にドラフトトークンを予測。追加パラメータ数は本体の2〜5%
Structured Decoding(構造化デコーディング)
JSON・XML・SQL など特定フォーマットに準拠した出力を保証する制約付きデコーディングです。
- Outlines: 正規表現や JSON Schema に基づく文法制約をデコーディング時に適用
- Guidance(Microsoft): テンプレートベースの制約付き生成
- SGLang: RadixAttention + 構造化デコーディングで高速な制約付き生成を実現
- lm-format-enforcer: Hugging Face Transformers 互換の軽量な構造化デコーディングライブラリ
各フレームワークでのパラメータ設定例
vLLM での設定
from vllm import SamplingParams
params = SamplingParams(
temperature=0.7,
top_p=0.9,
top_k=50,
max_tokens=2048,
repetition_penalty=1.1,
min_p=0.05
)
llama.cpp での設定
./llama-cli -m model.gguf \
--temp 0.7 \
--top-p 0.9 \
--top-k 40 \
--min-p 0.05 \
--mirostat 2 \
--mirostat-tau 5.0
よくある質問(FAQ)
Q1: Temperature を 0 に設定すれば毎回同じ出力になりますか? A: 理論上は決定論的になりますが、GPU の浮動小数点演算の非決定性やバッチサイズの違いにより、完全に同一の出力が保証されるわけではありません。OpenAI API では seed パラメータを併用することで再現性を高められます。
Q2: Top-k と Top-p はどちらを使うべきですか? A: Top-p(Nucleus Sampling)が一般的に推奨されます。Top-k は語彙の確率分布の形状に関係なく固定数のトークンを残すため、分布が平坦な場合に品質が低下しやすい問題があります。Top-p は分布の形状に適応するため、より安定した生成品質を実現できます。
Q3: Speculative Decoding を使うと生成品質は変わりますか? A: 品質は変わりません。Speculative Decoding は数学的に元のモデルと同一の出力分布を保証する手法です。ドラフトモデルの候補が検証モデルに却下された場合は通常のデコーディングにフォールバックするため、最終出力の品質は検証モデル単体と同等です。速度のみが向上します。
Q4: Repetition Penalty はどのように機能しますか? A: 過去に生成されたトークンの確率を減衰させることで繰り返しを抑制します。一般的な設定値は 1.0〜1.3 で、1.0 はペナルティなし、1.1〜1.2 が推奨範囲です。値が大きすぎると不自然な語彙選択になります。
まとめ
- デコーディング戦略はLLMの生成品質を直接制御する最も重要なハイパーパラメータ群
- 用途に応じて Temperature・Top-p・Top-k・Min-p を組み合わせて使用する
- 2026年現在、Speculative Decoding による高速化と Structured Decoding による出力制御が主要なトレンド
- 正確性が求められるタスクでは低 Temperature、創造性が求められるタスクでは高 Temperature が基本方針