Kev-4B (Qwen3)
Génération précédente (Qwen3). Ce checkpoint est conservé comme l’option rapide sur Apple Silicon (son backbone à attention seule exécute la passe avant groupée à pleine vitesse sur MPS). Pour l’exactitude et la calibration, utilise Kev-4B (Qwen3.5) : sur le test verrouillé, il obtient 0.832 contre 0.806 hors domaine face à ce modèle sur les mêmes éléments. Poids :
jaredpalmer/kev-4b@qwen3.
Kev-4B est un modèle de décision : un document (l’état) et un ensemble de questions typées en entrée, une distribution de probabilité par question en sortie, en une seule passe avant. Aucune génération de texte. C’est un adaptateur LoRA (r=16) plus une tête pointeur sur Qwen/Qwen3-4B-Base, qui sert le contrat public /v1/systemone de TypeSafe.
Le Kev recommandé. Le meilleur checkpoint 4B sous un protocole gelé et vérifié par somme de contrôle, après ~40 essais 4B contrôlés, et le premier Kev à moins de sept points de Jev hors domaine sur les mêmes éléments. Même recette exécutée sur trois graines : transfert 0.773 / 0.790 / 0.770 ; ce checkpoint est la graine sélectionnée sur la partition de développement (jamais sur le test verrouillé).
- Hub :
jaredpalmer/kev-4b, étiquette de révisionqwen3(essaiv7-rc3/01-trial-1) ; la révision principale du dépôt contient désormais le checkpoint Qwen3.5 - Code, suites, chaque essai avec les hachages et les bootstraps appariés : github.com/jaredpalmer/kev —
PLAN.md(enregistrement complet à l’étiquette gitresearch-archive-2026-09-24),runs/leaderboard.md
Résultats (mêmes éléments gelés pour chaque ligne)
| Kev-0.5B (prototype) | Kev-0.6B | Kev-4B | Jev | |
|---|---|---|---|---|
| exactitude en distribution (decision-v4 dev, 1 200 q) | 0.712 | 0.801 | 0.854 | 0.845 |
| exactitude hors domaine (transfer-v4 dev, 560 q) | 0.561 | 0.620 | 0.790 | 0.857 |
| Brier hors domaine | 0.50 | 0.536 | 0.328 | 0.211 |
| erreurs confiantes hors domaine (p ≥ 0.9 et faux) | – | 10.8% | 8.2% | 3.7% |
| structures de politique tenues à l’écart, les deux jumeaux corrects | – | 0.08 | 0.73 | 0.86 |
| taux de bascule selon l’ordre des options | 0.21 | 0.07 | 0.06 | 0.00 |
Exactitude hors domaine par source (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 (arithmétique de dates à 3 niveaux) 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.
Graines : trois graines sur decision-v7 : transfert 0.773 / 0.790 / 0.770, paires de règles tenues à l’écart 0.62 / 0.73 / 0.67 (Jev 0.86) ; ce checkpoint est la graine 1, sélectionnée sur l’exactitude de transfert en développement. Entraîné sur decision-v7 (10k enregistrements publics + 896 enregistrements de politique sur neuf familles de gabarits, dont quatre familles de seuils Score ordinaux + 1 680 enregistrements issus de 60 structures de règles aléatoires avec négation n’importe où) ; les éléments de développement/test sont identiques au byte près à v4, donc chaque chiffre ici est comparable avec les checkpoints antérieurs.
Test verrouillé, lu une fois (runs/locked/kev-4b-v7-preview-ungated/) : en distribution 0.856 (Brier 0.211), hors domaine 0.806 (Brier 0.294, erreurs confiantes 6.6%, paires tenues à l’écart 0.66). Cette partition ne sera plus lue pour ce checkpoint.
Ce que nous avons appris en le construisant
- La capacité domine hors domaine. À nombre d’exemples publics et budget synthétique égaux, 0.6B → 4B fait +14–19 pp ; 4B → 8B fait +1–7 pp.
- Le fine-tuning érode les capacités de base, et le taux d’apprentissage le contrôle. La base 4B, en zero-shot avec une lecture par lettre, obtient 0.688 sur les mêmes éléments MMLU et 0.787 sur PAWS ; la recette par défaut (lr 2e-4) s’est entraînée jusqu’à 0.60–0.66 / 0.56–0.71. Abaisser le lr à 5e-5 en récupère l’essentiel et constitue la plus grande amélioration de recette que nous ayons trouvée ; moins de modules cibles LoRA et des rangs plus petits aident moins.
- Plus de données d’entraînement publiques augmente l’exactitude en distribution et abaisse le transfert à 4B (10k contre 3.4k enregistrements : −3 pp). Les sources de QCM de connaissances (ARC, OpenBookQA, CommonsenseQA) portent l’exactitude en distribution à 0.86 sans bouger le transfert.
- Les paires de politique contrastives programmatiques enseignent les structures de règles entraînées (les deux corrects 0.85–1.0) mais ne se transfèrent que partiellement aux structures inédites (0.5–0.6 à 4B, 0.03–0.11 à 0.6B).
Limites connues
- Le raisonnement sur politiques tenues à l’écart (compositions de règles inédites, arithmétique de dates avec délais de grâce) est loin de Jev.
- Les questions de forme produit sans analogue à l’entraînement ne sont pas garanties : sur l’exemple de la doc TypeSafe (« two charges on my card » → Is there a billing problem?), ce checkpoint répond 0.48 (Kev-8B 0.95, Kev-0.6B 0.97) tout en choisissant correctement le motif de retour (mauvaise taille 0.53 ; Kev-8B 0.84 ; Kev-0.6B préfère « none of the above » 0.58). Mesure sur tes propres entrées.
- Les probabilités hors domaine sont utilisables mais non calibrées (ECE brute 0.096) ; une température ajustée en distribution ne se transfère pas.
- 4B en fp32 a besoin d’~16 GB ; sur un Mac 32 GB, utilise
KEV_DTYPE=bf16. La latence sur un H100 est d’~45 ms par requête groupée ; sur un M5, plusieurs centaines de ms.
Entraînement
Suite gelée evals/v4/decision-v4 : 10 000 enregistrements publics (1 000 par source, dix sources) plus deux bras de politique programmatiques de 448 enregistrements, deux époques, LoRA r=16 sur les projections d’attention et de MLP, tête pointeur à partir de zéro, entropie croisée sur la distribution des options, lr 5e-5 (OneCycle), batch effectif 8, autocast bf16 avec poids maîtres fp32, gradient checkpointing, un H100 (~40 min). Augmentation : permutation des options, insertion de none-of-the-above, distracteurs, paires minimales none sur 25 % des enregistrements Choice. Aucune sortie de Jev n’a servi à l’entraînement.
Protocole d’évaluation
Les partitions de développement sélectionnent les modèles ; la partition de test verrouillée est lue au plus une fois par candidat. Chaque chiffre porte le hachage de suite, les hachages de code et le commit git dans result.json. Voir PLAN.md à l’étiquette git research-archive-2026-09-24 (« Evidence and corrections ») pour les corrections apportées à nos propres affirmations antérieures.
Utilisation
uv run --extra serve python -m kev.serve --run jaredpalmer/kev-4b --port 8008 # KEV_DTYPE=bf16 on a 32 GB Mac
N’importe quel client compatible TypeSafe fonctionne : TypeSafeClient(api_key="local", base_url="http://127.0.0.1:8008", model="kev-latest").
Licence
Apache-2.0 pour l’adaptateur et la tête ; la base Qwen3 est Apache-2.0 ; les jeux de données portent leurs propres licences.