Kooperationen

Verändert FP8 die Antworten eines Modells? Ein Kipper bei 120

mit Anagha Langhe · selbst gehostetes LLM auf einer NVIDIA L4

In einer halben Minute

Anagha Langhe betreibt ein Sprachmodell selbst, auf einer einzigen NVIDIA-L4-Karte, und wollte wissen, ob die Umstellung auf FP8 Genauigkeit kostet. Bei 120 Fragen erreichten die beiden Varianten 72 und 71 Treffer. Das allein sagt wenig, also haben wir die Kipper gezählt: eine Frage hat sich geändert, und zwar zugunsten von bf16. 49 Antworten waren Wort für Wort identisch, und wenn beide Varianten falsch lagen, gaben sie in 42 von 48 Fällen dieselbe falsche Antwort. Anagha ließ ein offenes Vergleichsskript auf ihren eigenen zwei Läufen laufen, bekam exakt dieselben Zahlen und zog ihren eigenen Schluss: Die Fehler kommen aus dem Retrieval, nicht aus der Quantisierung.

Die Frage

Ein Modell in FP8 statt in bf16 laufen zu lassen, halbiert ungefähr den Speicherbedarf, und genau deshalb tut man es auf einer einzelnen GPU. Die Sorge ist simpel: Macht das kleinere Format die Antworten unbemerkt schlechter?

Anagha hat es direkt gemessen. Sie stellte beiden Varianten dieselben 120 Fragen und schrieb das auf LinkedIn auf: 72 richtig in bf16, 71 in FP8, ein exakter McNemar-Test mit p = 1,0. Im selben Beitrag teilte sie eine weitere Zahl aus ihrem Setup, nämlich dass die Trefferquote des Prefix-Cache von 12 % auf 26 % stieg.

72 gegen 71 sieht nach „kein Unterschied“ aus. Bei 120 Fragen kann ein solcher Test aber nur einen großen Einbruch ausschließen. Ein Verlust von drei oder vier Punkten würde wahrscheinlich trotzdem nicht signifikant werden. Interessant ist also nicht der p-Wert, sondern was mit jeder einzelnen Frage tatsächlich passiert ist.

Wer was gemacht hat

  • Anagha hat das Setup gebaut, beide Varianten auf denselben 120 Fragen laufen lassen, die Antworten bewertet und später den Vergleich auf ihren eigenen Dateien ausgeführt.
  • Wir (Vadym Chernets) haben sie gefragt, wie viele Fragen in welche Richtung gekippt sind, dann einen kleinen compare-Modus in ein offenes Skript eingebaut, das wir zur Prüfung der Übereinstimmung von Modellen pflegen, und aus ihrer Zusammenfassung das Intervall und die Planungszahlen berechnet.
  • Anaghas Lauf dieses Skripts auf ihren vollständigen Daten lieferte dieselben Zahlen, dazu eine, die wir aus der Zusammenfassung nicht sehen konnten: wie oft sich die beiden Varianten auf dieselbe Weise geirrt haben.

Wie die Zahlen aussehen

120 Fragen für beide dieselben bf16 72 richtig FP8 71 richtig 71beiderichtig 1nur bf16richtig 0nur FP8richtig 48beidefalsch Von den 48 beidseitig falschen: 42 dieselbe falsche Antwort · 6 verschiedene
Jede der 120 Fragen landet in einem von vier Feldern. Nur eines liegt abseits der Diagonale. Die meisten gemeinsamen Fehler sind exakt dieselbe Antwort.
1 von 120Fragen kippten zwischen den beiden Varianten, zugunsten von bf16
49Antworten kamen Wort für Wort identisch zurück
42 von 48gemeinsame Fehler waren dieselbe falsche Antwort
Messgröße Wert
Genauigkeit, bf16 72 / 120
Genauigkeit, FP8 71 / 120
Kipper: nur bf16 richtig / nur FP8 richtig 1 / 0
Exakter McNemar-Test p = 1,0
Differenz bf16 − FP8 +0,8 Punkte, 95-%-Intervall etwa −2,3 bis +4,6
Identische Antworten, Wort für Wort 49 von 120
Beide falsch, mit derselben falschen Antwort 42 von 48

