Dokumentation

Kev-27B

Modellzusammenfassung

Kev-27B ist ein Entscheidungsmodell. Es liest ein Dokument (den Zustand) und eine Menge typisierter Fragen darüber und gibt eine kalibrierte Wahrscheinlichkeitsverteilung über die mit jeder Frage gelieferten Optionen zurück, in einem einzigen Vorwärtspass und ohne Text zu erzeugen. Es ist für Entwickler gedacht, die Dokumente von bis zu 64k Token klassifizieren, routen, triagieren oder prüfen und Wahrscheinlichkeiten brauchen, die sich als Schwellenwert nutzen lassen, etwa um unsichere Fälle zur menschlichen Prüfung zu schicken. Es implementiert die öffentliche System One API von TypeSafe (POST /v1/systemone), sodass das TypeSafe-SDK unverändert damit funktioniert. Diese Karte beschreibt Version 2, veröffentlicht am 2026-09-30: ein Full-Weight-Fine-Tune von Qwen3.8-27B, gemittelt mit Version 1.

Modelldetails

Entwickler Jared Palmer (github.com/jaredpalmer/kev)
Modelltyp Entscheidungsmodell: ein kausales Sprachmodell-Backbone, nur als Prefill ausgeführt, mit einem Pointer-Head über die Optionen
Backbone Qwen/Qwen3.8-27B (Revision 1d4bf0f2, Qwens nachtrainierte Veröffentlichung): 64 Schichten, 48 Gated DeltaNet (lineare Attention) und 16 volle Attention, Hidden Size 5,120; jedes Backbone-Gewicht feinabgestimmt
Head Pointer-Head: zwei 5,120 → 256-Projektionen bewerten das Schluss-Token jeder Option gegen das finale Token der Frage; ein Softmax liefert die Wahrscheinlichkeiten
Parameter 25.6B im Backbone (Vision Tower, LM Head und Multi-Token-Prediction-Schichten werden nicht geladen), 2.6M im Head
Präzision bf16 (ein 51.3-GB-Checkpoint); in bf16 bedient
Kontext Zustände von bis zu 65,536 Token werden bedient, plus mindestens 8,192 Token pro Frage. Trainingszustände waren höchstens 32,768 Token.
Validierte Kontextlänge 65,536 Token (siehe Lange Dokumente)
Kalibrierung Eine Temperatur, T = 1.32, in head.pt gespeichert und beim Laden angewandt
Sprachen Englisch
Lizenz Apache-2.0 (Gewichte und Head); das Basismodell steht unter Apache-2.0
Version v2 (Kev 1.0), veröffentlicht am 2026-09-30 auf main von jaredpalmer/kev-27b
Frühere Version v1, ein Rank-16-LoRA-Adapter auf derselben Basis (T = 1.38), am Tag v1-lora; seine Karte ist die README an diesem Tag

Eingabe. Ein Zustand (Text oder ein JSON-Objekt oder -Array, als beschrifteter Text gerendert) und beliebig viele benannte Fragen, jede von einem von drei Typen:

Typ Optionen Ausgabe
choice 1–255 benannte Optionen, jede mit einer optionalen Beschreibung eine Wahrscheinlichkeit pro Option, die wahrscheinlichste Option und eine Konfidenz
score 1–255 geordnete Stufen eine Wahrscheinlichkeit pro Stufe und der erwartete Stufenindex
noul Ja / Nein, mit optionalen Beschreibungen die Wahrscheinlichkeit für Ja

Jede Frage wird als ihre eigene Zeile beantwortet, die vom geteilten Zustand fortfährt, sodass Fragen sich nicht gegenseitig beeinflussen können; der Zustand wird einmal berechnet und gecacht.

Beabsichtigte Verwendungen

  • Typisierte Entscheidungen über Dokumente: Klassifikation, Routing, Triage, Extraktionsentscheidungen, Policy- und Berechtigungsprüfungen und Beurteilung einer vorgeschlagenen Antwort gegen angegebene Kriterien.
  • Workflows, die auf Konfidenz reagieren: die sicheren Fälle automatisieren und den Rest in die Warteschlange stellen, mit Schwellenwerten, die an einer beschrifteten Stichprobe der eigenen Arbeitslast des Nutzers fixiert werden.
  • Ein selbst gehosteter Drop-in-Ersatz für einen System-One-Endpunkt.

