Zum Inhalt springen
Kurzer Hinweis: flozi00 TechHub ist ein Solo-Nebenprojekt neben einem Vollzeitjob — persönliche Lernnotizen, keine offiziellen Aussagen. Kritische Schritte selbst prüfen.

Uncheatable Eval: LLMs benotet nach den Bits, die sie brauchen

Ein September-2026-Paper (arXiv:2609.27510) ersetzt statische Benches durch eine Kompressionsmessung: 80 Basismodelle werden über die verlustfreie Kompressionsrate auf frisch publizierten Juli-2026-Texten bewertet, 14 Kategorien, je 500 Samples. Dieser Leitfaden leitet die Bits-per-Byte-Arithmetik aus der Cross-Entropy in lauffähigem Python her, rechnet zwischen Kompressionsrate, bpb und gzip-artigen Verhältnissen um, reproduziert die Skalierungs- und Architekturbefunde des Papers — und zerlegt dann die Messung: Kompression misst ausschließlich Textvorhersage, die MMLU-Verbindung ist eine Korrelation, syndizierte Near-Duplicates können weiterhin kontaminieren, und der Score belohnt unausgesprochen, wer auf datennahen Wikipedia- und Preprint-Suppen trainiert hat.

10 Min. Lesezeitflozi00
aimachine-learningllmevaluationcompression

Ein September-2026-Paper nimmt die unspektakulärste Kennzahl des Sprachmodellierens — die negative Log-Likelihood — und befördert sie selbst zum Benchmark. Uncheatable Eval: Dynamic Compression-Based Evaluation of Language Models (Tan, Li und Shen, arXiv:2609.27510, cs.CL, eingereicht am 23. September 2026) argumentiert: Wer Basismodelle ohne Benchmark-Fäulnis vergleichen will, sollte nicht Antworten benoten, sondern zählen, wie viele Bits jedes Modell braucht, um Text verlustfrei zu kodieren, der nicht existierte, als der Trainingsdatensatz eingefroren wurde1. Der Mechanismus ist die Äquivalenz von Vorhersage und Kompression, die das Paper ausdrücklich nutzt: Ein Modell, das dem beobachteten nächsten Token eine höhere Wahrscheinlichkeit gibt, braucht weniger Code-Bits für dieses Token — ein rollierender Schnappschuss frisch veröffentlichter Texte wird so zu einer Evaluation, deren Lösungschlüssel schlicht der Text selbst ist1.

Das Design antwortet auf eine echte Krankheit. Benchmark-Leakage hat die Evaluation soweit kompliziert, dass statische Fragensätze für Frontier-Trainingsläufe nicht mehr vertrauenswürdig sind, und Basismodelle — pretrained, nicht post-trained — können den Instruktionen eines Aufgaben-Benchmarks ohnehin nicht zuverlässig folgen1. Uncheatable Eval umgeht beides: keine Fragen, keine Instruktionen, keine Referenzantworten — nur Next-Token-Wahrscheinlichkeit auf Dokumenten, die nach jedem plausiblen Trainings-Cutoff gesammelt wurden.

Dieser Leitfaden leitet die Messung ehrlich her — Bits pro Byte aus der Cross-Entropy, die Umrechnung Kompressionsrate↔bpb↔Verhältnis, eine Umformulierungs-Demonstration dessen, was die Messung nicht sieht —, reproduziert die Kopfzahlen des Papers (80 Modelle, 14 Kategorien, der Skalierungsfit 3,200·P^−0,290 + 5,328, der Langkontext-Architektursplit) und übt dann den Druck aus, den das Paper einlädt — und etwas mehr: was Kompression nicht misst, was durch die Kuratierungspipeline trotzdem durchsickern kann, und warum die Rangliste teilweise ein Scoreboard der Pretraining-Datenwahl sein könnte.

1. Die Konstruktion: ein Benchmark, dessen Lösungschlüssel der Text ist

