Wunderlandmedia

Ich habe dieselben 732 Entscheidungen dreimal durch Jev geschickt. Es ist nicht deterministisch.

Drei Läufe mit 732 Jev-Entscheidungen: nur 24 Prozent kamen identisch zurück. Was die Drift wirklich kostet und wo ein Schwellwert hingehört.

Kemal Esensoy·aktualisiert am September 19, 2026

Ich habe dieselben 732 Entscheidungen dreimal durch Jev geschickt. Es ist nicht deterministisch.
Künstliche Intelligenz

TypeSafe sagt, Jev sei über mehrere Läufe hinweg stabil. Ich habe das geglaubt. Ich habe es in ein Dokument geschrieben, das ich Kunden vorlegen wollte, als eine der drei Eigenschaften, die das Modell überhaupt interessant machen.

Dann habe ich sechs Cent ausgegeben und nachgemessen. Jev ist nicht deterministisch, und mein Satz behauptete genau das.

Es stimmt nah genug, dass das Dokument weiter Bestand hat. Aber der Unterschied zwischen dem, was ich geschrieben hatte, und dem, was ich gemessen habe, ist genau der Unterschied zwischen einer Behauptung, bei der ein Kunde dich erwischt, und einer, die es übersteht, wenn er nachprüft. Also hier das Ganze: was ich laufen lassen habe, was sich bewegt hat, was es gekostet hat, und wo ich einen Schwellwert heute setzen würde.

Was ich tatsächlich laufen lassen habe

Mein Blog hat 183 veröffentlichte Beiträge. Ich habe ein kleines Skript, bin/jev, das jeden einzelnen davon mit denselben vier Fragen an Jev schickt: steckt hier echte eigene Erfahrung drin, liest sich das maschinengeschrieben, gibt die Meta Description irgendjemandem einen Grund zu klicken, steht im Title vorne das, wonach Leute wirklich suchen.

Alle veröffentlichten Beiträge in einem Durchlauf prüfen statt acht davon zu stichproben

Das sind 732 einzelne Urteile. Ein Durchlauf brauchte 20,1 Sekunden bei acht parallelen Requests, verbrauchte 445.794 Input-Tokens und kostete 0,0187 Dollar. Output-Tokens sind kostenlos, weil es keinen Output gibt. Jev schreibt überhaupt nichts, es gibt Zahlen zurück.

Warum mir das wichtig ist: die alte Version dieser Aufgabe war, während eines SEO-Audits acht Beiträge von Hand zu lesen und zu hoffen, dass mit den anderen 175 alles in Ordnung ist. Bei unter zwei Cent für das gesamte Archiv musste ich Stichproben nicht mehr verteidigen.

Wenn du den trockenen, aber wichtigen Teil dazu willst, wem gehört was du da hochlädst: ich habe alle vier Rechtsdokumente hinter Jev separat durchgearbeitet.

Nur 24 Prozent der Antworten kamen identisch zurück

Ich habe dieselben 732 Entscheidungen dreimal laufen lassen und die Ergebnisse verglichen.

177 Antworten waren über alle drei Läufe hinweg exakt gleich. Das sind 24 Prozent. Die anderen 555 haben sich bewegt.

Bevor du den Tab schließt: viel war es nicht.

Drift zwischen den Läufen Wert
Median 0,010
p90 0,030
p99 0,050
Schlechtester Fall überhaupt 0,070

Sieben Hundertstel, über 732 Entscheidungen, als das Schlimmste was passiert ist. Die Zahl der markierten Beiträge lag bei 56, 56 und 57.

"Gleicher Input, gleiche Antwort" ist also falsch. Jev ist nicht deterministisch in dem Sinn, in dem ich es behauptet hatte. "Gleicher Input, Antwort innerhalb von etwa einem Zehntel" ist richtig, und das ist die Version, die ich hätte aufschreiben sollen. Ein Modell, das 0,72 liefert, dann 0,68, dann 0,71, ist nicht unzuverlässig. Es ist eine Messung mit einer Fehlertoleranz, und ich hatte es wie eine Nachschlagetabelle behandelt.

Das Wackeln sitzt in der Mitte des Wertebereichs

Ein Beitrag mit 0,03 bei eigener Erfahrung kam in allen drei Läufen mit 0,03 zurück. Ein Beitrag mit 0,72 kam im nächsten Lauf mit 0,68 zurück. Die Drift verteilt sich nicht gleichmäßig, und genau das ist der nützliche Teil.

Sichere Antworten bleiben stehen, mittlere Werte wackeln zwischen den Läufen

Wo die Antwort lag Mittlere Drift
Unter 0,15 0,004
0,15 bis 0,40 0,018
0,40 bis 0,70 0,020
0,70 bis 0,85 0,016
Über 0,85 0,007