Verwendungen außerhalb des Umfangs

  • Textgenerierung, Chat, Zusammenfassung oder offene Fragebeantwortung. Das Modell bewertet nur die Optionen, die ihm gegeben werden.
  • Vollautomatische Entscheidungen mit rechtlichen, medizinischen, finanziellen, beschäftigungsbezogenen oder ähnlichen Folgen für Menschen, ohne menschliche Prüfung.
  • Fragen, deren Antwort von Fakten abhängt, die nicht im Zustand und kein Allgemeinwissen sind (das Modell kann nichts nachschlagen), und wissensintensive Prüfungen (siehe Grenzen).
  • Zustände länger als 65,536 Token, andere Sprachen als Englisch und Hardware unterhalb einer GPU der 80-GB-Klasse oder einem Mac mit etwa 96 GB Speicher (siehe Grenzen).

Verwendung

Bediene es mit dem Kev-Repo auf einer B200, H200 oder H100 80 GB. Die Gewichte belegen 51 GB und der Server etwa 65.5 GB resident; ein 64k-Token-Zustand erreichte einen Peak von 87.1 GB auf einer H200 und ein 32k-Token-Zustand 78.7 GB, sodass die längsten Zustände mehr als 80 GB brauchen.

git clone https://github.com/jaredpalmer/kev.git && cd kev && uv sync --extra serve
uv run --extra serve python -m kev.serve --run jaredpalmer/kev-27b --port 8008          # v2 (this card)
uv run --extra serve python -m kev.serve --run jaredpalmer/kev-27b@v1-lora --port 8008  # v1

Auf Apple Silicon bedient derselbe Befehl über MLX (automatisch gewählt) und lädt die vollständigen bf16-Gewichte so, wie sie gespeichert sind, ohne dass etwas gemerged wird. Dieser Pfad sollte auf einem 96–128-GB-Mac funktionieren, wurde in dieser Größe aber noch nicht ausgeführt (siehe Grenzen).

from typesafe_sdk import Choice, Noul, TypeSafeClient

client = TypeSafeClient(api_key="local", base_url="http://127.0.0.1:8008", model="kev-latest")
response = client.system_one(
    state="I was charged twice for order 1182. Please refund one of the charges.",
    questions={
        "team": Choice(instructions="Which team should handle this?",
                       criteria={"billing": "Charges and refunds", "shipping": "Deliveries", "returns": "Exchanges"}),
        "urgent": Noul(instructions="Does this need a reply today?"),
    },
)
print(response.choices["team"].choice, response.nouls["urgent"].noul)

Die kalibrierte Temperatur wird standardmäßig angewandt; KEV_TEMPERATURE=1.0 gibt die rohen Wahrscheinlichkeiten zurück. Der Server verwendet bf16, fusionierte DeltaNet-Kernels und CUDA-Graphen; KEV_DTYPE=fp32 wählt den exakten Pfad, der zur Evaluation verwendet wird.

Trainingsdaten

Eine Epoche über einen privaten Korpus von 145,840 Datensätzen (337,130 Fragen) mit Zuständen von höchstens 32,768 Token. Nur sein Manifest ist öffentlich (evals/sft-v2-r22/manifest.json im GitHub-Repo).

