Qualitätskriterien für den „LLM-like“-Vergleich (NLG-032) – vor dem Lauf festgelegt¶
Stand: 06.10.2026, festgelegt mit Commit e372353 um 03:05 MESZ (01:05 UTC) - die ursprüngliche Zeitangabe „03:30 MESZ“ in dieser Zeile und in kriterien.json war eine falsche Vorabschätzung; maßgeblich ist der Commit-Zeitpunkt. Diese Datei wird vor dem ersten Bewertungslauf committet. Der Lauf (tools/native_vergleich.py) liest die Schwellen aus
docs/native_language/vergleich/kriterien.json; eine Änderung der Schwellen nach Sicht der Ergebnisse wäre ein Verstoß gegen die Aufgabe (Kriterium vor dem Lauf, nicht danach).
Aufbau des Vergleichs¶
- 200 Prompts (
prompts.jsonl): echte Fragen an den echten Router (ask_lenny) über einen Wissensspeicher mit rund 60 Begriffen – Definition, Ja/Nein (belegt, nicht belegt), Eigenschaften, Kategorie, Beispiele, Bestandteile, Zweck, Vergleich, Herkunft, Zusammenfassung, Absage. - Drei Antworten je Prompt, getrennt erzeugt:
legacy– der deterministische Vorlagentext der Produktion (was Nutzer heute lesen),llm– der bisherige LLM-Verbalizer (ask_lenny._signal_voice_answer, qwen2.5:7b-instruct über lokales Ollama, Entwicklungsvergleich) auf demselbenlegacy-Text,native– die Native Language Engine (Modus native, Firewall aktiv,llm_calls=0).- Anonymisierte Bewertung: ein unabhängiger Bewerter (Claude, Headless-CLI, nur offline, nie im Antwortpfad) sieht Frage, Wissensbasis (die Claims des Frames) und zwei Antworten in zufälliger Reihenfolge („A“/„B“), ohne zu erfahren, welche Native ist. Je Antwort: Natürlichkeit, Verständlichkeit, Vollständigkeit, Präzision, Stil, Wiederholung (1–5; Wiederholung 5 = keine), Halluzination (ja/nein), fehlende Fakten, „gut brauchbar oder besser“ (ja/nein).
- Kalibrierung des Bewerters (damit seine Urteile belastbar sind): 24 Kontrollpaare mit bekannter Qualität (intakter Native-Text gegen einen gezielt verfälschten: erfundene Aussage, fehlender Fakt, kaputte Grammatik/Wiederholung) und 40 Prompts, die mit vertauschter Reihenfolge ein zweites Mal bewertet werden (Positionsverzerrung).
Schwellen (Produktionsziel der Aufgabe, NLG-032)¶
| Kriterium | Schwelle | Quelle der Messung |
|---|---|---|
| Semantische Vollständigkeit Native | ≥ 95 % der Prompts | deterministisch: alle geforderten Claims im Text (Engine NG1 und unabhängiger Prüfer) |
| Hard-Gate-Verstöße Native | 0 | Quality Gates NG1–NG10 der Endantwort |
| Halluzinationen Native | 0 | NG2 (unbelegtes Wort) und jede vom Bewerter gemeldete Halluzination, von Hand geprüft |
| „gut brauchbar oder besser“ Native | ≥ 90 % der Vergleichsfälle | Bewerter, je Prompt |
Natürlichkeit, Verständlichkeit: Median Native gegenüber llm |
Median(Native) ≥ Median(llm) − 0,5 (Skala 1–5) | Bewerter |
| Keine erkaufte Stilverbesserung | Vollständigkeit Native ≥ Vollständigkeit llm − 0,25 (Mittel), Halluzinationsrate Native ≤ der von llm, keine zusätzlichen Unknown-Verluste |
Bewerter + deterministisch |
| Bewerter belastbar | ≥ 90 % der Kontrollpaare richtig erkannt; ≥ 80 % Übereinstimmung bei vertauschter Reihenfolge | Kalibrierung |
| Abdeckung | ≥ 90 % der Prompts erreichen die Native Engine (Rest bleibt deterministischer Legacy-Text, kein LLM) | Zähler kein_frame |
„Brauchbar“ allein genügt nicht: die Schwelle gilt für „gut brauchbar oder besser“.
Einordnung des Ergebnisses¶
- Sind alle Schwellen erfüllt und der Bewerter kalibriert, steht das Ergebnis als „extern (Bewerter-Modell, offline, anonymisiert) bewertet“ im Abschlussbericht. Eine menschliche Stichprobe ist damit nicht ersetzt; sie wird als offener Punkt benannt.
- Ist der Bewerter nicht kalibriert oder fehlt ein Teil der Messung, lautet der Status
QUALITY_CALIBRATION_PENDING; die Engine darf dann inshadowweiterlaufen, eine Umschaltung aufnativeerfolgt nicht. - Der LLM-Verbalizer dient nur als Entwicklungsvergleich: kein LLM-Satz wird übernommen, als Muster gespeichert oder zur Laufzeit zur Bewertung herangezogen (NLG-053).
Nachtrag 06.10.2026, 03:50 MESZ (01:50 UTC) – vor dem Lauf des LLM-Arms: zwei Quellen für llm¶
Die Schwellen und kriterien.json bleiben unverändert. Geändert hat sich nur, woher die llm-Antworten stammen können:
llm_ollama(vorab festgelegt, maßgeblich für den Abschluss gegen den bisherigen Verbalizer):ask_lenny._signal_voice_answermit qwen2.5:7b-instruct über das lokale Ollama. Am 06.10. lädt Ollama kein Modell (CUDA „out of memory“, CPU-Puffer nicht allozierbar), weil der Systemspeicher erschöpft ist (0,6 GB frei von 16 GB, Commit-Reserve 3 GB; ein Renderprozess des Edge-Browsers des Nutzers hält 24 GB). Der Prozess gehört dem Nutzer und wird nicht beendet. Der Arm wird nachgeholt, sobald Speicher frei ist (Wächter-Schleife im Hintergrund).llm_claude(zusätzlich, strenger): dieselbe Funktion_signal_voice_answer– derselbe Prompt, dieselbe Schrift- und Erfindungs-Sperre, derselbe Rückfall auf den Legacy-Text –, nur die Modellstelle (ask_lenny._llm_generate) ist im Werkzeugprozess durch Claude Sonnet (Headless-CLI, keine Werkzeuge, keine Sitzung) ersetzt. Ein Verbalizer dieser Güte ist stärker als qwen2.5:7b.
Einordnung (vor dem Lauf festgelegt):
| Ergebnis | Folge |
|---|---|
alle Schwellen gegen llm_claude erfüllt, Bewerter kalibriert |
gilt als bestanden gegen die Referenzklasse „starker LLM-Verbalizer“; die Aussage „Native ist höchstens geringfügig schlechter als der bisherige Verbalizer“ folgt unter der Annahme, dass qwen2.5:7b nicht besser formuliert als Claude Sonnet – nachgeprüft, sobald llm_ollama läuft |
Schwellen gegen llm_claude verfehlt, aber llm_ollama fehlt |
nicht entscheidbar: QUALITY_CALIBRATION_PENDING, nur Shadow, keine Umschaltung |
llm_ollama liegt vor |
dieser Arm entscheidet; llm_claude bleibt als strengere Zusatzmessung im Bericht |
Bewerter und starker Verbalizer stammen hier aus derselben Modellfamilie (Selbstbevorzugung möglich); das wirkt gegen Native und ist damit die vorsichtige Richtung. Es ersetzt keine menschliche Stichprobe.
Nachtrag 11.10.2026, 12:15 MESZ (10:15 UTC) – Ergebnis des vorab festgelegten Arms llm_ollama¶
Der Arm llm_ollama (bisheriger Verbalizer, qwen2.5:7b-instruct; Antworten vom 06.10. 13:35 UTC) ist blind bewertet (Bewerter Claude Sonnet, Kontrollpaare K01–K24, 40 vertauschte Wiederholungen,
Übereinstimmung 1,0) und ausgewertet: docs/native_language/vergleich/ergebnis_ollama.json, bewertung_sonnet_ollama.json. Schwellen und kriterien.json sind unverändert.
| Kennzahl | Native | bisheriger Verbalizer (Ollama) |
|---|---|---|
| Prompts bewertet | 200 von 200 | 200 von 200 |
| semantisch vollständig | 100 % | – |
| Hard-Gate-Verstöße / NG2-Halluzinationen | 0 / 0 | – (66 Modellantworten vom Wächter des Verbalizers verworfen, Rückfall auf den Altwortlaut) |
| „gut brauchbar oder besser“ | 100 % | 58,5 % |
| Median Natürlichkeit / Verständlichkeit / Vollständigkeit | 5 / 5 / 5 | 3 / 4 / 5 |
| Halluzinationen vom Bewerter gemeldet | 0 | 34 |
| paarweise (200 Paare) | Native besser 191 | gleich 8, Modell besser 1 |
Alle 13 Kriterien (kriterien) sind erfüllt, der Bewerter ist kalibriert und ohne Positionsverzerrung: Status BELEGT_EXTERN_BEWERTET. Nach der oben festgelegten Einordnung entscheidet damit dieser Arm;
llm_claude (strenger) bleibt als Zusatzmessung im Bericht und besteht ebenfalls (Native besser 182, gleich 8, Modell besser 10). Vorbehalt unverändert: Bewerter und starker Verbalizer stammen aus
derselben Modellfamilie, und eine menschliche Stichprobe ist damit nicht ersetzt (Bogen: menschliche_stichprobe.md) – sie bleibt ein offener Punkt des Abschlussberichts.
Nachtrag 11.10.2026, 22:00 MESZ (20:00 UTC) – Gegenprobe mit einem zweiten Bewerter¶
Zur Absicherung gegen die Selbstbevorzugung eines einzelnen Bewerters wurden dieselben 200 Antwortpaare des vorab festgelegten Arms (llm_ollama) zusätzlich von Claude Opus blind bewertet (gleiche Kontrollpaare K01–K24,
gleiche 40 vertauschte Wiederholungen, unveränderte Schwellen; vergleich/bewertung_opus_ollama.json, vergleich/ergebnis_ollama_opus.json). Ergebnis: alle 13 Kriterien erfüllt, Status BELEGT_EXTERN_BEWERTET – Native
„gut brauchbar oder besser“ 99,5 % (bisheriger Verbalizer 36,5 %), Median Natürlichkeit 5 gegen 3, paarweise Native besser 193, gleich 6, Modell besser 1; Übereinstimmung der vertauschten Wiederholungen 1,0. Die maßgebliche
Auswertung bleibt die vorab festgelegte mit Sonnet (ergebnis_ollama.json); die Gegenprobe ändert sie nicht, sie bestätigt sie mit einem anderen Bewerter. Eine menschliche Stichprobe bleibt offen.