Nicht-Determinismus wurde in dem Moment zum Wort des Jahres, als GenAI im Mainstream ankam. Es steht in den Präsentationen der Anbieter, in Konferenz-Abstracts und in Stellenanzeigen. Ich habe es selbst auf einer Folie verwendet. Daher weiß ich, dass es dort rein gar nichts zur Sache beigetragen hat.

Ich habe mich für das Wort nicht-deterministisch im Titel entschieden, weil du genau das getippt hättest.

Jetzt möchte ich es dir wieder wegnehmen.

Es ist das ungenaueste von vier Wörtern, die dir zur Auswahl standen. Und das Wort, das du wählst, entscheidet im Hintergrund darüber, welche Tests du schreiben darfst. Die Wahl dieses Wortes kostet dich meistens die guten Tests.

Die vier Wörter, die du hättest verwenden können

Hier sind vier Wortalternativen, die Du stattdessen hättest verwenden können:

Wort

Was es aussagt

DeterministischGleicher Input, gleicher Output, jedes Mal. Du änderst nichts und bekommst dasselbe zurück.
ProbabilistischDas Verhalten wird durch eine Verteilung beschrieben. Du kannst sagen, wie wahrscheinlich jedes Ergebnis ist.
StochastischEs variiert, weil etwas im Inneren zufällig auswählt. Es gibt einen Schritt, der diese Auswahl trifft, und du kannst ihn finden.
Nicht-deterministischGleicher Input, möglicherweise ein anderer Output. Es sagt dir, was nicht versprochen werden kann. Es sagt nichts darüber aus, wie sich die Variation verhält oder wie oft sie auftritt.

Eine ehrliche Anmerkung, bevor diese Tabelle gegen mich verwendet wird. Probabilistisch und stochastisch werden von Leuten, die genau wissen, was sie tun, fast synonym verwendet. Ich werde hier keine scharfe Grenze erfinden, die es in der Praxis gar nicht gibt. Der nutzbare Unterschied liegt darin, worauf das jeweilige Wort zeigt. Denk an einen Würfel. Die sechs Seiten und ihre Eins-zu-sechs-Chancen sind der probabilistische Teil, denn das beschreibt, was herauskommt. Das Werfen ist der stochastische Teil, weil etwas geworfen wird. Ein Würfel, zwei Dinge, über die wir reden können. Weiter geht die Unterscheidung kaum. Wenn dir jemand eine schärfere Grenze anbietet, will er dir etwas verkaufen.

Wichtiger ist, wie die vier zusammenhängen. Deterministisch und nicht-deterministisch bilden die eigentliche Kluft: Entweder liefert derselbe Input denselben Output, oder eben nicht. Probabilistisch und stochastisch beschreiben die Variation, anstatt Systeme auf einen dritten und vierten Stapel zu sortieren. Sie überschneiden sich. Beide können sowohl auf der deterministischen als auch auf der nicht-deterministischen Seite stehen. Ein Zufallsgenerator mit einem festen Seed wählt zufällig aus und liefert bei jedem Durchlauf dieselbe Sequenz: stochastisch und deterministisch zugleich. Welches Wort passt, sagt eher etwas über deinen eigenen Informationsstand aus als über das System. Deshalb können zwei Entwickler auf dasselbe Feature schauen und ehrlich unterschiedlicher Meinung sein.

Betrachte das folgende Diagramm eher als Vereinfachung und nicht als Taxonomie. Ein System kann nicht-deterministisch sein und dabei weder probabilistisch noch stochastisch. Deshalb ist die linke Seite größer als die Formen, die darin liegen. Und die beiden Formen überschneiden sich absichtlich: Etwas kann zufällig ziehen, ohne dass du die Quoten nennen kannst. Und du kannst Quoten für etwas angeben, das niemals zieht. Es ist ein guter Weg, um zu sehen, wie die Wörter zusammenhängen. Es taugt aber nicht dazu, einen Streit darüber zu schlichten, wo das eine Wort aufhört.

[BILD]

Deterministisch ist das andere Ende: gleicher Input, gleicher Output, nichts weiter zu beschreiben. Probabilistisch bedeutet, dass du Zahlen an das hängen kannst, was herauskommt. Stochastisch bedeutet, dass du das Ding sehen kannst, das die Auswahl trifft. Und ein Ding, das du sehen kannst, kannst du auch festhalten. Nicht-deterministisch ist dein Startpunkt: Variation und nichts weiter. Wenn du nicht weißt, wie etwas variiert, weißt du auch nicht, welche Arten von Variation möglich sind. Hier wohnen also die unbekannten Unbekannten.

