Kev-4B (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-4B (Qwen3.5): Im gesperrten Test erreicht es außerhalb der Domäne 0.832 gegenüber 0.806 für dieses Modell auf denselben Items. Gewichte:
jaredpalmer/kev-4b@qwen3.
Kev-4B 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-4B-Base und bedient den öffentlichen /v1/systemone-Vertrag von TypeSafe.
Der empfohlene Kev. Der beste 4B-Checkpoint unter einem eingefrorenen, prüfsummierten Protokoll nach ~40 kontrollierten 4B-Versuchen und der erste Kev innerhalb von sieben Punkten von Jev außerhalb der Domäne auf denselben Items. Dasselbe Rezept mit drei Seeds ausgeführt: Transfer 0.773 / 0.790 / 0.770; dieser Checkpoint ist der auf der Development-Partition ausgewählte Seed (niemals auf dem gesperrten Test).
- Hub:
jaredpalmer/kev-4b, Revisionstagqwen3(Versuchv7-rc3/01-trial-1); die main-Revision des Repos enthält jetzt den Qwen3.5-Checkpoint - Code, Suites, jeder Versuch mit Hashes und gepaarten Bootstraps: github.com/jaredpalmer/kev —
PLAN.md(vollständige Aufzeichnung am Git-Tagresearch-archive-2026-09-24),runs/leaderboard.md
Ergebnisse (für jede Zeile dieselben eingefrorenen Items)
| Kev-0.5B (Prototyp) | Kev-0.6B | Kev-4B | Jev | |
|---|---|---|---|---|
| In-Distributions-Genauigkeit (decision-v4 dev, 1,200 q) | 0.712 | 0.801 | 0.854 | 0.845 |
| Out-of-Domain-Genauigkeit (transfer-v4 dev, 560 q) | 0.561 | 0.620 | 0.790 | 0.857 |
| Out-of-Domain-Brier | 0.50 | 0.536 | 0.328 | 0.211 |
| Sichere Fehler außerhalb der Domäne (p ≥ 0.9 und falsch) | – | 10.8% | 8.2% | 3.7% |
| Zurückgehaltene Policy-Strukturen, beide Geschwister korrekt | – | 0.08 | 0.73 | 0.86 |
| Optionsreihenfolgen-Kipprate | 0.21 | 0.07 | 0.06 | 0.00 |
Out-of-Domain-Genauigkeit pro Quelle (Kev-4B / Jev): QNLI 0.89 / 0.93, SciQ 0.99 / 0.99, TweetEval-offensive 0.75 / 0.81, PAWS 0.72 / 0.79, MMLU 0.65 / 0.90, Emotion 0.66 / 0.59, deadline (3-stufige Datumsarithmetik) 0.53 / 0.93, (A and B) or not C 0.97 / 0.97, if A then not B else C 0.88 / 0.78.
Seeds: drei Seeds auf decision-v7: Transfer 0.773 / 0.790 / 0.770, zurückgehaltene Regelpaare 0.62 / 0.73 / 0.67 (Jev 0.86); dieser Checkpoint ist Seed 1, ausgewählt nach der Development-Transfer-Genauigkeit. 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-4b-v7-preview-ungated/): In-Distribution 0.856 (Brier 0.211), Out-of-Domain 0.806 (Brier 0.294, sichere Fehler 6.6%, zurückgehaltene Paare 0.66). 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: Im Beispiel aus den TypeSafe-Docs („two charges on my card” → Is there a billing problem?) antwortet dieser Checkpoint mit 0.48 (Kev-8B 0.95, Kev-0.6B 0.97), während er den Rücksendegrund korrekt wählt (falsche Größe 0.53; Kev-8B 0.84; Kev-0.6B bevorzugt “none of the above” 0.58). Miss an deinen eigenen Eingaben.
- Out-of-Domain-Wahrscheinlichkeiten sind brauchbar, aber nicht kalibriert (rohes ECE 0.096); eine In-Domain gefittete Temperatur überträgt sich nicht.
- 4B fp32 braucht ~16 GB; auf einem 32-GB-Mac verwende
KEV_DTYPE=bf16. Die Latenz auf einer H100 beträgt ~45 ms pro gepackter Anfrage; auf einem M5 mehrere hundert ms.
Training
Eingefrorene Suite evals/v4/decision-v4: 10,000 öffentliche Datensätze (1,000 pro Quelle, zehn Quellen) 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 (~40 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-4b --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.