Komponente Datensätze Inhalt und Labels
Kev-Korpus 78,786 Das Trainingsset von Kev-27B v1 (zehn öffentliche Klassifikationsdatensätze, generierte Policy- und Regel-Datensätze, Datumsarithmetik- und Fehlende-Evidenz-Fälle, lange Zustände mit vergrabenen Fakten); die Trainings-Splits von Kevs Skill- (hard-v1), Entwickler-Tooling- (devtools-v1) und Verbraucherbeschwerden- (documents-v1) Suites; 24 öffentliche Datensätze auf je 500 Datensätze begrenzt; sieben generierte Familien (lange Dokumente, Tool-Routing, Retrieval, Intent, Rubric-Beurteilung, Abstention, numerisches Reasoning)
Lizenzierte Aufgabenfamilien 24,000 119 Aufgabenfamilien aus einer öffentlichen Multi-Task-Sammlung, mit Lizenzen, die kommerzielle Nutzung erlauben, und nativen Labels; die Familienliste wird nicht veröffentlicht
Lange Zustände 3,200 Kev-Korpus-Zustände, eingebettet in 8k–32k-Token-Dokumente; Labels exakt geerbt
Lange Dokumente 7,617 Von Code zusammengestellte Dokumente, Labels von Code berechnet
Out-of-Domain-Entscheidungen 7,312 Generierte Entscheidungen in unterschiedlichen Domänen
Tonalität 7,544 Minimalpaare desselben Textes, ruhig, frustriert oder wütend geschrieben
Prompt Injection 2,699 Erkennen indirekter Prompt-Injection (defensiv)
Agent-Sitzungen 4,875 Fragen zu code-generierten Agent-Sitzungs-Logs
PII 4,152 Klassifizieren von per Code eingefügten persönlichen Daten (alle fiktiv)
Grounding 5,655 Ob eine Behauptung durch ein Dokument gestützt wird

Quellen und Labels. Die öffentlichen Datensätze sind in den Metadaten dieser Karte aufgeführt; zwei Entwickler-Tooling-Quellen, CodeReviewer und FlakeFlagger, stammen von Zenodo, und CodeReviewer-Diffs werden nur aus permissiv lizenzierten Projekten behalten. Generierter Text und Labels stammen aus Code oder aus offenen Gewichtungsmodellen (GLM-5.3, DeepSeek-V4-Pro, Inkling, Mistral Large 3, gpt-oss-120b, MiMo-V2.6-Pro). Die Verbraucherbeschwerden-Labels stammen aus offenen Gewichtungsmodellen, gefiltert durch Judges geschlossener Modelle und Adjudikation. Es wurde keine Ausgabe von Jev (TypeSafes gehostetem Entscheidungsmodell) verwendet.

Lizenzen. Vier der begrenzten öffentlichen Datensätze sind Share-Alike: ARC (CC-BY-SA-4.0), HotpotQA (CC-BY-SA-4.0), Natural Questions (CC-BY-SA-3.0) und SNLI (CC-BY-SA-4.0); die anderen sind CC-BY-4.0, MIT oder Apache-2.0. Die CFPB-Beschwerdeerzählungen sind Werke der US-Regierung. GLM-5.3s Lizenz ist MIT-artig mit einer Bedingung für sehr große Model-as-a-Service-Betreiber. Lizenzen, Revisionen und Attributionen pro Quelle sind in den Komponenten-Manifesten festgehalten.

Kontaminations-Screening. Vor dem Training wurde jeder Datensatz gegen 102 Evaluationspartitionen (76,549 Referenz-Items) geprüft: jede eingefrorene Kev-Suite, das private Evaluationsset, JevBenchs öffentliche Items und die untenstehenden reinen Evaluations-Suites. Ein Datensatz wurde bei einer exakten normalisierten Zeichenkettenübereinstimmung, einer Wort-8-Gramm-Jaccard-Ähnlichkeit über 0.2 oder einer Containment von mindestens 0.5 entfernt; 6,388 Trainingsdatensätze wurden entfernt.

