Dokumentation

Kev-8B (Qwen3)

Vorherige Generation (Qwen3). Dieser Checkpoint bleibt als schnelle Option auf Apple Silicon erhalten (sein reines Attention-Backbone führt den gepackten Vorwärtspass mit voller Geschwindigkeit auf MPS aus). Für Genauigkeit und Kalibrierung verwende Kev-9B: Im gesperrten Test erreicht es außerhalb der Domäne 0.837 gegenüber 0.780 für dieses Modell auf denselben Items. Gewichte: jaredpalmer/kev-8b.

Kev-8B ist ein Entscheidungsmodell: ein Dokument (der Zustand) und eine Menge typisierter Fragen hinein, eine Wahrscheinlichkeitsverteilung pro Frage heraus, in einem einzigen Vorwärtspass. Keine Textgenerierung. Es ist ein LoRA-Adapter (r=16) plus ein Pointer-Head auf Qwen/Qwen3-8B-Base (Revision 49e3418f) und bedient den öffentlichen /v1/systemone-Vertrag von TypeSafe.

Der genaueste Kev. Der beste Checkpoint jeder Größe unter einem eingefrorenen, prüfsummierten Protokoll: beste In-Distributions-Genauigkeit, beste Out-of-Domain-Genauigkeit (0.796 auf transfer-v4 dev, sechs Punkte von Jev entfernt), bestes zurückgehaltenes Regel-Reasoning jedes Kev bei 8B. Dasselbe Rezept mit zwei Seeds: 0.796 / 0.774; dieser Checkpoint ist der auf der Development-Partition ausgewählte Seed.

  • Hub: jaredpalmer/kev-8b (dieses Repo; Versuch v7-final/00-trial-0)
  • Code, Suites, jeder Versuch mit Hashes und gepaarten Bootstraps: github.com/jaredpalmer/kev — PLAN.md (vollständige Aufzeichnung am Git-Tag research-archive-2026-09-24), runs/leaderboard.md

Ergebnisse (für jede Zeile dieselben eingefrorenen Items)

Kev-0.5B (Prototyp) Kev-0.6B Kev-4B Kev-8B Jev
In-Distributions-Genauigkeit (decision-v4 dev, 1,200 q) 0.712 0.801 0.854 0.863 0.845
Out-of-Domain-Genauigkeit (transfer-v4 dev, 560 q) 0.561 0.620 0.790 0.796 0.857
Out-of-Domain-Brier 0.50 0.536 0.328 0.337 0.211
Sichere Fehler außerhalb der Domäne (p ≥ 0.9 und falsch) – 10.8% 8.2% 9.9% 3.7%
Zurückgehaltene Policy-Strukturen, beide Geschwister korrekt – 0.08 0.73 0.69 0.86
Optionsreihenfolgen-Kipprate 0.21 0.02 0.00 0.00 0.00

Out-of-Domain-Genauigkeit pro Quelle (Kev-8B / Jev): QNLI 0.91 / 0.93, SciQ 1.00 / 0.99, TweetEval-offensive 0.79 / 0.81, PAWS 0.78 / 0.79, MMLU 0.70 / 0.90, Emotion 0.56 / 0.59, deadline (3-stufige Datumsarithmetik) 0.60 / 0.93, (A and B) or not C 0.91 / 0.97, if A then not B else C 0.59 / 0.78.

Seeds: zwei Seeds auf decision-v7: Transfer 0.796 / 0.774, zurückgehaltene Regelpaare 0.69 / 0.64 (Jev 0.86); dieser Checkpoint ist Seed 0. Trainiert auf decision-v7 (10k öffentliche Datensätze + 896 Policy-Datensätze über neun Template-Familien inkl. vier ordinaler Score-Schwellenfamilien + 1,680 Datensätze aus 60 zufälligen Regelstrukturen mit Negation an beliebiger Stelle); Development-/Test-Items sind byte-identisch zu v4, daher ist jede Zahl hier mit früheren Checkpoints vergleichbar.

Gesperrter Test, einmal gelesen (runs/locked/kev-8b-v7-preview-ungated/): In-Distribution 0.870 (Brier 0.193), Out-of-Domain 0.780 (Brier 0.327, sichere Fehler 7.6%, zurückgehaltene Paare 0.62). Diese Partition wird für diesen Checkpoint nicht erneut gelesen.

