Der Code besitzt den Schwellenwert, das Modell gibt nur eine Wahrscheinlichkeit
Stelle ein paar hundert echte Projekte nebeneinander, und das stabilste gemeinsame Merkmal ist dieses:
Das Modell antwortet „wie wahrscheinlich”. Dein Code antwortet „ist das genug”.
Das ist keine Stilpräferenz. Es ist die einzige sichere Schlussfolgerung aus der Tatsache, dass selbstberichtete Konfidenz nicht vertrauenswürdig ist — und dahinter steht eine unabhängige Messung in Kann man den Wahrscheinlichkeiten trauen.
Wie das konkret aussieht
Choice und Score geben eine Antwort mit einer angehängten confidence zurück; Noul gibt
direkt eine Wahrscheinlichkeit von 0 bis 1 zurück. Die Schnittstelle selbst trifft keine
Entscheidung für dich — der Schwellenwert gehört dir. In echten Projekten wird das sehr
konkret:
- Ein auf einem Cloudflare Worker laufender Profanitätsfilter behält seinen Schwellenwert, seine
max()-Aggregationspolitik und sein öffentliches OpenAPI-Schema alle im eigenen Code des Workers. Das Modell ist nur eine Funktion, die er aufruft. - Eine Browser-Erweiterung, die Kommentare ausblendet, hält 0.85 / 0.7 / 0.5 in der Erweiterung fest und bleibt ausgeblendet, wenn die Prüfung fehlschlägt — diese Präferenz ist ebenfalls Teil der Schwellenwert-Politik.
- Ein Incident-Triage-Tool definiert „jemanden alarmieren” als
P(SEV1) + P(SEV2) ≥ 0.80, und diese 0.80 lebt in seiner eigenen Konfiguration, nicht im Modell.
Alle drei teilen eine Eigenschaft: tausche das Modell aus, und der Schwellenwert bewegt sich nicht; justiere den Schwellenwert neu, und das Modell bewegt sich nicht. Gibst du den Schwellenwert an das Modell, werden diese beiden Dinge eins — und dann bedeutet „meinen Schwellenwert tunen” einen Prompt bearbeiten.
Warum das Prinzip wichtig ist
Weil es zwei Arten von Fehlern getrennt hält:
- Das Modell hat schlecht geantwortet — ändere die Frage, ändere den Zustand, ändere das Modell.
- Der Schwellenwert ist schlecht gesetzt — ändere die Zahl im Code.
Vermische sie, und „die Genauigkeit reicht nicht” könnte beides sein, ohne Möglichkeit zu sagen, was. Das Triage-Tool kann 0.80 direkt in die Konfiguration schreiben, gerade weil diese Zahl für sich überprüft werden kann.
Das Gegenbeispiel, das du kennen musst
Das Prinzip ruht auf einer Annahme: dass die Zahl, die du erhältst, eine kalibrierte Wahrscheinlichkeit ist.
Eine unabhängige Nachrechnung ergab, dass die für Score-Fragen zurückgegebene confidence häufig
nur der Nachkommateil des score ist, wobei diese Ausgaben dicht geclustert sind (121 davon).
Das ist nicht „das Modell ist konfident” — es sieht aus wie ein aus dem score selbst abgeleiteter
Wert.
Der Unterschied ist wichtig:
- Wenn es eine kalibrierte Wahrscheinlichkeit ist, stützt 0.85 eine Argumentation wie „ich werde in etwa 85% der Fälle wie diesem richtig liegen”.
- Wenn es eine Funktion des score ist, bedeutet 0.85 nur „dieser hat hoch gepunktet” und sagt nichts darüber, wie oft er richtig ist — und einen Schwellenwert darauf zu setzen bedeutet, eine Hürde für eine Zahl ohne probabilistische Bedeutung zu setzen.
Getrennt davon prüfte ein unabhängiger Messbericht die selbstberichteten Felder des Modells gegen die Ground Truth und fand die Werte weit weniger granular, als die Beschreibung nahelegt (siehe Öffentliche Kritik).
Was man stattdessen tun sollte
Drei Schritte, und die Reihenfolge ist wichtig:
- Verwende den Schwellenwert operativ, nicht semantisch. Ob 0.8 „80% korrekt” bedeutet, ist unwichtig. Wichtig ist, ob auf deinen Daten die Fälle über 0.8 messbar genauer sind. Das kannst du gegen ein Holdout prüfen.
- Passe den Schwellenwert auf deinen eigenen Labels an. Genau dafür gibt es Werkzeuge: Nimm deine gelabelten Daten, passe den Schwellenwert pro Frage an, der deine Zielgenauigkeit erreicht, validiere auf einem Holdout — und lass die CI fehlschlagen, wenn ein Modell-Update einen festgeschriebenen Schwellenwert bricht.
- Lege den Schwellenwert in Code und gib ihm ein Überprüfungsdatum. Schwellenwerte laufen mit Modellversionen ab, genau wie Preise. Es ist etwas, das ein Mensch erneut anschauen muss, nicht etwas, das man einmal festlegt.
In einem Satz
Die Vertrauenswürdigkeit des Modells sollte sich in deinem Schwellenwert zeigen, nicht in seiner eigenen berichteten Zahl. Die erste kannst du auf deinen eigenen Daten messen; die zweite kannst du nicht messen.