Wenn Jev sich sicher ist, bewegt es sich kaum. Die sicheren Enden der Skala sind praktisch eingefroren, an beiden Seiten.

Alles was wackelt sitzt in der Mitte, dort wo das Modell sich nicht entschieden hat. Also genau das Verhalten, das du dir wünschen würdest, wenn du es absichtlich so gebaut hättest: die Unsicherheit taucht als Bewegung auf, und zwar an derselben Stelle, an der das Modell dir ohnehin schon sagt, dass es unsicher ist.

Zwölf Entscheidungen sind gekippt, und zehn davon waren mein Fehler

Von 732 Entscheidungen haben 12 einen Schwellwert überschritten und das Urteil geändert. Drift kostet dich nichts, solange sie keine Linie überquert, die dich interessiert, und zwölf Mal hat sie das getan.

Ein Schwellwert im dichtesten Teil der Verteilung kippt Urteile zwischen den Läufen

Zwölf von 732 sind 1,6 Prozent, und ich hätte bei dieser Zahl mit den Schultern gezuckt, wenn ich nicht nachgesehen hätte, welche zwölf.

Zehn der zwölf waren dieselbe Frage: slop_shapes, mein "liest sich das maschinengeschrieben"-Check, mit dem Schwellwert bei 0,70.

Dieser Schwellwert sitzt an der denkbar schlechtesten Stelle. Die slop_shapes-Werte in meinem Archiv reichen von 0,36 bis 0,85 mit einem Median von 0,55, die Verteilung ist also ein einziger zusammengedrückter Klumpen, und 0,70 landet mitten im dicken Teil davon. Dutzende Beiträge liegen innerhalb von 0,03 um die Linie. Eine Drift von 0,02 kippt bei jedem Lauf eine Handvoll darüber, und die Flip-Rate, die ich gemessen habe, ist nicht das Modell, das rumzickt. Sie ist meine Linie, quer durch eine Menschenmenge gezogen.

Die anderen beiden Schwellwerte, beide bei 0,40, sitzen in einer Lücke zwischen zwei Clustern. Die haben je einen Flip produziert.

Setz den Schwellwert in ein Tal, nicht in eine Menge. Sieh dir die tatsächliche Verteilung deiner Werte an, bevor du eine Zahl festlegst, und wenn das Histogramm eine Delle hat, dann gehört der Schwellwert in diese Delle. Das ist keine Jev-Eigenheit. Das gilt für jeden bewertenden Klassifikator, und ich musste bisher schlicht nie darüber nachdenken, weil ich nie 183 Werte auf einmal vor mir hatte.

Eng ist ein besseres Versprechen als deterministisch

Das habe ich im Kundendokument geändert.

Raus: "Es ist deterministisch. Gleicher Input, gleiche Antwort."

Rein: Bewegung unter einem Zehntel ist Rauschen, Bewegung darüber ist ein Befund.

Der zweite Satz ist die schlechtere Marketingzeile und die deutlich bessere Sache zum Verkaufen, aus Gründen, die alle in dieselbe Richtung zeigen. Ein Kunde, der nachprüft, stellt fest, dass die erste Behauptung falsch ist, und damit ist deine Glaubwürdigkeit für den Rest des Termins weg. Die zweite gibt ihm etwas an die Hand, denn eine Vertragsdimension, die über eine Revision hinweg von 0,2 auf 0,7 geht, ist jetzt eindeutig echt, und eine, die sich um 0,03 bewegt hat, eindeutig nicht. Und "hier ist die Fehlertoleranz" ist der Satz, auf den ein technischer Einkäufer bei allem was ihm als KI verkauft wird seit Jahren wartet, und der in seinem LinkedIn-Feed nicht vorkommt.

Mit einem generativen Modell geht das weiterhin nicht. Lass ein LLM zweimal zwei Vertragsversionen vergleichen und du bekommst zwei verschiedene Aufsätze, und mit einem Aufsatz kannst du nicht rechnen. Der ganze Grund, zu einem bewertenden Modell zu greifen, ist, dass 0,7 minus 0,2 eine Zahl ist, die dein Alerting lesen kann.

Was das daran ändert, was du bauen würdest

Nichts auf meiner Liste ist gestorben. Die Produkte, die auf Deltas beruhen, sind schärfer geworden, weil ich jetzt weiß, welche Größenordnung von Delta zählt.

Ein billiges Sieb vor einem teuren Modell

Das Erste, was ich bauen würde, und das Erste, was ich dir vorschlagen würde, ist ein Sieb. Du schickst ohnehin schon einen Haufen Zeug an ein teures Modell. Prüfe alles davon für den Bruchteil eines Cents und lass nur durch, was übrig bleibt. Das kürzt eine Rechnung, die jemand bereits bezahlt, und damit ist es die einfachste Version dieses Gesprächs, die du je führen wirst.

