Die Idee klingt zu einfach, um zu funktionieren: Ein winziges Modell mit aggressivem Sampling soll kreative Brüche produzieren, ein stärkeres Modell oder ein Mensch soll den useful Teil auswählen. Ich habe es ausprobiert.
Was ich gefunden habe: Es funktioniert. Aber nicht so, wie ich erwartet habe.
Die Grundidee
Was ein kleines Modell nicht sein sollte, ist ein Zufallsgenerator. LLM-Ausgaben sind stochastisch unter Sampling, aber nicht unbefangen. Studien finden systematische Strukturen und vorhersehbare Präferenzen in scheinbar zufälligen Sequenzen, selbst über verschiedene Temperaturen hinweg.1 Für echte gleichverteilte Auswahl, etwa ein Kartenspiel oder eine Genre-Ziehung, sollte man den PRNG des Betriebssystems nutzen und das Modell nur bitten, die gewählte Bedingung zu realisieren.
Was ein kleines Modell stattdessen sein kann, ist eine semantische Würfeltabelle. Ihre Gesichter sind gelernte Assoziationen, nicht äquiprobable Ganzzahlen. Das ändert die Architektur grundlegend.
Das System hat zwei Phasen:
- Divergieren. Das kleine Modell liefert viele kurze Richtungsänderungen unter explorativem Sampling.
- Konvergieren. Ein Rules Engine, der Mensch oder ein stärkeres Modell verwerft inkohärente Vorschläge und integriert einen vielversprechenden.
Trennung von Entropie und Autorenschaft. Das ist der Kern.
Die Experimentiermaschine
Ich habe drei Modelle getestet, GGUF-Format, mit llama.cpp über den lokalen Server:
| Modell | Parameter | GGUF-Quant | Größe | Rolle |
|---|---|---|---|---|
| SmolLM2-135M | 135M | Q4_K_M | ~100 MB | Phrase-Level-Glitch-Orakel |
| Qwen2.5-0.5B | 0.5B | Q4_K_M | ~398 MB | Mutation-Generator |
| Qwen2.5-1.5B | 1.5B | Q4_K_M | ~1 GB | Szene-Planner |
Einige dieser Modelle gibt es auch als Instruct-Varianten. Ich habe base und instruct parallel getestet. Der Befund bestätigt, was andere Studien auch fanden: Base-Modelle sind im Ranking harder zu steuern, aber williger, bekannte narrative Bahnen zu verlassen. Instruct-Modelle produzieren angenehmeren Text, weniger Überraschungen.2
Das ist ein wichtiger Unterschied. Instruction-Tuning und Preference Optimization verengen die Output-Diversität nachweislich. Eine Studie identifizierte DPO als Hauptfaktor, eine andere fand RLHF unter Supervised Fine-Tuning weniger divers.3 Für diesen Zweck lohnt der Vergleich.
Sampling-Presets
Das sind keine Universalempfehlungen. Token-Verteilungen unterscheiden sich je nach Modell, Quantisierung, Prompt und Sampler-Order. Die Presets sind Hypothesen, die man bewerten muss, nicht Canon.
| Preset | Temp | Top-k | Top-p | Min-p | XTC | Verwendung |
|---|---|---|---|---|---|---|
| Basis | 0.8 | 40 | 0.95 | 0.05 | 0 | Normalverhalten etablieren |
| Breit | 1.10 | 100 | 0.98 | 0.03 | 0 | Mehr Optionen ohne gezielte Störung |
| Kontrolliert wild | 1.30 | 0 | 1.0 | 0.04 | 0.20 | Seltsam aber meist verwertbar |
| Anti-Klischee | 1.15 | 0 | 1.0 | 0.03 | 0.35 | Offensichtliche Fortsetzungen unterdrücken |
| Feral Probe | 1.60 | 0 | 1.0 | 0.01 | 0.50 | Sehr kurze Fragmente; hohe Abweisung erwarten |
Ein Beispiel-Request für das kontrolliert-wilde Preset:
curl -s http://127.0.0.1:8080/completion \
-H 'Content-Type: application/json' \
-d '{
"prompt": "SCENE: Mara findet das Observatorium leer nach dem Alarm.\nMUTATION: Füge eine konkrete Tatsache hinzu, die die Geschichte umlenkt, ohne sie zu erklären. Nur ein Satz.\n",
"n_predict": 48,
"temperature": 1.3,
"top_k": 0,
"top_p": 1.0,
"min_p": 0.04,
"xtc_probability": 0.20,
"xtc_threshold": 0.10,
"repeat_penalty": 1.05,
"seed": 184467
}'
Den gleichen Prompt mit 32 bis 64 verschiedenen Seeds laufen lassen und den Seed zu jedem Output loggen. Seeded Generation ist nur reproduzierbar innerhalb der praktischen Grenzen der gleichen Modelldatei, Runtime-Build und Backend-Einstellungen. Man sollte sie als Experiment-Metadata loggen, nicht als portable Identität für ein Ergebnis behandeln.
Die Operatorsprache
Ich habe schnell gelernt, dass man das kleine Modell nicht "schreibe kreativ" bitten darf. Es braucht schmale Operatoren mit kleinem Output-Budget. Nützliche Operatoren:
- Füge ein Objekt hinzu, das die Bedeutung der Szene verändert.
- Benenne, was die Hauptfigur missverstanden hat.
- Ersetze die erwartete Konsequenz durch eine indirekte.
- Benenne ein off-screen-Ereignis, das durch ein physisches Detail sichtbar wird.
- Kombiniere die Szene mit einem unverbundenen Beruf, Ritual, Maschine oder Sozialregel.
- Produziere eine Bedingung statt Prosa: "Kein Dialog; ein fehlendes Werkzeug; jemand lügt durch Präzision."
Kurze Output-Grenzen begrenzen semantischen Verfall. Der Generator sollte in der Regel einen Satz, eine Drei-Felder-Karte oder 20 bis 80 Token zurückgeben, nicht eine ganze Szene. Aggressives Token-Sampling kompiliert Fehler autoregressiv, ein seltsamer früher choice kann nützlich sein, während hunderte nachfolgende sampled Tokens nach Nonsense rationalisieren tendieren.
Ein Produktiv-Pipeline sieht so aus:
story state -> lokalen Entscheidungspunkt extrahieren
-> tiny-model mutations, N=16..64, unabhängige Seeds
-> malformed/duplicate candidates verwerfen
-> nach Neuheit, Relevanz und generativem Potenzial ranken
-> Mensch oder starkes Modell wählt einen aus
-> starkes Modell schreibt/überarbeitet die Szene
Die Schlüsseleinheit ist nicht "eine zufällige Geschichte". Es ist ein Portfolio billiger Perturbationen um einen Entscheidungspunkt herum.
Ergebnisse
Das interessante Ergebnis kommt am Ende: Der Optimum ist nicht das kleinste Modell bei höchster Temperatur. Es ist eher ein 0.5B bis 1.7B base oder leicht aligniertes Modell, das kurze Kandidaten bei moderat hohem Temperatur-Wert produziert, mit einem Tail-Control-Mechanismus und optionaler XTC.
Die 135M-Klasse bleibt interessant als schnelles Phrase-Level-Glitch-Orakel, besonders wenn der Output auf Nouns, Images, Rules oder One-Sentence-Intrusions beschränkt ist. Das Qwen2.5-0.5B war in meiner Testreihe der produktive Sweet Spot: genug Kohärenz für verwertbare Mutationen, genug Unschärfe für Überraschungen.
Weniger erfolgreich war das "wild everything" Ansatz. Maximale Temperatur plus permissive Top-k/Top-p produzierte malformed names, punctuation drift, language switching und lokal plausible aber unbrauchbare Fortsetzungen. Drei Alternativen waren deutlich besser:
- Base model plus moderate sampling: Oft weniger polished und weniger mode-collapsed als ein aligniertes Chat-Model ohne extreme Temperatur.
- Min-p oder locally typical sampling: Versuchen, Filtering an Modell-Konfidenz oder lokale Entropie anzupassen.
- XTC plus moderate Temperatur: Vermeidet gezielt offensichtliche Fortsetzungen statt den gesamten Low-Probability-Tail zuzulassen.
Evaluation
Eine einzelne "Kreativitätszahl" ist wertlos. Was zählt, ist "useful surprises per second" oder "useful surprises per 100 samples", nicht raw Entropy.
Für den praktischen Test habe ich fünf verschiedene kreative Operatoren verwendet und pro Konfiguration mindestens 32 Kandidaten generiert. Scored habe ich auf vier Achsen:
| Achse | Frage | Messung |
|---|---|---|
| Gültigkeit | Hat es die angeforderte Form eingehalten? | Pass/Fail |
| Kohärenz | Ist es lokal verständlich? | 1 bis 5 |
| Neuheit | Ist die Richtung nicht offensichtlich? | Pairwise Human Rating |
| Nutzbarkeit | Könnte ein Schriftsteller es entwickeln? | 1 bis 5 |
Feral Presets maximieren Oberflächendiversität, produzieren aber fast keine verwertbaren Ideen. Ein Anti-Klischee-Preset mit XTC bei 0.35 produzierte die meisten sprachlich überraschenden Output, von denen 60 Prozent aber grammatikalisch oder semantisch unbrauchbar waren.
Was ich jetzt mache
Ich habe ein System gebaut, das so läuft:
externer PRNG wählt Operator -> tiny model mutation (0.5B base, T=1.1, XTC=0.2) -> 16 Kandidaten -> Mensch wählt 1 -> stärkeres Modell schreibt die Szene
Das 0.5B-Qwen-Modell läuft lokal, braucht rund 1.2 Sekunden pro Kandidat bei 48 Token Output. Für 16 Kandidaten sind das unter 20 Sekunden. Der Mensch braucht länger. Die 135M-Variante ist mit unter einer Sekunde pro Kandidat spürbar schneller, aber ihre Output sind so fragmentarisch, dass sie vor der Auswahl durch einen Parser gefiltert werden müssen.
Die Maschine steht auf meinem Schreibtisch. Sie produziert keine guten Geschichten. Aber sie produziert gute Brüche. Und ein guter Bruch, richtig platziert, kann eine ganze Szene retten.
Anmerkungen
"Heads, Tails, and AI Fails: LLMs, Randomness, and Human Judgments", "Deterministic or probabilistic? The psychology of LLMs as random number generators"