Der Evaluationskorpus ist ein Juli-2026-Schnappschuss neu veröffentlichter Texte aus öffentlichen Quellen, 14 Kategorien: englische Belletristik, Nachrichten, englische Enzyklopädie, nicht-englische Enzyklopädie, fünf Kategorien wissenschaftlicher Paper (Biologie-Preprints, Informatik, Mathematik, Physik, sonstige) und fünf Code-Kategorien (C++, JavaScript, Markdown, Sonstige, Python)1. Jede Kategorie enthält 500 Samples — insgesamt 7.000 Dokumente. Eine Kuratierungspipeline entfernt zu kurze und anomale Samples, eliminiert Near-Duplikate per MinHash-basierter lokalitätssensitiver Hashing und normalisiert Unicode-Text (NFC) — ein Modell kann den Score also nicht beernten, indem dieselbe Pressemitteilung fünf Hundert Mal komprimiert wird1.

Für die Bewertung wird jedes Sample auf höchstens 3.584 Tokens unter jedem von acht Tokenizern gekürzt; so sieht jedes Modell denselben Text unter einem gemeinsamen Budget — eine bewusste Aussöhnung der Tokenizer-Differenzen, die generationsübergreifende Bit-Vergleiche sonst unvergleichbar macht1. Die Langkontext-Evaluation behält bis zu 32.768 UTF-8 Bytes derselben Dokumente.

2. Die Messung: −log₂ p, geteilt durch Bytes

Die Kompressionsrate des Papers ist die ideale Codelänge aus der arithmetischen Kodierung, keine gegzippte Dateigröße. Für ein Dokument s mit Tokensequenz x₁…x_T unter Modell θ gilt

B_θ(s) = −log₂ p_θ(x₁:T) = −Σₜ log₂ p_θ(x_t | x_(1:t-1)),

also die Next-Token-Cross-Entropy in Bits. Die Normierung auf die UTF-8-Bytezahl n_byte(s) und die Poolung über eine Dokumentsammlung ergibt die berichtete Kompressionsrate:

CR_θ(𝒮) = 100 · Σ_s B_θ(s) / (8 · Σ_s n_byte(s)).

Niedrigeres CR heißt bessere Vorhersage; das Paper berichtet sie als Prozentsatz1. Zwei stille Enthaltungen gehören dazu: Das ist die theoretische Codelänge — endliche Kodier-Overheads und der Speicherbedarf der Modellparameter selbst sind ausgeschlossen —, und jeder Score ist eine Eigenschaft des Paars Modell–Tokenizer, nicht des Modells allein1.

Bevor man den Zahlen des Papers traut, rechne die Arithmetik an einem Spielzeug nach. Die folgende Zelle bewertet einen festen Satz mit einem Ordnung-0- (Bytefrequenz) und einem Ordnung-1-Modell (Byte-Bigramme, Add-One-Glättung) — nur Standardbibliothek, kein Seeding nötig:

python
import math
from collections import Counter, defaultdict
 
# Cell 1 (FINAL) — bpb from cross-entropy, order-0 and order-1 toy models
TEXT = "compression scoring measures prediction, not intelligence"
b = TEXT.encode("utf-8")
n = len(b)
f = Counter(b)
bits0 = sum(-c*math.log2(c/n) for c in f.values())
bpb0 = bits0/n
 
ctx = defaultdict(Counter)
for a, c in zip(TEXT, TEXT[1:]):
    ctx[a][c] += 1
alpha = sorted(set(TEXT))
V = len(alpha)
bits1 = -math.log2(1/V)  # first char uniform
for a, c in zip(TEXT, TEXT[1:]):
    bits1 += -math.log2((ctx[a][c]+1)/(sum(ctx[a].values())+V))
bpb1 = bits1/n
 
print(f"text = {TEXT!r}")
print(f"n_byte = {n}")
print(f"order-0 : code length {bits0:.4f} bits  -> bpb = {bpb0:.6f}  -> CR = {100*bpb0/8:.4f} %")
print(f"order-1 : code length {bits1:.4f} bits  -> bpb = {bpb1:.6f}  -> CR = {100*bpb1/8:.4f} %")

Ausgabe eines echten Laufs (Python 3):

text
text = 'compression scoring measures prediction, not intelligence'
n_byte = 57
order-0 : code length 218.2199 bits  -> bpb = 3.828419  -> CR = 47.8552 %
order-1 : code length 185.1509 bits  -> bpb = 3.248262  -> CR = 40.6033 %