Trainingsverfahren

  1. Full-Weight-Feinabstimmung. Eine Epoche von Qwen/Qwen3.8-27B auf 8 NVIDIA H200 GPUs (FSDP2). AdamW (β 0.9 / 0.999, Weight Decay 0.01) mit fp32-Master-Gewichten und -Momenten über einem bf16-Backbone; Lernrate 2e-6 für das Backbone und 1e-4 für den Head, One-Cycle-Zeitplan mit 10 % Warm-up; Gradientennorm auf 1.0 geklippt; 128 Datensätze pro Optimizer-Schritt (8 pro GPU, 2 Akkumulationsschritte), 1,140 Schritte; Seed 0. Der Verlust ist Cross-Entropy über die Optionen jeder Frage (Soft-Targets, wo die Daten sie haben). Die Optionsreihenfolge wird gemischt, und “none of the above”-Optionen und Distraktoren werden zufällig eingefügt. Ein Viertel der Choice-Datensätze mit Zuständen von höchstens 8,192 Token ergibt zusätzlich ein Minimalpaar: die Frage mit einer “none of the above”-Option, einmal mit vorhandener richtiger Option und einmal mit entfernter. Jeder Zustand wird einmal ausgeführt, und seine Fragen verzweigen von ihm.
  2. Gewichtsmittelung. Jeder Backbone-Tensor ist 0.85 × das feinabgestimmte Gewicht + 0.15 × v1s Gewicht (v1s LoRA-Adapter in fp32 in die Basis gemerged), in fp32 berechnet und einmal auf bf16 gerundet. Der Pointer-Head des feinabgestimmten Modells wird behalten. Das Verhältnis wurde unter sechs Blends (0.85 / 0.70 / 0.50, mit jeweils einem der beiden Heads) auf Development-Daten gewählt.
  3. Kalibrierung. Eine einzige Temperatur, T = 1.32, die die negative Log-Likelihood auf 648 Fragen aus zurückgehaltenen Datensätzen minimiert, auf denen kein Elternteil trainiert wurde: 448 aus dem Kalibrierungs-Split von transfer-r3 (sechs öffentliche Datensätze, QNLI, SciQ, TweetEval-offensive, PAWS, MMLU und Emotion, plus zwei zurückgehaltene Familien generierter Policy-Datensätze) und 200 MMLU-Pro-Fragen (transfer-v9-Development). Es wurde keine Partition irgendeines Trainingskorpus verwendet, und eine Prüfung fand keine Überschneidung mit den Trainingsdaten.

Evaluation

Methodik. Jeder Vergleich erfolgt gegen Kev-27B v1 auf identischen Items, jedes Modell bei seiner eigenen bedienten Temperatur. Test-Partitionen wurden einmal für diesen Checkpoint gelesen; der transfer-v4-Test ist gesperrt (einmal pro Kandidat gelesen) und wurde gegen eine im Voraus festgelegte Messlatte beurteilt (Genauigkeit ≥ 0.886, Brier ≤ 0.165). Intervalle sind 95-%-gepaarte Bootstraps, die ganze Datensätze neu ziehen (2,000 Resamples), sodass Fragen, die sich einen Zustand teilen, sich gemeinsam bewegen. Differenzen sind in Prozentpunkten (pp). Die Suites:

  • breadth-v1: 14 zurückgehaltene öffentliche Datensätze in fünf Bereichen (Wissen, Sprache, Retrieval, Tools, Kunst), nie trainiert.
  • tasksource-heldout-v1: 24 ganze Aufgabenfamilien derselben Multi-Task-Sammlung wie die lizenzierte Komponente, aus dem Training herausgehalten.
  • hard-v1: programmatisch beschriftete Skill-Datensätze (lange Policies, Abwägungen, Wahrscheinlichkeit, Multi-Hop, Daten und Zahlen, Beurteilung, Abstention); der Test-Split hält Templates trainierter Generatoren zurück.
  • devtools-v1: Entwickler-Tooling-Entscheidungen aus lizenzgeprüften öffentlichen Quellen (Code-Review, Commit-Nachrichten, Sicherheit, flakige Tests).
  • documents-v1 / documents-v2: US-Verbraucherfinanz-Beschwerdeerzählungen (CFPB); v2 ist ein privates zurückgehaltenes Test-Set.
  • transfer-v4: Out-of-Domain-Entscheidungen aus sechs nie trainierten öffentlichen Quellen plus zurückgehaltene Policy-Strukturen.
  • longdoc-v1: CUAD-Handelsverträge von bis zu 64k Token und generierte Vereinbarungsbündel.

Headline-Panels schließen Items aus, die ein vor dem Bau dieses Checkpoints abgeschlossenes Label-Audit als untauglich befand¹; jeder Ausschluss entfernt dieselben Zeilen von beiden Modellen.

Ergebnisse gegen v1 (Test-Partitionen).

