KI‑Kompass
Kompass

Information und Entropie

Entropie misst Überraschung, Kreuzentropie misst den Preis einer falschen Erwartung. Beides zusammen ist die Verlustfunktion jedes Sprachmodells.

·2 Min. Lesezeit·Von Fachredaktion Technik
DETAILGRAD
3 Abschnitte

Die Idee

Wenn ich Ihnen sage „morgen geht die Sonne auf", haben Sie nichts erfahren. Wenn ich sage „morgen schneit es in Wien im August", haben Sie viel erfahren. Information ist Überraschung, und Überraschung ist das Gegenteil von Wahrscheinlichkeit.

Entropie ist die durchschnittliche Überraschung einer ganzen Quelle. Ein Würfel hat mehr Entropie als eine Münze, weil mehr passieren kann.

Wozu es gut ist

Ein Sprachmodell wird darauf trainiert, möglichst wenig überrascht zu werden. Je besser es den nächsten Token vorhersagt, desto kleiner die Überraschung, desto kleiner der Verlust. Das ist der gesamte Trainingsvorgang.

Die drei Größen im Zusammenhang

GrößeMisstTypischer Wert
Entropie H(p)Unsicherheit der wahren VerteilungDeutscher Fließtext: 1,2 bis 1,6 Bit je Zeichen
Kreuzentropie H(p,q)Kosten, mit q statt p zu rechnenDer Trainingsverlust, gemessen in Nats je Token
KL-Divergenz D(p‖q)Nur der ZusatzaufwandBei RLHF der Abstand zum Ausgangsmodell
import numpy as np

def entropy(p, base=2):
    p = np.asarray(p, dtype=float)
    p = p[p > 0]                          # 0·log0 ist als 0 definiert
    return float(-(p * np.log(p) / np.log(base)).sum())

print(round(entropy([0.5, 0.5]), 3))                 # 1.0   -> faire Münze
print(round(entropy([0.9, 0.1]), 3))                 # 0.469 -> fast sicher
print(round(entropy([0.25] * 4), 3))                 # 2.0   -> vier Optionen

Was man damit im Betrieb messen kann

  • Perplexität auf einem eigenen Fachtext zeigt, wie fremd die Domäne für ein Modell ist.
  • Die Entropie der Ausgabeverteilung je Token zeigt, wo ein Modell rät: ein brauchbares Warnsignal für Halluzination.
  • Die KL-Divergenz zwischen zwei Modellversionen zeigt, wie stark ein Feintuning das Verhalten verschoben hat.

Die Formeln

Entropie, Kreuzentropie, KL-Divergenz

H(p) = − Σᵢ pᵢ · log pᵢ H(p,q) = − Σᵢ pᵢ · log qᵢ D(p‖q) = Σᵢ pᵢ · log(pᵢ / qᵢ) = H(p,q) − H(p)

Die Kreuzentropie ist die Entropie plus die KL-Divergenz; nur der zweite Summand hängt vom Modell ab und wird deshalb minimiert.

p
die wahre Verteilung
q
die vom Modell vorhergesagte Verteilung
H(p)
Entropie: die unvermeidbare Unsicherheit
H(p,q)
Kreuzentropie: die tatsächlichen Kosten
D(p‖q)
KL-Divergenz: der vermeidbare Anteil

Durchgerechnet

Ein Modell soll den nächsten Token vorhersagen. Die Wahrheit ist Token 2, also p = [0, 1, 0, 0]. Das Modell sagt q = [0,1; 0,7; 0,15; 0,05].

  • H(p,q) = −(0·log0,1 + 1·log0,7 + 0·log0,15 + 0·log0,05) = −log 0,7 = 0,357 Nats
  • In Bit: 0,357 / ln2 = 0,515 Bit
  • Perplexität dieses einen Tokens: e^0,357 = 1,43

Sagt das Modell stattdessen q = [0,25; 0,25; 0,25; 0,25], ist H(p,q) = −log 0,25 = 1,386 Nats und die Perplexität exakt 4: die Anzahl der Optionen. Das ist die Anschauung hinter der Kennzahl.

Perplexität

PPL = exp( −(1/N) · Σᵢ log qᵢ )

Perplexität ist die Exponentialfunktion der mittleren negativen Log-Wahrscheinlichkeit.

PPL
Perplexität
N
Anzahl der bewerteten Token
qᵢ
die Wahrscheinlichkeit, die das Modell dem tatsächlichen Token gab

Fallstricke

  • Basis. log₂ liefert Bit, ln liefert Nats. Ein Faktor 1,4427 zwischen beiden erklärt die meisten Abweichungen beim Nachrechnen fremder Zahlen.
  • Tokenizer. Perplexität wird je Token gemessen. Ein Vokabular, das deutsche Komposita in mehr Stücke zerlegt, senkt die Perplexität ohne jede Verbesserung. Vergleichbar wird es erst als Bits pro Zeichen.
  • Numerik. log q bei q → 0 läuft gegen minus unendlich. Implementierungen rechnen deshalb nie log(softmax(x)), sondern log_softmax(x) in einem Schritt, siehe Zahlen im Rechner.
War diese Seite hilfreich?
Information und Entropie