Zwei Erkenntnisse bleiben hängen: (1) CR ist keine exotische Kennzahl — es ist Bits pro Byte, ausgedrückt als Prozentsatz des 8-Bit-Originals (CR = 100·bpb/8), und bpb ist die mittlere Basis-2-Cross-Entropy pro Byte. (2) Zwischen Ordnung 0 und Ordnung 1 hat sich nur der Kontext bewegt — gleicher Text, gleiches Alphabet, 33 Bits weniger —, exakt der Hebel, an dem die Langkontext-Studie des Papers bei echten Architekturen zieht1.

3. Einheitenübersetzung: Was die Prozente des Papers in gzip-Sprache bedeuten

Die Kopfzahlen des Papers liegen im Bereich von 3 bis 10 Prozent — das klingt magisch, bis man umrechnet. Ein CR von 5,328 % heißt: 1.000 Bytes werden in Bits im Wert von 53,28 Bytes kodiert (66,6 Bits je 100 Bytes). Die folgende Zelle übersetzt papiertypische CRs in bpb und in das gzip-übliche „Verhältnis 1:N“ (das Spielzeug-CR oben, rund 40 %, ist absichtlich schrecklich — echte LLMs sind zwei Größenordnungen besser):

python
import math
from collections import Counter
 
# Cell 2 — CR -> bpb -> ratio conversion on paper-typical CRs
for cr in [3.16, 5.328, 6.31, 7.315]:
    bpb = cr*8/100
    print(f"CR {cr:6.3f} % -> bpb {bpb:.4f} -> 1 byte in {bpb:.4f} bits -> ratio 1 : {8/bpb:.3f}")

Ausgabe eines echten Laufs (Python 3):

text
CR  3.160 % -> bpb 0.2528 -> 1 byte in 0.2528 bits -> ratio 1 : 31.646
CR  5.328 % -> bpb 0.4262 -> 1 byte in 0.4262 bits -> ratio 1 : 18.769
CR  6.310 % -> bpb 0.5048 -> 1 byte in 0.5048 bits -> ratio 1 : 15.848
CR  7.315 % -> bpb 0.5852 -> 1 byte in 0.5852 bits -> ratio 1 : 13.671

Gzip-Klasse-Kompressoren liegen bei etwa 2,2 bis 2,9 bpb auf englischen Texten; die 0,25 bis 0,5 bpb eines starken Modells in seinen besten Kategorien sind also grob eine 5- bis 10-fache Verbesserung — das aggregierte, gefittete CR großer Modelle liegt laut Paper bei etwa 5,3 % (0,43 bpb), und die besten Per-Kategorie-Scores der 30B-Klasse in Tabelle 2 erreichen rund 3,16 % (0,25 bpb) auf Code1. Das sind glaubhafte, physische Zahlen — und genau deshalb lohnt es sich, die Messung sorgfältig zu zerlegen.

4. Befunde, gegen das Volltext-Paper nachverifiziert

Skalierung. Über die 80-Modelle-Kohorte folgt das byte-gewichtete CR über alle 14 Kategorien einem Potenzgesetz mit additiver Konstante: CR(P) = a·P^b + c passt mit der aggregierten Schätzung CR(P) = 3,200·P^−0,290 + 5,328, R² = 0,915, RMSE 0,293 Prozentpunkte, mit P in Milliarden Parametern (bei Mixture-of-Experts zählen alle Experten)1. Die Asymptote c ≈ 5,33 zeigt die klassischen abnehmenden Erträge — die gefittete Kurve flacht mit wachsender Größe ab1. Die Pareto-Front nicht dominierter Modelle passt noch enger (3,244·P^−0,304 + 5,016, R² = 0,992)1. Die Fit-Qualität variiert aber je Kategorie: R² reicht von 0,594 für nicht-englische Enzyklopädieartikel bis 0,935 für Biologie-Preprints1 — die Kompressions-Skalierung ist am saubersten, wo der Text am formelhaftesten ist.