Mehr Wissen schränkt ein, was der Output sein könnte. Genau das misst der Pfeil. Jeder Schritt nach rechts lässt weniger von der Variation unerklärt. Am ganz rechten Ende bleibt nichts mehr zu erklären.

Das macht nicht-deterministisch zu einem Eingeständnis von Unwissenheit. Manchmal ein ehrliches. Oft ein faules, weil die Struktur direkt da war und niemand hingeschaut hat.

Du bist all dem schon begegnet

Wenn du die Vokabeln beiseite lässt, sollten diese Konzepte im Licht der obigen Erklärung nicht neu klingen. Ein Test, der fehlschlägt, wenn die Uhr Mitternacht passiert, oder auf einer Maschine mit einer anderen Locale, war nie nicht-deterministisch. Die Uhr und die Locale sind Inputs, und du hast sie nicht mitgezählt. Gleicher Input, gleicher Output, sobald du zugibst, was die Inputs waren. Und das ist das meiste von dem, was unter Flakiness abgelegt wird.

Dann gibt es Variation, die tatsächlich von außen kommt. Thread-Scheduling. Welche Instanz hinter dem Load Balancer geantwortet hat. Garbage Collection. Nachrichtenreihenfolge in einem Netzwerk. Eine Datenbank, die einen anderen Query-Plan wählt, weil sich ihre Statistiken ändern. Du kannst all das von deinem Standpunkt aus nicht beschreiben. Da hilft auch genaueres Hinsehen nicht.

Bis vor kurzem konntest du eine ganze Karriere verbringen, ohne dich zwischen diesen Wörtern entscheiden zu müssen. Die Systeme, die du getestet hast, sollten zweimal dieselbe Antwort geben. Variation war also ein Fehler, meistens in deinem eigenen Harness, und der Job bestand darin, sie zu entfernen. Die Ziehung, Verteilungen und Seeds gehörten den Leuten, die das Modell gebaut haben, nicht den Leuten, die das Produkt testeten, in das es eingebaut wurde.

Ein GenAI-Feature verschiebt diese Grenze. Seine Variation ist absichtlich und dauerhaft, und du kannst sie nicht wegkonstruieren, weil der Kunde genau dafür bezahlt. Das Vokabular ist also nicht länger Haarspalterei, sondern entscheidet über deine Teststrategie. Die vier Wörter beschreiben vier verschiedene Orte innerhalb eines Sprachmodells. Wenn du nicht weißt, an welchem Ort dein Problem sitzt, greifst du nach einem Regler, der dort nie angeschlossen war.

Welches davon ist für ein LLM relevant?

Alle vier, an verschiedenen Punkten in der Pipeline. Der Satz "Das Modell ist nicht-deterministisch" wirft sie alle in einen Topf. Und ich gebe zu: Ich bin selbst schuldig, das in der Vergangenheit so formuliert zu haben.

Zwischen deinem Prompt und dem Wort, das du siehst, passieren vier Dinge.

Der Forward Pass verwandelt den Prompt in Logits. Das ist ein Rohwert für jedes Token im Vokabular. Hier passiert nichts Zufälliges. Bei identischen Gewichten, identischem Input und identischer Arithmetik bekommst du identische Werte.

Die Temperatur formt diese Werte in eine Wahrscheinlichkeitsverteilung um. Die Werte werden durch die Temperatur geteilt und dann normalisiert. Ein niedriger Wert schärft also die Spitzen, ein hoher Wert plättet das Feld. Die Temperatur ist ein Regler für die Verteilung. Sie ist kein Zufallsregler. Die meiste Verwirrung in diesem Bereich beginnt mit der Annahme, dass sie genau das wäre.

Top-k und Top-p entscheiden dann, welche Kandidaten im Rennen bleiben. Top-k behält eine feste Anzahl der Höchstplatzierten. Top-p behält die kleinste Gruppe, deren Wahrscheinlichkeiten sich zu p addieren. Die Anzahl der Überlebenden ändert sich also bei jedem Schritt. Immer noch nichts Zufälliges.

Die Ziehung wählt ein Token aus allem, was übrig geblieben ist. Das ist der einzige Zufall in der Pipeline. Der Seed ist das Einzige, was ihn steuert. Fixierst du den Seed, fixierst du den Weg, den der Sampler durch die übergebene Verteilung geht. Halte an diesem letzten Teilsatz fest. Er wiegt schwerer als der Rest des Satzes.