Panel (Fragen) Kev-27B v2 Kev-27B v1 Δ [95 % CI]
Zurückgehaltene öffentliche Datensätze, breadth-v1, 10 Datensätze (2,489) 0.832 0.820 +1.2 [+0.3, +2.2]
Zurückgehaltene Aufgabenfamilien, tasksource-heldout-v1, 17 Familien (2,024) 0.795 0.743 +5.3 [+3.7, +6.8]
Skills, Entwickler-Tooling und Dokumente, gepoolt (2,795) 0.889 0.800 +8.9 [+7.5, +10.3]
  hard-v1 (1,088) 0.918 0.749 +16.9 [+14.2, +19.8]
  devtools-v1, auditierte Quellen (771) 0.825 0.789 +3.6 [+1.3, +5.9]
  documents-v1 (936) 0.908 0.869 +4.0 [+2.1, +5.9]
documents-v2, privater zurückgehaltener Test (953) 0.921 0.881 +4.0 [+2.0, +6.1]
breadth-v1, alle 14 Datensätze (3,089) 0.757 0.748 +0.8 [−0.1, +1.8]
Out-of-Domain, gesperrter transfer-v4-Test (656): Genauigkeit 0.8887 0.8963 −0.8 [−2.0, +0.5]
Out-of-Domain, gesperrter transfer-v4-Test: Brier / Abdeckung bei ≤ 5 % Fehler 0.154 / 0.875 0.160 / 0.835 –

Vergleich mit anderen Entscheidungsmodellen auf dem breadth-v1-Test (alle 14 Datensätze), bewertet mit dem zufallskorrigierten Index des Community Decision Index 0.2 (pro Datensatz (Score − Zufall) / (1 − Zufall), gemittelt innerhalb jedes Bereichs, dann 100 × der Mittelwert der fünf Bereiche). Jev wurde über Vercel AI Gateway abgefragt und AutoJev-27B (denis-pplx/autojev-27b, ein Full-Weight-Fine-Tune derselben Basis) über seinen eigenen Server, jeweils einmal, auf denselben Items.

Kev-27B v2 Kev-27B v1 Jev AutoJev-27B
Index [95 % CI] 52.3 [49.2, 55.4] 50.2 [47.0, 53.2] 54.0 [51.2, 57.0] 50.0 [47.0, 53.3]

Gegen v1 beträgt die Indexdifferenz +2.1 [−0.4, +4.6]. Es wurde kein gepaartes Intervall gegen Jev berechnet.

Lange Dokumente (CUAD-Verträge im longdoc-v1-Test, Genauigkeit / ECE nach Zustandslänge in Token):

Zustandslänge (Fragen) Kev-27B v2 Kev-27B v1
unter 8k (867) 0.874 / 0.059 0.900 / 0.025
8k–16k (443) 0.880 / 0.052 0.892 / 0.028
16k–32k (442) 0.873 / 0.061 0.882 / 0.019
32k–64k (442) 0.867 / 0.060 0.876 / 0.014
alle (2,194) 0.874 / 0.053 0.890 / 0.007

Genauigkeitsdifferenz über alle Längen: −1.6 [−3.0, −0.3]. Auf den generierten Vereinbarungsbündeln (2,400 Fragen) erreichen beide Modelle 1.000.

Kontextlänge. Validierte Kontextlänge: 65,536 Token, das Serving-Limit, aus longdoc-v1-Development (gepaarte CUAD-Genauigkeitsdifferenz zum 8k-Bucket, pp [95 % CI]: 16k +0.2 [−0.7, +1.2], 32k −0.2 [−1.2, +0.7], 64k −1.1 [−2.4, +0.0]; je 445–447 Fragen). Die Regel ist die, die auf jede Kev-1.0-Größe angewandt wird: Die validierte Länge ist die nominelle Größe des größten Buckets ab 16,384 Token aufwärts, sodass er und jeder Bucket zwischen ihm und 8,192 innerhalb der Toleranz liegt, das heißt, die CUAD-Genauigkeitsdifferenz zum 8k-Bucket, gepaart auf demselben Vertrag, Repeat und derselben Frage, hat eine 95-%-Untergrenze von mindestens −3 pp, wobei jeder Datensatz beantwortet wurde.

Kalibrierung (erwarteter Kalibrierungsfehler, ECE, wie bedient; niedriger ist besser):