Architekturfamilien und Kontext. Die 54-Modell-Langkontext-Studie auf vier wissenschaftlichen Paper-Kategorien ist das originellste Ergebnis, und ihre Zusammenfassung ist eine Steigung. Das Paper fasst Bytepositionen in Intervalle (1–2, 2–4, 4–8, 8–16, 16–32 KiB) und fitet CR = α + β·log₂(Position): β ist der CR-Rückgang in Prozentpunkten je Verdopplung des verfügbaren Kontexts. Für die gleichgroßen Vertreter — Qwen3-8B-Base (Attention), Falcon-H1-7B (Hybrid), RWKV7-G1J-7.2B (rekurrent) — lauten die gepoolten Steigungen −0,426, −0,454 und −0,314, mit totalen CR-Gewinnen von 1,700, 1,807 und 1,266 Punkten vom ersten bis zum letzten Intervall1. Das rekurrente Modell steckt nicht fest — sein absolutes CR verbessert sich weiter —, aber langsamer: RWKVs Vorteil auf frühen Positionen (0,067 Punkte unter Qwen3 im Intervall 1–2 KiB) kippt zu einem Rückstand von 0,367 Punkten bei 16–32 KiB, während Falcon-H1 anders herum kreuzt (0,025 schlechter zu 0,082 besser)1. Der Zerfall ist zudem teilweise ein Trainingsartefakt: ältere RWKV-Checkpoints mit 4.096-Token-Kontexten zerfallen stärker (0,41–0,65 Punkte) als passende 16.384-Token-G1J-Checkpoints (0,33–0,55)1. Wie Kompression mit Kontext besser wird, ist eine Architektur- plus Trainingssignatur — die eigene Rahmung des Papers und ein Befund, den ein statischer Verlust-Benchmark überhaupt nicht sehen kann.

Die MMLU-Korrelation. Alle 80 Modelle liefen zusätzlich auf Zero-Shot-MMLU (14.042 Fragen, höchster Next-Token-Logit unter A–D). Niedrigeres technisches CR — gepoolt über fünf wissenschaftliche und vier Code-Kategorien — ist mit höherer MMLU-Genauigkeit assoziiert bei Spearman ρ = −0,884, Bootstrap-95%-KI [−0,942, −0,783]. Über alle 14 Kategorien gepoolt ergibt sich ρ = −0,871, und jede der neun technischen Kategorien einzeln zeigt ρ zwischen −0,883 und −0,8531. Das Vorzeichen ist erwartbar; ein Modell, das alles besser vorhersagt, weiß von allem mehr. Das Verb des Papers ist „assoziiert“, und es sollte dabei bleiben.

5. Was die Messung nicht sieht: eine Umformulierungs-Demonstration

Die Kompressionsrate ist eine Eigenschaft dieser Bytefolge. Ändere die Formulierung, behalte den Inhalt — und die Messung bewegt sich, oder eben nicht. Die Zelle unten bewertet zwei einsätzigige Dokumente mit demselben Spielzeug-Ordnung-0-Modell; sie behaupten dieselbe Idee auf gleichem Niveau, aber B ist kürzer und anders formuliert:

python
import math
from collections import Counter
 
# Cell 3 — identical content, reworded: bpb moves
def order0_bpb(s):
    b = s.encode("utf-8"); n = len(b); f = Counter(b)
    return sum(-c*math.log2(c/n) for c in f.values())/n, n
A = "compression scoring measures prediction, not intelligence"
B = "compression scoring gauges foresight, not cognition"
for name, s in [("original ", A), ("reworded ", B)]:
    bpb, n = order0_bpb(s)
    print(f"{name}: {n} bytes, bpb {bpb:.4f}, CR {100*bpb/8:.2f} %")

Ausgabe eines echten Laufs (Python 3):

text
original : 57 bytes, bpb 3.8284, CR 47.86 %
reworded : 51 bytes, bpb 3.7760, CR 47.20 %

Gleiche Aussage, gleiches Modell, anderer Score. Das ist kein Bug — CR wurde nie als Maß für Schwierigkeit oder Wahrheit behauptet, sondern für Vorhersagbarkeit —, aber es ist der ehrliche Kern aller folgenden Kritik: Die Messung bewertet die Oberflächenform, und alles, was ein Modell tut, das keine Next-Token-Vorhersage auf dem gesampelten Korpus ist, bleibt unsichtbar.

6. Anti-Hype: vier Wege, eine uncheatable Evaluation zu schlagen