So liest man das. Ein Kipper ist völlig vereinbar damit, dass FP8 nichts kostet. Es ist aber kein Beweis, dass es nichts kostet: Ein Rückgang um ein paar Punkte passt noch ins Intervall. Bei weniger als sechs Kippern kann ein exakter McNemar-Test nie p < 0,05 erreichen, egal in welche Richtung sie fallen; hier sind also die Kipper selbst und das Intervall die nützlichen Zahlen. Um einen Rückgang von einem Punkt zu sehen, bräuchte man etwa 800 Fragen, selbst wenn alle Kipper in dieselbe Richtung gingen.

Die 42 von 48 haben uns überrascht. Wäre die FP8-Variante einfach verrauschter, würden ihre Fehler streuen. Stattdessen stolpern beide Varianten über dieselben Fragen und landen bei derselben falschen Antwort. In Anaghas Worten passt das zu „meiner Lesart, dass die Fehler aus dem Retrieval kommen, nicht aus der Quantisierung“: Ist der abgerufene Kontext schlecht, lesen beide Varianten denselben schlechten Kontext und sagen dasselbe.

Probier es an deinen eigenen Läufen aus

Wenn du zwei Läufe auf denselben Fragen als JSONL hast (eine Frage-ID, die Antwort und entweder ein Feld correct oder eine Gold-Datei), ist der Vergleich ein einziger Befehl. Er gehört zum offenen Repository memory-agreement-check, MIT-Lizenz, ohne Abhängigkeiten:

git clone https://github.com/vadimchernets/memory-agreement-check
cd memory-agreement-check
python -m memcheck compare bf16.jsonl fp8.jsonl --label-a bf16 --label-b FP8

Eine Zeile pro Frage sieht so aus:

{"qid": "q001", "answer": "Paris", "correct": true, "category": "factual"}

Es gibt die 2×2-Tabelle aus, den exakten McNemar-Test, das Intervall für die Genauigkeitsdifferenz, wie viele Antworten identisch sind, wie oft beide Läufe übereinstimmen und beide falsch liegen, und, falls deine Fragen eine Kategorie haben, eine Aufschlüsselung danach. Mit --md report.md wird der Bericht gespeichert.

Was das zeigt und was nicht

  • 120 Fragen reichen, um zu sehen, dass FP8 dieses Modell nicht ruiniert hat. Sie reichen nicht, um einen Rückgang von ein oder zwei Punkten auszuschließen.
  • Der Test behandelt die Fragen als unabhängig. Stammen viele aus einem Dokument oder von einer Vorlage, ist die echte Stichprobe kleiner als 120.
  • „Die Fehler kommen aus dem Retrieval“ ist Anaghas Deutung ihres eigenen Systems. Die 42 von 48 stützen sie; sie direkt zu prüfen hieße, dieselben Fragen einmal mit gutem und einmal mit schlechtem Kontext zu beantworten.

Wie es weitergeht

Anagha hat zugestimmt, dass ihr FP8-gegen-bf16-Check als durchgerechnetes Beispiel ins Repository kommt, mit ihrem Namen, damit die nächste Person, die zwei Varianten vergleicht, einen echten Fall als Ausgangspunkt hat und nicht nur einen synthetischen.

Zeitverlauf

  1. Anagha postet ihren FP8-Check auf LinkedIn: 71 gegen 72 von 120, McNemar p = 1,0. Wir kommentieren, dass die Zahl der Kipper mehr sagt als der p-Wert. Sie antwortet, und wir fragen, wie viele Fragen in welche Richtung gekippt sind.
  2. Ihre Antwort: genau eine, bf16 richtig und FP8 falsch, keine in die andere Richtung, und 49 der 120 Antworten Wort für Wort identisch. Über Nacht bekommt das offene Skript seinen compare-Modus, und wir schicken ihr das Intervall und die Planungszahlen, berechnet aus ihrer Zusammenfassung.
  3. Anagha lässt es auf ihren eigenen zwei Läufen laufen: Die Zahlen stimmen exakt überein, und wenn beide Varianten falsch lagen, gaben sie in 42 von 48 Fällen dieselbe falsche Antwort. Sie stimmt dem durchgerechneten Beispiel zu.

← Alle Kooperationen · Eine Kooperation vorschlagen