Vor allen Messungen dieser Serie die Grundregeln. Nicht weil Regeln interessant wären, sondern weil ein Benchmark ohne sie eine Zahl ist, die niemand nachprüfen kann — und mir ist lieber, Sie können mir widersprechen.
Alles hier ist der feste Aufbau. Die Seite Wie ich messe führt dasselbe in seiner jeweils aktuellen Fassung, samt allem, was ich nach diesem Text noch dazulerne; wo beide auseinandergehen, hat die Seite recht.
Zwei Maschinen, eine gemeinsame Grafikkarte
Jede Messung läuft zweimal, auf zwei Hosts, die sich ein GPU-Modell teilen — nicht einmal den Platinenhersteller — und sonst fast nichts. Der eine ist eine Windows-Workstation mit angeschlossenem Monitor, reichlich RAM und einer Desktop-CPU. Der andere ein Linux-Container ohne Bildschirm auf einem Proxmox-Knoten, mit einem Bruchteil des Speichers und weniger Kernen. Dieselbe RTX 3090, die eine von EVGA und die andere von Zotac, dieselbe Ollama-Version, alles andere verschieden.
Das ist Absicht. Ein Ergebnis, das nur auf einer Kiste gilt, ist kein Ergebnis, sondern eine Anekdote über diese Kiste. Gehen die beiden auseinander, ist genau das der Befund und bekommt einen eigenen Abschnitt, statt weggemittelt zu werden.
Eine Folge davon sollte man vorher kennen: der angeschlossene Monitor belegt VRAM, bevor überhaupt ein Modell geladen ist. Bei jedem Modell, das nicht bequem in 24 GB passt, schiebt die Workstation deshalb mehr davon auf die CPU als die Kiste ohne Bildschirm. Wie es im Auftakt dieser Serie stand: Diese Klippe ist das Erste, was man prüft, bevor man irgendetwas anderem die Schuld gibt — und sie ist der Grund, warum die beiden Hosts bei gleichem Seed berechtigterweise verschiedene Antworten liefern können.
Was bewertet wird und was nicht
Nur das, was ein Skript gegen eine feste Antwort prüfen kann. Parst das JSON. Zeigt der Anker auf eine ID, die es im Dokument gibt. Ist die Summe exakt der Betrag, den ich vorher von Hand ausgerechnet habe. Trägt jede Aussage den Belegmarker, den die Aufgabe verlangt hat.
Es gibt keine Note dafür, ob sich der Text gut liest. Das kann ich nicht messen. Ein zweites Sprachmodell, das das erste benoten soll, kann es auch nicht — dieser Weg holt sich die Streuung eines zweiten Modells ins Ergebnis und verkauft sie als Zahl, was schlimmer ist als gar nicht zu messen, weil es nach Strenge aussieht.
Diese Strenge hat einen Preis, und ich nenne ihn lieber, als ihn zu verstecken: Die Benchmarks belohnen das Befolgen von Anweisungen. Sie können nicht sagen, mit welchem Modell sich angenehmer arbeiten lässt, und sie setzen gelegentlich ein pedantisches Modell über ein klügeres. Eine schmale Aussage, die hält, schlägt eine breite, die es nicht tut.
Die Regeln, die eine Zahl überleben muss
- Feste Parameter, sonst ist der Vergleich nicht gepaart. Kontextgröße und maximale Antwortlänge sind auf beiden Hosts festgenagelt. Bevor irgendein Unterschied zwischen beiden berichtet wird, werden die Prompt-Token-Zahlen gegeneinander geprüft. Stimmen die nicht überein, sind die Läufe nicht vergleichbar und es gibt nichts zu berichten.
- Ein verworfener Aufwärmlauf vor der Messung. Ändert man die Kontextgröße, lädt die Laufzeitumgebung das Modell neu; die erste gemessene Bedingung trüge sonst die Ladekosten und sähe langsam aus, aus einem Grund, der mit der Bedingung nichts zu tun hat.
- Prefill-Zahlen gelten als verdächtig. Wiederholt man einen Prompt, bedient ihn der Cache; die gemeldete Prefill-Rate beschreibt dann übersprungene Arbeit statt Geschwindigkeit. Wo Prompts unvermeidlich einen gemeinsamen Anfang haben, wird Prefill schlicht nicht berichtet. Der Generierungsdurchsatz bleibt in beiden Fällen gültig.
- Jede Anfrage wird beim Abschluss als Rohsatz weggeschrieben, und jede veröffentlichte Zahl wird aus diesen Rohsätzen neu gerechnet — nie aus einem Laufprotokoll oder einer Zusammenfassung abgelesen.
- Drei Seeds bei Temperature 0, damit kein Modell von einer glücklichen Antwort getragen wird. Für alles Zeitbezogene Mediane statt Mittelwerte.
- An die Token-Grenze zu stoßen ist keine falsche Antwort. Ein Modell, dem der Platz ausgeht, hat nicht schlecht geantwortet, sondern nicht zu Ende. Solche Fälle werden gezählt und gesondert gekennzeichnet, statt still ans Tabellenende zu sinken.
- Denkmodi sind abgeschaltet. Wo ein Modell einen hat, beschreiben die Zahlen es mit abgeschaltetem Denkmodus. Das ist eine echte Einschränkung und wird überall dort wiederholt, wo sie zählt, statt hier vergraben zu werden.
Korrigiert am 03.08.2026: Die drei Durchgänge stimmen, die Begründung nicht. Nachgemessen wirkt der Seed bei keinem der geprüften Modelle — fünf verschiedene Seeds liefern denselben Text wie fünf Wiederholungen desselben Seeds. Was abweicht, ist genau ein Lauf je Gruppe, und zwar immer der erste (111 von 111 Fällen). Drei Durchgänge sind also drei Wiederholungen und keine Seed-Variation. An den Messwerten ändert sich nichts. Dieser Hinweis steht seit dem 02.08. in den übrigen Beiträgen; hier war er ausgeblieben.
Korrigiert am 02.08.2026: Der Schalter steuert nicht, ob gedacht wird. Bei qwq:32b sind die Ausgaben mit und ohne think byteidentisch; bei deepseek-r1:14b bleibt die Zahl erzeugter Token exakt gleich (1402) und nur die Denkblöcke wandern aus dem Antworttext heraus. Für gemma4:26b (562 → 1261 Token) und qwen3:8b (730 → 1448) wirkt er wie erwartet. Die Einschränkung „mit abgeschaltetem Denkmodus gemessen“ gilt also nicht pauschal für alle Modelle. An den Messwerten ändert sich nichts. Zahlen am 03.08.2026 berichtigt: die beiden Paare verglichen versehentlich verschiedene Aufgaben (Planung gegen Rätsel, Rechnung gegen Planung). Richtig sind 562 → 1261 und 730 → 1448; an der Aussage ändert sich nichts.
Die Ausgaben lesen, nicht nur die Punktzahlen
Das ist die Regel, die mir die meiste Arbeit machen wird. Eine Prüfroutine ist Software und kann auf eine Weise falsch sein, die genau so aussieht wie ein schlechtes Modell. Sie kann etwas verlangen, was die Aufgabe nie gefordert hat. Sie kann eine richtige Antwort nicht erkennen, weil das Modell sie anders verziert hat. Beide Fehlerarten erzeugen eine selbstbewusste Zahl und einen falschen Schluss.
Also: Keine Prüfroutine bewertet einen Lauf, bevor ich sie gegen echte Antworten gegengelesen habe, und jede erzeugte Ausgabe wird vollständig aufbewahrt. Keine Stichprobe — alle. Ist eine Punktzahl hier falsch, existiert der Beleg dafür, und Sie können ihn von mir haben.
Wenn ich mich irre
Der Auftakt dieser Serie hat etwas zugesagt: Widerspricht ein späterer Artikel einem früheren, gewinnt der spätere, und beide sagen es dazu. Das hier ist der Unterbau dieser Zusage. Korrekturen kommen in den ursprünglichen Artikel und nicht stillschweigend in einen neuen, und der Grund für die Korrektur wird benannt.
Mir ist eine kleinere Aussage lieber, die ich verteidigen kann, als eine größere, die ich zurücknehmen muss. Die Erfahrung sagt, dass ich beides trotzdem tun werde.