Drehst du die Temperatur auf null, kollabiert die Verteilung auf ein einziges Token. Die Temperatur löscht die Ziehung nicht. Sie hungert sie aus. Die Ziehung ist immer noch da. Sie hält einen Kandidaten in der Hand, und es gibt nichts mehr zu entscheiden.

Streng genommen teilt niemand durch null. Manche Stacks nehmen eine Abkürzung und greifen direkt nach dem Token mit der höchsten Punktzahl. Andere klemmen die Temperatur auf einen sehr kleinen Wert fest und machen mit der Ziehung weiter. Das ist nicht ganz dasselbe. Zwei Token mit fast identischer Punktzahl können von einem Durchlauf zum nächsten immer noch unterschiedlich ausfallen. So oder so hast du den Sampler so weit nach unten gedrückt, wie es der Request zulässt.

Das hinterlässt eine Vorhersage, die jeder überprüfen kann. Wenn die Ziehung ausgehungert ist und keine andere Stufe in der Pipeline eine Wahl trifft, sollte derselbe Prompt bei Temperatur null jedes Mal mit derselben Antwort zurückkommen. Das tut er nicht. Und die Lücke ist nicht klein.

Klären wir die Konzepte mit einer Analogie

Übertragen wir das auf die Website einer Buchhandlung. Der Ladentisch ist nämlich leichter zu sehen als die Pipeline.

Du tippst eine ISBN in das Suchfeld und ein Buch kommt zurück. Es kommt auch morgen zurück. Deterministisch.

Du tippst zweimal "Bücher über Testing" ein und bekommst zwei verschiedene Seiten. Nichts auf der Website verrät dir den Grund. Vielleicht läuft ein Experiment. Vielleicht wurde der Index über Nacht neu aufgebaut. Du kannst es nicht sagen. Und genau dieses Unvermögen ist der ganze Inhalt des Wortes nicht-deterministisch. Es beschreibt deinen eigenen Standpunkt, nicht wie der Laden funktioniert.

Nimm nun an, die Seite gibt zu, dass sie zwischen gleichrangigen Ergebnissen mischt. Und dass dieses Mischen eine Einstellung hat. Du hast den Schritt gefunden, der die Auswahl trifft. Genau das bedeutet stochastisch. Und wenn neben jedem Ergebnis ein Relevanzwert steht, kannst du sagen, wie wahrscheinlich jedes davon das Buch ist, das du meintest. Letzteres ist probabilistisch. Es ist die einzige Version, bei der du eine nützliche Zusicherung schreiben kannst, ohne die Suche 100-mal auszuführen.

Die vier Einstellungen liegen auf demselben Ladentisch.

Die Temperatur bestimmt, wie stark der Laden seinen besten Treffer bevorzugt. Drehst du sie runter, überragt das beste Ergebnis alles darunter. Drehst du sie hoch, drängen sich die Mitläufer nach vorne. So oder so verändert sie die Werte auf der Seite, anstatt irgendetwas auszuwählen.

Top-k ist die Anweisung, niemals mehr als zehn Ergebnisse anzuzeigen. Top-p ist die Anweisung, so viele Ergebnisse anzuzeigen, wie nötig sind, um neunzig Prozent der Relevanz abzudecken. Die Anzahl ändert sich also mit der Suchanfrage. Beide entscheiden, was auf der Seite bleibt.

Der Seed entscheidet, welches der Bücher aus der engeren Auswahl in deinem Korb landet. Von den vieren ist er der einzige, der die Auswahl berührt. Deshalb ist er auch der einzige, den ein fester Wert festnageln kann.

Jetzt zu den Stellen, an denen die Analogie bricht. Denn eine Analogie, deren Ende du nicht siehst, ist schlimmer als gar keine Analogie.

Eine Buchhandlung rankt einmal pro Suche. Ein Modell rankt einmal pro Wort. Und das Wort, das es auswählt, schreibt die Auswahlliste für das nächste Wort neu. Es gibt hier also nicht eine Suche, sondern ein paar hundert, und jede hängt von der vorherigen ab. Der Laden zeigt dir außerdem die ganze Seite. Ein Modell reicht dir ein Ergebnis und wirft den Rest weg, es sei denn, du bittest ausdrücklich darum, ihn zu sehen.

