この記事が答えたいこと
LLM を学んでいると、エントロピー(Entropy) という言葉に何度も出会います。cross-entropy loss、Perplexity、Temperature、hallucination 検出などです。別々の概念に見えますが、背後には同じ数学的直感があります。
この記事では、散らばった知識を一本の線で結びます。エントロピーは LLM の振る舞いを理解するための共通言語です。
エントロピーを一文で理解する
エントロピーとは、不確実性の尺度です。
公平なコインを投げると結果は完全に不確実で、エントロピーは最大の 1 bit です。両面が表なら結果は確定しており、エントロピーは 0 です。
Shannon が 1948 年に示した式は次のとおりです。
$$ H(X) = -\sum p(x) \log p(x) $$確率分布が均一で不確実であるほどエントロピーは高く、特定の値へ集中して確実であるほど低くなります。
中国語の「熵」という文字について: 中華民国期の物理学者が thermodynamic entropy を訳すために作った形声文字で、火は熱力学を、商は shāng という音を表します。情報理論の entropy は同じ数学的形式を使いますが、物理現象の比喩ではなく独立した数学的定義です。両者は式を共有しますが、物理的な仕組みは共有しません。
学習:Cross-Entropy Loss
LLM 学習の根本的な目標は一つです。context が与えられたときに次の token の確率分布を予測し、その予測を真の分布へできるだけ近づけます。
その近さを測る指標が cross-entropy です。
直感的な例
真の次 token が「猫」で、モデルが次の確率を割り当てたとします。
| Token | モデルの予測確率 | Cross-entropy への寄与 |
|---|---|---|
| 猫 | 0.7 | $-\log(0.7) \approx 0.36$ |
| 猫 | 0.01 | $-\log(0.01) \approx 6.64$ |
重要な性質は次のとおりです。
- 予測が正確で、正解 token の確率が高いほど cross-entropy は低くなります。
- 予測が外れるほど cross-entropy は高くなり、対数的なペナルティ が掛かります。
- 正解へ 0.01 を割り当てる場合の罰は、0.1 を割り当てる場合よりはるかに大きくなります。
これは望ましい学習信号です。完全に外れた予測を厳しく罰します。
学習曲線の Loss
LLM の training loss curve では、縦軸は通常 cross-entropy loss です。曲線が下がることは、次 token の予測が正確になり、予測分布の不確実性が減っていることを意味します。
評価:Perplexity
Perplexity(困惑度) は cross-entropy の指数形式です。
$$ PPL = 2^{H} $$直感的には、モデルが平均して何個の token の間で「迷っているか」を表します。
- GPT-2 の時代には perplexity はおよそ 20〜30 で、各 step で 20〜30 個の候補 token に迷っていたことを示します。
- 現代の大規模モデルは perplexity が大幅に低く、予測能力が高まっています。
Perplexity は言語モデルの基礎能力を測る中核指標です。ただし、「予測が正しいか」は測れても「回答が役立つか」は直接測れません。そのため BLEU、ROUGE、さらに新しい LLM-as-Judge なども必要です。
推論:Temperature と Sampling
学習後のモデルは token ごとの確率分布を出力します。その分布から token をどう選ぶかが、出力エントロピーを直接決めます。
Temperature
Temperature は logits、つまりモデルの生の score を拡大・縮小し、確率分布の形を制御します。
- T → 0: argmax に近づき、確率は最高 score の token にほぼ集中します。出力エントロピーは 0 に近づき、決定的になります。
- T = 1: モデル本来の分布を使います。
- T > 1: 分布を平らにし、token 間の確率差を小さくします。出力エントロピーが増え、よりランダムになります。
Top-p(Nucleus Sampling)
Top-p は累積確率を切ることで、別の方向からエントロピーを制御します。top_p=0.9 なら、累積確率が 90% に達する最小の token 集合だけを残し、long tail を捨てます。これは出力エントロピーに上限を設けることに相当します。
実際の選択
| 場面 | Temperature | 理由 |
|---|---|---|
| コード生成 | 低い(0〜0.2) | 決定性が必要で、正解の範囲が狭い |
| 創作 | 高い(0.7〜1.0) | 多様性と意外性が必要 |
| RAG 質問応答 | 低い(0〜0.3) | 検索文書に忠実である必要がある |
| データ抽出 | 0 | 構造化出力を完全に決定的にしたい |
Context と条件付きエントロピー
この節は RAG エンジニアにとって特に重要です。
情報理論の観点では、context window へ情報を注入する行為は、後続 token 予測の条件付きエントロピーを下げること です。
$$ H(Y|X) \leq H(Y) $$条件付きエントロピー、つまり X が既知のときの Y の不確実性は、無条件のエントロピー以下です。X の情報が十分で関連性が高いほど、条件付きエントロピーは下がり、出力は確実になります。
これが、RAG が回答品質を高めることの情報理論的な説明です。
- ユーザーが質問すると、モデルは高い不確実性、つまり高エントロピーに直面します。
- 関連文書を検索して context に注入すると、条件付きエントロピーが下がります。
- 十分な context を基に生成すると、回答はより確実で正確になります。
逆に、無関係または矛盾する文書は noise を増やし、不確実性を下げないことがあります。だからこそ RAG では retrieval quality が重要です。
Hallucination 検出:信号としての Entropy
実用的な観察として、token ごとの生成中に entropy が急上昇する entropy spike は、モデルが情報を「作り始めた」兆候である場合があります。
学習データで見た確かな内容では、予測分布は鋭く低エントロピーになります。根拠がなく、推測する場所では分布が平らになり、高エントロピーになります。
この性質を使う hallucination 検出法があります。
- token ごとの log probability を監視する
- sliding window 内の entropy を計算する
- entropy がしきい値を超えた位置を潜在的 hallucination として印を付ける
API が token の log probability を返せれば、プロダクト層で実装できます。Langfuse のような observability tool と組み合わせることで、本番 LLM 出力の entropy-based な品質監視が可能です。
Prompt Engineering における Entropy の隠れた影響
prompt を書くときに entropy を直接計算することはほとんどありませんが、prompt 設計は出力分布の entropy を本質的に変えます。
- 指示が明確 → 出力空間が小さい → 低 entropy → 安定して制御しやすい
- open-ended prompt → 出力空間が大きい → 高 entropy → 多様だが制御しにくい
- Few-shot examples → 出力 pattern を制約する → entropy を下げる
- JSON Schema や XML tags などの構造化出力 → 出力空間を大幅に圧縮する → entropy を大きく下げる
良い prompt が具体的で制約を持つ理由もここにあります。モデルの探索空間を狭め、必要な意思決定の不確実性を下げています。
コードベースの「Entropy」:有用な比喩
AI engineering では、数学的な定義ではなく比喩として entropy が使われることもあります。
OpenAI は Harness Engineering で、Codex agent が自律的にコードを生成すると、コードベースに不整合な pattern、style drift、technical debt が蓄積する現象を説明しています。この劣化を entropy と呼び、agent が定期的に差異を走査して refactoring PR を作る garbage collection を設計しています。
ここでの entropy は、外部から介入しなければ system は自然に無秩序へ向かうという熱力学的比喩です。厳密な数学定義ではありませんが、「自律 system には継続的な governance が必要」という重要な認識を正確に伝えます。
まとめ
| 段階 | Entropy の役割 | 実際の意味 |
|---|---|---|
| 学習 | Cross-entropy loss | 予測分布と真の分布の差を最小化する |
| 評価 | Perplexity ($2^H$) | 基礎的な予測能力を測る |
| 推論 | Temperature / Top-p | ランダム性と多様性を制御する |
| Context | 条件付きエントロピー $H(Y \mid X)$ | 関連文書の注入で条件付き entropy を下げ、RAG の出力を改善する |
| プロダクト | Entropy spike 検出 | hallucination と出力品質問題の信号にする |
| Prompt | 出力空間の制約 | 良い prompt は意思決定の不確実性を下げる |
| Engineering | コード劣化の比喩 | 自律 system は無秩序に抗う garbage collection を必要とする |
一文で言えば、LLM の学習は cross-entropy を下げ、推論では temperature で出力 entropy を制御し、評価では perplexity を使い、プロダクトでは entropy signal で hallucination を検出します。エントロピーは LLM のライフサイクル全体を貫く共通言語です。