Sie misst Textvorhersage, Punkt. Das Paper sagt es selbst: „compression rate does not capture the instruction-following abilities acquired through post-training“ — das Protokoll ist auf Basismodelle beschränkt, und weder Tool-Nutzung noch Mathematik, noch agentisches Verhalten, noch Langform-Kohärenz gehen in den Score ein1. Ein Modell mit identischer Next-Token-Qualität und wild unterschiedlicher downstream-Nützlichkeit bekäme dasselbe CR. Die MMLU-Verbindung bei ρ = −0,884 schließt diese Lücke nicht: Es handelt sich um eine Korrelation über eine Kohorte von 80 Modellen des Jahres 2026, gepoolt über technische Kategorien; MMLU selbst ist anfällig für Kontamination, und eine Rang-Übereinstimmung lässt den Löwenanteil der MMLU-Varianz an Dingen hängen, die Kompression nicht berührt. Nichts davon zertifiziert CR als allgemeinen Fähigkeits-Proxy.

Kontamination ist nicht beseitigt — sie ist nach oben verschoben. Die Limitations-Abteilung des Papers: „publication dates and model training cutoffs may be incomplete, and models may have seen copies of the same content“1. Text, der im Juli 2026 neu veröffentlicht wird, kann inhaltlich alt sein — syndizierte Agenturmeldungen, Boilerplate-Dokumentation, übersetzte Enzyklopädiefragmente, erneut gepostete Paper, Quelldateien aus langlebigen Repositories. Die MinHash-Near-Duplikat-Entfernung arbeitet innerhalb des Schnappschusses, nicht gegen die Trainingsmengen der Modelle; vor-Schnappschuss-Near-Duplicates rutschen also als „neu“ durch. Ein Modell, das vor seinem Cutoff an C++-Boilerplate erstickt ist, komprimiert Juli-2026-Boilerplate gut, ohne den Schnappschuss je gesehen zu haben. Die Pipeline verengt das Leck; sie schließt es nicht.

Die Korrelation könnte ein Schnappschuss der Pretraining-Datenmischungen sein. ρ = −0,884 wird an einer Kohorte gängiger Basismodelle gemessen. deren Pretraining-Mixe untereinander stark korreliert sind (gemeinsame Web-Crawls, gemeinsame Code-Korpora, gemeinsame Paper-Scrapes) — die CR↔MMLU-Übereinstimmung könnte also teilweise ein gemeinsames 2025er-Datenrezept spiegeln statt eines Fähigkeitsgesetzes. Das Paper kontrolliert das teilweise — CR-Residuen über Texttypen zeigen modellspezifische Fingerabdrücke (paarweise Pearson r = 0,803–0,969 über die fünf Texttypen, wissenschaftliche Paper und Code am stärksten bei 0,969)1 —, aber eine Modellgeneration, die bewusst auf einem anderen Mix trainiert, könnte die Zuordnung brechen, ohne irgendeine Fähigkeit zu verlieren. An einer Datenrezept-Generation gefittete Korrelationen sind exakt das, wovor die Geschichte des Meters selbst warnt.

Die Evaluation zahlt auf rezénz-dichte Pretraining-Wahlen aus. Wenn der Score Kompression von Juli-2026-Text ist, ist der billigste legale Weg, ihn zu bewegen, nicht mehr Fähigkeit, sondern ein verteilungsnäherer Pretraining-Datensatz: aktuelle Nachrichten, frische Preprints, neuen Repository-Code höher gewichten. Ein Anbieter, der die Quellkategorien des Benchmarks monatlich spiegelt, kauft CR-Punkte nach den Regeln ehrlich — und die Regeln können das nicht von Intelligenz unterscheiden. Das Paper weiß, dass das Risiko mit der Zeit wächst — „this contamination risk grows as the dataset ages: new models may train on its public texts, so we must refresh“ den Korpus1 —, was die Erneuerungs-Kadenz, nicht die Methode, zur tragenden Komponente von „uncheatable“ macht.

7. Fazit

Die Kernidee ist solide, alt und endlich maßstäblich operationalisiert: Ein Modell ist ein Kompressor, und frisch veröffentlichter Text ist der eine Testsatz, den ein eingefrorenes Modell nachweislich zum Publikationszeitpunkt nicht gesehen hat. Die Mathematik ist unbestreitbar — CR ist die mittlere Cross-Entropy pro Byte, umskaliert —, und die empirische Arbeit ist besser, als das Abstract verspricht: die Architektur-Kontext-Steigungen und der Trainingskontext-Vergleich sind genuines neues Signal, und die Kuratierungspipeline ist ein echter Versuch, die Farming-Strategien früherer kompressionsbasierter Evaluations abzuwürgen. Auch die Ansprüche sind ehrlicher gefasst als der Titel nahelegt, was den Autoren gut zu Gesicht steht: kein Instruction-Following-Anspruch, kein Post-Training-Anspruch, explizites Rest-Kontaminationsrisiko.