Danach, grob nach Aufwand sortiert:

  • Triage. Eingehende Anfragen routen, jede Bewertung scoren statt einer Quartalsstichprobe, jeden Entwurf gegen die Markenrichtlinien prüfen, an die sich niemand hält.
  • Monitoring und Lückenerkennung. Einen Vertrag scoren, die nächste Fassung scoren, auf die Differenz alarmieren. Oder pro Ausschreibungsanforderung eine Ja-Nein-Frage gegen deinen Antwortentwurf laufen lassen und die Liste der Nullen abliefern. Abwesenheit ist das, was generative Modelle am schlechtesten können, weil sie dir selbstbewusst sagen, die Antwort sei vollständig.
  • Verlauf. Abwanderung zeigt sich in der Steigung der Support-Stimmung Wochen bevor sie sich in einer Kündigung zeigt. Das hier braucht die Stabilität, und jetzt weiß ich, wie viel davon ich habe.
  • Deine eigene Entwicklung. Ein Risiko-Score auf jedem Pull Request, On-Call-Alerts entdoppelt bevor sie jemanden wecken, eine Regressionssuite für deine eigenen Prompts, die nicht selbst driftet während du zu messen versuchst, ob dein Prompt gedriftet ist.

Bei der letzten Gruppe würde ich anfangen, wenn du das diese Woche selbst spüren willst. Kein Einkauf, kein Kunde, und die Daten hast du schon.

Worauf ich es nicht ansetzen würde

Einen Teil davon wusste ich vorher, den anderen habe ich gefunden, indem ich falsch lag.

Es rechnet nicht. Es vergleicht keine Daten, weil es sie als Text liest und nicht als geordnete Größen. Zieh die Bestandteile damit heraus und mach den Vergleich im Code. Es ist nicht gegen Text gehärtet, der geschrieben wurde, um ein Urteil zu manipulieren, also ist alles, was ein Fremder getippt hat, Daten und niemals Anweisung. Es generiert nichts, ein Chatbot darauf ist deshalb ein Kategorienfehler und kein Feature-Mangel. Und für ein Dokument, einmal gelesen, reicht ein Mensch. Der Wert liegt in der Menge, oder darin, dieselbe Frage über die Zeit immer wieder zu stellen.

Der Fehler, den es zu benennen lohnt, ist der, den ich fast gemacht hätte: ein billiges Urteil für ein kostenloses zu halten und es in etwas einzubauen, das gar kein Urteil brauchte. Die Hälfte dessen, was als KI-Automatisierung verkauft wird, ist ein Cronjob mit einem Modell dran, und ein Entscheidungsmodell macht diesen Fehler billiger, nicht schwerer.

Der Teil, den ich nicht gemessen habe

Die Screening-Seite habe ich sauber gemessen, 183 Beiträge, dreimal, Zahlen stehen oben. Das Sieb vor einem produktiven LLM habe ich weder gebaut noch gemessen, die Kostenersparnis oben ist also eine Überlegung und kein Ergebnis. Wenn ich es laufen lassen habe, veröffentliche ich, was dabei herauskommt, auch wenn dabei herauskommt, dass sich das Sieb nicht gelohnt hat.

Das andere, was ich anders machen würde: ich habe meine Schwellwerte gegen einen einzigen Lauf kalibriert, bevor ich irgendetwas davon wusste. Alle vier stammen aus einem Durchgang über das Archiv. Zwei sind aus Glück gut gelandet, einer ist in einer Menge gelandet. Wenn du etwas Ähnliches aufsetzt, lass es dreimal laufen und sieh dir die Streuung an, bevor du dich auf eine Zahl festlegst.

Ich baue so etwas für Kunden auf wunderlandmedia.com, meistens beginnend mit einem Backfill über das Archiv, auf dem sie ohnehin schon sitzen, weil ein Chart der letzten zwei Jahre das Monitoring-Abo besser verkauft als jedes Deck, das ich schreiben könnte.

Wenn dir diese Beiträge helfen: Markiere Wunderlandmedia bei Google als bevorzugte Quelle — dann tauchen meine Artikel häufiger in deinen Suchergebnissen, AI Overviews und im AI-Modus auf.

Als bevorzugte Quelle festlegen

Über den Autor

KE

Kemal Esensoy

Kemal Esensoy, Gründer von Wunderlandmedia, begann seine Karriere als freiberuflicher Webentwickler und Designer. Er führte Web-Design-Kurse mit über 3.000 Studenten durch. Heute leitet er eine preisgekrönte Full-Stack-Agentur, die sich auf Webentwicklung, SEO und digitales Marketing spezialisiert hat.

Jev ist nicht deterministisch | Wunderlandmedia