Panel Kev-27B v2 Kev-27B v1
breadth-v1-Test, 10 Datensätze 0.015 0.013
tasksource-heldout-v1-Test 0.049 0.051
hard-v1 + devtools-v1 + documents-v1-Test 0.014 0.027
gesperrter transfer-v4-Test 0.019 0.018
CUAD-Verträge, longdoc-v1-Test 0.053 0.007

Auf den 648 Fitting-Fragen senkt eine 5-fache gruppen-disjunkte Kreuzvalidierung den ECE von 0.048 (roh) auf 0.038 (out of fold); die beiden Intervalle überlappen. Das 90-%-Bootstrap-Intervall der Temperatur ist [1.20, 1.45]. An seinen Enden bewegen sich die Headline-Panels in entgegengesetzte Richtungen: breadth-v1 ECE steigt auf 0.026 bei T = 1.20 und tasksource-heldout-v1 ECE auf 0.067 bei T = 1.45.

Weitere Ergebnisse.

Suite Kev-27B v2 Kev-27B v1
transfer-v4-Development, Genauigkeit / Brier 0.851 / 0.218 0.848 / 0.229
Kurze Zustände, transfer-r3-Test (1,150) 0.858 0.879
devtools-v1-Test, alle Quellen (1,071) 0.790 0.711
decision-v7-Development (v1s Trainingsverteilung) 0.865 0.866
MMLU-Pro, 10 Optionen (transfer-v9-Development) 0.675 0.665
Unbeantwortbare Items mit p ≥ 0.9 beantwortet (niedriger ist besser) 0.00 0.00
SemIf (144) / WANLI-v2 (1,002) / TypeSafe (89 beantwortete Zeilen) 0.965 / 0.756 / 0.854 0.972 / 0.745 / 0.865
Zurückgehaltene Domänen trainierter Generatoren, Genauigkeit / ECE: ood-v2 (4,988) 0.956 / 0.020 0.944 / 0.044
  agents-ood-v1 (2,084) 0.988 / 0.032 0.967 / 0.137
  guardrails-ood-v1 (4,949) 0.984 / 0.010 0.944 / 0.079

Der transfer-r3-Test ist ein Kurzzustands-Panel aus denselben acht zurückgehaltenen Quellen wie der Kalibrierungspool; decision-v7 ist v1s Trainingsverteilung; transfer-v9 enthält MMLU-Pro und Items, deren entscheidende Evidenz entfernt wurde. SemIf (handverfasste Entscheidungen aus dem SemIf-Projekt), WANLI-v2 (Natural-Language-Inference-Paare aus dem WANLI-Test-Split) und TypeSafe (SemIfs Auswahl von TypeSafe-Workflow-Fällen) werden nur berichtet: Das Label-Audit befand sie als zu klein, gesättigt oder verrauscht, um Modelle zu ranken. WANLI-v2 und TypeSafe wurden am 2026-09-30 als Evaluationen zurückgezogen (etwa ein Viertel der WANLI-Paare wurde von seinen zwei Annotatoren unterschiedlich beschriftet, mit dem Gold auf eines der beiden Labels gesetzt; TypeSafes Gold ist die gemittelte Antwort zweier geschlossener Frontier-Modelle, auf zu wenigen Fragen, um Checkpoints auseinanderzuhalten); ihre Zahlen bleiben als Aufzeichnung erhalten.

Serving-Parität (H200, bf16 mit fusionierten Kernels und CUDA-Graphen, 200 decision-v7-Development-Datensätze / 280 Fragen):

Prüfung Ergebnis
Bedient vs. der fp32-Evaluationspfad, max. |Δp| 0.0223, keine geänderten Antworten
Eine Frage allein vs. die vollständige Anfrage, max. |Δp| 0.0039, keine geänderten Antworten
Bedient vs. Evaluation bei 8k / 32k / 64k-Token-Zuständen, max. |Δp| 0.0064 / 0.0095 / 0.0017, keine geänderten Antworten
Modellzeit bei einem 64k-Token-Zustand, neuer / gecachter Zustand 9.4 s / 733 ms
Residente Speicher / Ladezeit aus einem warmen Cache 65.5 GB / 17.6 s
Durchsatz bei 1 / 64 gleichzeitigen Clients 21.1 / 36.4 Anfragen/s