Was wir beim Bauen gelernt haben

  • Kapazität dominiert außerhalb der Domäne. Bei gleichem Budget an öffentlichen Beispielen und synthetischen Daten ist 0.6B → 4B +14–19 pp; 4B → 8B ist +1–7 pp.
  • Feinabstimmung erodiert die Fähigkeit der Basis, und die Lernrate steuert das. Die 4B-Basis erreicht zero-shot mit einem Buchstaben-Readout 0.688 auf denselben MMLU-Items und 0.787 auf PAWS; das Standardrezept (lr 2e-4) trainierte auf 0.60–0.66 / 0.56–0.71 herunter. Die Lernrate auf 5e-5 zu senken holt das meiste davon zurück und ist die größte einzelne Rezeptverbesserung, die wir gefunden haben; weniger LoRA-Zielmodule und kleinere Ränge helfen weniger.
  • Mehr öffentliche Trainingsdaten heben die In-Distributions-Genauigkeit und senken den Transfer bei 4B (10k vs. 3.4k Datensätze: −3 pp). Wissens-MCQ-Quellen (ARC, OpenBookQA, CommonsenseQA) heben die In-Distributions-Genauigkeit auf 0.86, ohne den Transfer zu bewegen.
  • Programmatische kontrastive Policy-Paare lehren die trainierten Regelstrukturen (both-correct 0.85–1.0), übertragen sich aber nur teilweise auf ungesehene Strukturen (0.5–0.6 bei 4B, 0.03–0.11 bei 0.6B).

Bekannte Grenzen

  • Zurückgehaltenes Policy-Reasoning (ungesehene Regelkompositionen, Datumsarithmetik mit Kulanzfristen) ist weit von Jev entfernt.
  • Produktförmige Fragen ohne Trainingsanalogon sind nicht garantiert; miss an deinen eigenen Eingaben.
  • Out-of-Domain-Wahrscheinlichkeiten sind brauchbar, aber nicht kalibriert (rohes ECE 0.128); eine In-Domain gefittete Temperatur überträgt sich nicht.
  • 8B fp32 braucht ~33 GB und passt nicht auf einen 32-GB-Mac; KEV_DTYPE=bf16 (~17 GB) passt. Das Training dauerte ~70 min auf einer H100.

Training

Eingefrorene Suite evals/v6/decision-v6 (Development-/Test-Bytes identisch zu v4): 13,000 öffentliche Datensätze (1,000 pro Quelle: die zehn v4-Quellen plus ARC-Challenge, OpenBookQA, CommonsenseQA) plus zwei programmatische Policy-Arme mit 448 Datensätzen, zwei Epochen, LoRA r=16 auf Attention- und MLP-Projektionen, Pointer-Head von Grund auf, Cross-Entropy auf der Optionsverteilung, lr 5e-5 (OneCycle), effektiver Batch 8, bf16-Autocast mit fp32-Master-Gewichten, Gradient Checkpointing, eine H100 (~70 min). Augmentierung: Optionspermutation, None-of-the-above-Einfügung, Distraktoren, None-Minimalpaare bei 25% der Choice-Datensätze. Es wurden keine Jev-Ausgaben für das Training verwendet.

Evaluationsprotokoll

Development-Partitionen wählen Modelle aus; die gesperrte Test-Partition wird höchstens einmal pro Kandidat gelesen. Jede Zahl trägt Suite-Hash, Code-Hashes und Git-Commit in result.json. Siehe PLAN.md am Git-Tag research-archive-2026-09-24 („Evidence and corrections”) für die Korrekturen, die wir an unseren eigenen früheren Behauptungen vorgenommen haben.

Verwendung

uv run --extra serve python -m kev.serve --run jaredpalmer/kev-8b --port 8008      # KEV_DTYPE=bf16 on a 32 GB Mac

Jeder TypeSafe-kompatible Client funktioniert: TypeSafeClient(api_key="local", base_url="http://127.0.0.1:8008", model="kev-latest").

Lizenz

Apache-2.0 für den Adapter und den Head; die Qwen3-Basis steht unter Apache-2.0; Datensätze tragen ihre eigenen Lizenzen.