Perplexity(困惑度)(パープレキシティ)
言語モデルが次の単語をどの程度正確に予測できるかを測る指標。クロスエントロピー損失の指数関数として計算され、値が低いほどモデルの予測精度が高いことを示す。GPT-4クラスのモデルでは英語テキストに対して8-12程度。
Perplexity(困惑度)は、言語モデルの予測性能を定量化する最も基礎的な評価指標である。直感的には「モデルが次の単語を予測する際にどれだけ迷っているか」を数値化したもので、値が低いほどモデルの予測精度が高い。
概要
Perplexityの数学的定義はクロスエントロピー損失の指数関数(2のH(p,q)乗)である。テストコーパス上で計算され、モデルが各トークンに割り当てる確率分布の品質を反映する。Perplexity=1は完璧な予測(次の単語を100%正確に当てる)を意味し、Perplexity=Vはボキャブラリサイズ V のランダム予測に相当する。
2026年現在の主要モデルのPerplexity値(Wikitext-103評価)は以下の通り:GPT-4oが約8.2、Claude 4 Opusが約8.5、Llama 3.1 405Bが約10.3、Gemini 2.0 Proが約9.1。ただしPerplexityはトークナイザの語彙サイズに依存するため、異なるトークナイザを使用するモデル間の厳密な比較には注意が必要である(GPT-4oのcl100kは100,256トークン、Llamaのtiktokenは128,256トークン)。
計算方法と数学的背景
Perplexityの計算式は以下の通り:
- 定義: PP(W) = P(w1, w2, ..., wN)^(-1/N) = 2^(H(p,q))
- クロスエントロピー: H(p,q) = -(1/N) × Σ log2 P(wi | w1, ..., wi-1)
- 実装: PyTorchではCrossEntropyLossの出力をtorch.exp()で変換。math.exp(loss.item())として計算
計算時の注意点として、長文テキストではsliding window方式が一般的で、stride=512トークンで文脈窓をスライドさせながら平均Perplexityを算出する。GPT-4oの128Kコンテキストウィンドウではstride=1024以上が推奨される。
Perplexity値の解釈ガイド
| Perplexity範囲 | 評価 | 該当モデル例 | 用途適性 |
|---|---|---|---|
| 5-10 | 非常に優秀 | GPT-4o (8.2), Claude 4 (8.5) | 汎用テキスト生成、商用品質 |
| 10-20 | 良好 | Llama 3.1 70B (14.7), Mistral Large (12.3) | 特定ドメイン、コスト重視 |
| 20-50 | 標準 | Llama 3.1 8B (28.5), Phi-3 mini (35.2) | エッジデバイス、軽量推論 |
| 50-100 | 要改善 | 小型・未チューニングモデル | プロトタイプ、研究用途 |
| 100以上 | 不十分 | ランダムに近い予測 | 実用には不適 |
Perplexityの限界と補完指標
Perplexityにはいくつかの本質的な限界がある:
- 生成品質との乖離: Perplexityが低くても、繰り返しの多い退屈なテキストや、安全だが創造性のないテキストを生成する場合がある。Perplexity=10のモデルがPerplexity=15のモデルよりユーザー満足度が低い事例が報告されている
- トークナイザ依存性: 語彙サイズが大きいトークナイザほどPerplexityが低くなりやすい。BPEで32K語彙と128K語彙では同じモデルでも5-15%の差が出る
- ドメイン依存性: Wikitext-103で優秀でもコード生成やチャットでは性能が異なる。ドメイン固有のテストセットで評価する必要がある
- デコーディング設定の非反映: Perplexityは確率分布の品質を測るが、実際の生成時にはtemperature・top-p・top-kなどのサンプリング戦略が品質に大きく影響する
補完指標としてBERTScore(意味的類似度)、MAUVE(分布一致度)、Self-BLEU(多様性の逆指標)を組み合わせることで、より多面的なモデル評価が可能になる。
よくある質問(FAQ)
Q1: Perplexityが同じ2つのモデルは同じ品質ですか? A: 必ずしもそうではない。Perplexityはトークン予測の平均的な精度を測るため、特定タスクの性能差や安全性・創造性などの品質は反映しない。タスク固有のベンチマーク(SWE-Bench等)やLLM-as-a-Judgeとの併用が必要。
Q2: ファインチューニング後にPerplexityが上がるのは失敗ですか? A: 必ずしも失敗ではない。RLHF等のアライメントチューニングではPerplexityが5-20%上昇するのが一般的。これはモデルが安全で有用な回答に偏るようになった結果であり、汎用的な予測精度とトレードオフの関係にある。
Q3: Perplexityの計算にGPUは必要ですか? A: 7Bパラメータ以下のモデルなら16GB VRAMのRTX 4080で計算可能。70B以上では80GB以上のA100/H100が必要か、量子化(GPTQ 4bit等)を適用して24GBのRTX 4090でも対応できる。
まとめ
- Perplexityは言語モデルの予測精度を測る基礎指標で、値が低いほど高精度
- GPT-4oクラスで8-12、小型モデルで20-50が目安
- トークナイザ依存性やドメイン依存性があり、単独では品質を十分に評価できない
- BERTScore・MAUVE等の補完指標との組み合わせが推奨される