¹ Von den Headline-Panels ausgeschlossen: vier breadth-v1-Datensätze (routerbench, dessen Zustände die erfragte Information nicht enthalten; cfcolor und humicroedit, bei jedem System auf Zufallsniveau; chessbench, bei jedem System am Boden); sieben tasksource-heldout-v1-Familien mit ungültigen oder nicht wiederherstellbaren Labels (Namen privat); und zwei devtools-v1-Aufgaben, deren Labels der Zustand nicht bestimmt (flakeflagger, Commit-Änderungstyp). Die transfer-r3-Quelle emotion (distante Keyword-Labels) wird in den Grenzen vom Kurzzustands-Panel ausgeschlossen.

Grenzen und Kompromisse

  • Auswahl. Der veröffentlichte Checkpoint wurde ausgewählt, nachdem die Testergebnisse eines früheren Kandidaten bekannt waren, und auf denselben Test-Sets bestätigt. Behandle die Test-Margen als optimistisch.
  • Kein Zugewinn bei kurzen Zuständen. Er ist bei kurzen Eingaben nicht besser als v1: −0.8 pp [−2.0, +0.5] im gesperrten transfer-v4-Test, −0.9 pp [−2.0, +0.1] im Kurzzustands-Development-Panel (transfer-v4-Development und transfer-r3-Test ohne emotion) und −2.1 pp [−3.5, −0.8] im ganzen transfer-r3-Test.
  • Schlechter und überkonfident auf langen Verträgen. Auf CUAD ist er 1.6 pp weniger genau als v1 und sein ECE ist bei jeder Länge zwei- bis viermal so hoch wie der von v1 (0.053 gegenüber 0.007 insgesamt). CUADs Fragen enthalten einige falsche oder umstrittene Gold-Labels, aber die Lücke ist über die Längen hinweg konsistent. Für die Vertragsprüfung fitte die Temperatur auf deinen eigenen beschrifteten Dokumenten neu (python -m kev.calibrate) oder verwende v1.
  • In-Distributions-Zugewinne. Die Trainings-Splits von hard-v1, devtools-v1 und documents-v1 sind in den Trainingsdaten, und die Suites ood-v2, agents-ood-v1 und guardrails-ood-v1 sind zurückgehaltene Domänen von Generatoren, die auch Trainingsdaten erzeugt haben. Zugewinne dort messen zurückgehaltene Items trainierter Familien, keinen Transfer auf neue Aufgaben.
  • Unbekanntes Basistraining. Die Basis ist Qwens nachtrainierte Veröffentlichung; ihre Trainingsdaten sind nicht bekannt, sodass eine Überschneidung zwischen ihr und irgendeiner Evaluation nicht ausgeschlossen werden kann.
  • Wissen. Wissen wird von der Basis bestimmt: MMLU-Pro liegt bei 0.675 gegenüber Jevs 0.840 auf denselben Items.
  • Untrainierte Längen. Zustände von 32k–64k Token wurden evaluiert (longdoc-v1), aber nicht trainiert.
  • Zurückgezogene Suite. Eine Support-Ticket-Suite, die zur Auswahl von v1 verwendet wurde (scienthoon), wurde vor dem Bau von v2 als untauglich zurückgezogen, sodass v2 darauf kein Ergebnis hat. v2s nicht gemittelter feinabgestimmter Elternteil lag dort 5.5 pp [−7.8, −3.2] unter v1.
  • Temperaturunsicherheit. Das Intervall der Temperatur ([1.20, 1.45]) bewegt den Test-ECE um bis zu etwa 0.02.
  • Hardware. Es braucht eine Rechenzentrums-GPU der 80-GB-Klasse (mehr als 80 GB für die längsten Zustände). Apple Silicon über MLX: v2s vollständige bf16-Gewichte brauchen etwa 51 GB plus Arbeitsspeicher, sodass ein 64-GB-Mac grenzwertig ist und ein 96–128-GB-Mac passen sollte. Das wird aus Messungen an kleineren Modellen erwartet, nicht auf einem großen Mac gemessen: Das Laden eines Full-Weight-Kev-4B über denselben Pfad erreichte einen Peak von der Größe seiner Gewichte (8.4 GB), und seine Antworten lagen innerhalb von 0.015 des fp32-Evaluationspfads (runs/mlx-full-4b). v1 (der LoRA-Adapter, Tag v1-lora) wurde von einem externen Beitragenden über MLX auf einem 128-GB-M5-Max bedient (PR #175): 0.849 Genauigkeit auf transfer-v4-Development gegenüber den veröffentlichten 0.848, 52 GB im Dauerbetrieb und 97 GB im Peak, während der Adapter gemerged wurde.

Bias, Risiken und ethische Überlegungen

  • Kalibrierte Wahrscheinlichkeiten können unberechtigtes Vertrauen erzeugen. Die Temperatur wurde auf öffentlichen zurückgehaltenen Datensätzen gefittet und überträgt sich nicht auf jede Arbeitslast; miss Genauigkeit und Kalibrierung an einer beschrifteten Stichprobe deiner eigenen Daten, bevor du Schwellenwerte setzt.
  • Genauigkeit und Kalibrierung verschieben sich bei Domänenwechsel (zum Beispiel auf langen Verträgen). Überwache die Produktionsfehlerraten, statt dich auf die obigen Zahlen zu verlassen.
  • Verwende es nicht für folgenreiche automatisierte Entscheidungen über Menschen ohne menschliche Prüfung. Verzerrungen des Basismodells und der Trainingsdaten (einschließlich von anderen Modellen erzeugter Labels) werden nicht gemessen.
  • Zustände können persönliche oder vertrauliche Daten enthalten. Self-Hosting hält Eingaben auf deiner eigenen Hardware; der Server ist offen, sofern KEV_API_KEY nicht gesetzt ist, also wende deine eigene Zugriffskontrolle und Datenbehandlungspolitik an.

Compute

  • Feinabstimmung: 8 × NVIDIA H200 für 16.2 h Trainingszeit (129 GPU-Stunden), ohne Neustarts und Evaluation.
  • Gewichtsmittelung: etwa 6 Minuten auf der CPU.
  • Evaluations- und Serving-Prüfungen: einzelne H200-GPUs auf Modal.

Herkunft und Reproduzierbarkeit

  • Code, Suites und Evaluationsberichte: github.com/jaredpalmer/kev. Release-Zahlen: runs/release/kev-27b-r23.json (scripts/release_numbers.py --release kev-27b-r23).
  • Fine-Tune: Versuch von Runde 22 r22-27b-lr2e6/00-trial-0 (experiments/round22/lr2e6.json), Gewichte sha256 3fa0182a…. Blend: Runde 23 Arm 27b-k-w85 (scripts/interpolate_checkpoint.py --toward; interpolation.json im Hub-Repo), Auswahlregel und Bestätigungsstufen in experiments/rounds/r23.json; Ergebnisse in runs/r23-readout/, runs/r23-verdict/, runs/r23-breadth-report/, runs/serving-27b-r23*/.
  • Blend-Quelle: v1 bei jaredpalmer/kev-27b@01b81998 (Versuch r6-27b-v2/01-trial-1), jetzt Tag v1-lora.
  • Veröffentlichte Gewichte sha256 d27af6ab2be16824166ac639907b4dba40979ff338599c2872721aa6c5072022; head.pt sha256 7968f17b03479c1ef9d1c0f3ab8a15e31ecb441cf40691b07ee945ab554d45ad (T = 1.3195). Gewichte veröffentlicht im Hub-Commit 28be62e9.
  • Verifikation: anonym vom Hub auf einer H200 geladen, reproduzierte es die Logits der Vorab-Evaluation exakt auf 252 von 252 SemIf-Zeilen und 764 von 764 transfer-v4-Development-Zeilen (runs/release/kev-27b-r23-published.json, runs/release/kev-27b-r23-staging.json).

Zitat

@misc{palmer2026kev27b,
  title        = {Kev-27B: a calibrated decision model on Qwen3.8-27B},
  author       = {Palmer, Jared},
  year         = {2026},
  howpublished = {\url{https://huggingface.co/jaredpalmer/kev-27b}},
  note         = {Version 2, released 2026-09-30}
}

Kontakt

Fragen und Issues: github.com/jaredpalmer/kev/issues.