Der Overreach, dem man widerstehen muss, ist die Lesart der Rangliste als Fähigkeitsranking. Es ist ein Vorhersagequalitäts-Ranking auf dem Korpus eines Monats, in Kategorien, mit denen diese 80 Modelle zufällig gefüttert werden — mit einer gemessenen Korrelation zu einem leak-anfälligen Alt-Benchmark und strukturellen Hebeln (Datenmix, Rezenzdichte, syndizierte Near-Duplikate), die den Score bewegen, ohne etwas zu bewegen, das man Intelligenz nennen würde. Nutze es als das, was es ist: die sauberste öffentliche Messung für Next-Token-Vorhersage auf ungesehenem Text — und eine Warnung darüber, was kein statischer Benchmark je liefern kann.

Fußnoten

Footnotes

  1. Tan, Kaifeng; Li, Yudong; Shen, Linlin — Uncheatable Eval: Dynamic Compression-Based Evaluation of Language Models, arXiv:2609.27510, cs.CL, eingereicht am 23. September 2026 (Volltext-HTML v1 verifiziert: 80 Modelle, 14 Textkategorien, je 500 Samples = 7.000 Juli-2026-Dokumente, auf höchstens 3.584 Tokens unter acht Tokenizern gekürzt; Kuratierung mit Qualitätsfiltern, MinHash-Near-Duplikat-Entfernung, NFC-Normalisierung; ideale Codelänge B(s) = -log2 p(x_1:T) (Gl. 2-3), CR = 100·ΣB/(8·Σn_byte) Gl. 4, theoretischer Overhead ausgeschlossen, Scores pro Modell-Tokenizer-Paar; Langkontext: 54 Modelle, vier Paper-Kategorien, bis 32.768 Bytes, Intervall-Steigungen Gl. 6 CR = α + β log2 x mit gepoolt β −0,426 Qwen3-8B-Base Attention / −0,454 Falcon-H1-7B Hybrid / −0,314 RWKV7-G1J-7.2B rekurrent, Gewinne 1,700/1,807/1,266 Punkte, RWKV −0,067 bei 1–2 KiB bis +0,367 bei 16–32 KiB relativ zu Qwen3, Falcon +0,025 bis −0,082, ältere RWKV-Checkpoints mit 4.096-Token-Kontext zerfallen 0,41–0,65 vs 0,33–0,55 bei 16.384-Token G1J; Skalierung CR(P) = aP^b + c, aggregiert 3,200·P^−0,290 + 5,328, R² = 0,915, RMSE 0,293, Pareto-Front 3,244·P^−0,304 + 5,016, R² = 0,992, Kategorie-R² 0,594–0,935, MoE zählt alle Experten, Tab. 6-Mediane z. B. Biologie-Preprints 7,315, C++-Code 4,252, Informatik-Paper 7,720; Zero-Shot-MMLU 14.042 Fragen per A–D-Next-Token-Logit, technisches CR (5 wissenschaftliche + 4 Code-Kategorien) vs. Genauigkeit Spearman ρ = −0,884, KI [−0,942, −0,783], über alle 14 gepoolt ρ = −0,871, je technische Kategorie ρ −0,883 bis −0,853; paarweise Pearson über fünf Texttypen r = 0,803–0,969, Paper–Code 0,969; Limitations wörtlich: Publikationsdaten und Cutoffs unvollständig, Modelle könnten Kopien desselben Inhalts gesehen haben, Kompressionsrate erfasst kein durch Post-Training erworbenes Instruction-Following, Kontaminationsrisiko wächst mit dem Alter des Datensatzes, Erneuerung nötig): https://arxiv.org/abs/2609.27510 ↩ ↩2 ↩3 ↩4 ↩5 ↩6 ↩7 ↩8 ↩9 ↩10 ↩11 ↩12 ↩13 ↩14 ↩15 ↩16 ↩17 ↩18 ↩19 ↩20 ↩21 ↩22