Und die letzte Lücke ist genau die, um die es in diesem Artikel geht. Nichts in einer Buchhandlung ändert dein Ranking, nur weil im selben Moment jemand anderes sucht. In einem Modell auf geteilter Hardware sind die Requests anderer Leute mit deinen im selben Raum. Keine Version des Ladens wird das abdecken. Deshalb habe ich aufgehört zu erklären und angefangen zu messen.
 

Wie weit kommst du?

Determinismus ist eine Reise. Die Richtung lautet Wissen und Kontrolle. Jeder Schritt, den du machst, ist etwas, das du über die Variation gelernt hast. Es ist etwas, das du jetzt festhalten kannst. Probabilistisch und stochastisch sind Namen dafür, wie weit du gekommen bist.

Also habe ich gemessen, wie weit mich die Einstellungen bringen. Ich habe einen Prompt 100-mal an gpt-4.1-mini gesendet, festgenagelt auf einen einzigen Snapshot, bei Temperatur null und mit einem auf 42 fixierten Seed. 30 der 100 Antworten unterschieden sich voneinander.

Nichts in den vier Stufen erklärt das. Die Ziehung ist die einzige von ihnen, die jemals zufällig war. Bei Temperatur null ist sie auf einen einzigen Kandidaten geschrumpft, und es bleibt nichts übrig, was der Seed noch steuern könnte.

Woher der Rest kommt, wie weit nach unten die Einstellungen ihn drücken können und was passiert, wenn du jeden Knopf drehst, den die API dir gibt, ist Thema des nächsten Artikels: Ich habe versucht, ein Sprachmodell dazu zu bringen, sich zu wiederholen. Das ist der mit den Diagrammen.

In diesem hier ging es um das Vokabular. Bevor du dein Feature nicht-deterministisch nennst, lohnt sich eine Frage. Beschreibt dieses Wort das Feature, oder beschreibt es das, was du dir noch nicht angesehen hast?

 

---------------------------------------------------------------------------

Wie das recherchiert und geschrieben wurde

Ich schreibe mit Modellen. Es wäre ein seltsamer Artikel, der für Präzision bei Beweisen argumentiert und dann bei seinen eigenen vage wird.

Claude (Opus 5) half mir, diesen Artikel anhand einer Position zu entwerfen, die ich vorab geschrieben hatte. Diese legte fest, was das Stück argumentiert, was es ablehnt und was es nicht behaupten wird. Claude hat das Experiment durchgeführt und die Diagramme gezeichnet. Sieben weitere Modelle lasen dann den fertigen Artikel und bekamen eine einzige Frage gestellt: Was ist daran falsch. Nicht, wie er verbessert werden kann. Und kein einziges Wort ihrer Prosa wurde verwendet.

Sie haben Dinge gefunden. Einem fiel auf, dass ich den Seed auf eine Weise erklärte, der meine eigenen Messungen widersprachen. Einem anderen fiel auf, dass ich eine geliehene Erklärung so präsentiert hatte, als hätte ich sie gemessen. Ein drittes bemerkte eine gerundete Zahl, die so aussah, als würde sie in der Summe mehr als eins ergeben. Diese Korrekturen stecken in dem, was du gerade gelesen hast. Der Artikel ist dadurch sorgfältiger geworden.

Das ist der Teil, den ich behalten würde, wenn ich sonst nichts behielte. Die nützliche Arbeit war die Kritik, nicht die Generierung.

Ein LLM ist ein komplexes Stück Technologie. Ich versuche, wie die meisten von uns, die Intuitionen und mentalen Modelle zu formen, die diese Komplexität verständlich machen. Diesen Artikel in Zusammenarbeit mit diesen Modellen zu schreiben, die Tag und Nacht mit mir gearbeitet haben, hat dabei enorm geholfen. Einige Dinge sehe ich jetzt klarer. Ich habe ein paar meiner eigenen blinden Flecken überwunden. Ich bin ein Schüler des Testens und der Intelligenz. Und ich habe das Gefühl, dass ich ein paar weitere Schritte in die richtige Richtung des Lernens gemacht habe.

Die Positionen hier sind meine. Und das gilt auch für alles, was daran noch falsch ist.

Mit Dank an Claude und an GPT-5.6 Luna, Gemini 3.1 Pro, Grok 4.5, DeepSeek V4 Pro, GLM-5.2, Kimi K3 und Qwen3.7 Max, die zusammen dafür gesorgt haben, dass dies schwerer zu veröffentlichen und besser zu lesen ist.