Kev-0.6B (Qwen3)
Génération précédente (Qwen3). Conservé comme la petite option rapide sur Apple Silicon (0.12 s par requête à cinq questions contre 0.33 s pour Kev-0.8B). Pour l’exactitude, utilise Kev-0.8B : sur le test verrouillé, il obtient 0.668 contre 0.642 hors domaine face à ce modèle sur les mêmes éléments. Poids :
jaredpalmer/kev-0.6b.
Kev-0.6B 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-0.6B-Base, et il sert le contrat public /v1/systemone de TypeSafe.
Le petit membre de la famille Kev. C’est le meilleur checkpoint 0.6B sous un protocole d’évaluation gelé et vérifié par somme de contrôle : les données de la recette 4B/8B (decision-v7) à lr 1e-4, trois graines (transfert 0.613 / 0.605 / 0.620), après que huit mutations à un seul bouton et trois graines des données précédentes n’ont rien trouvé de mieux que 0.61. Hors domaine, c’est un modèle 0.6B — utilise Kev-4B pour l’exactitude ; utilise celui-ci là où la mémoire ou la latence écartent le 4B, et mesure sur tes propres données.
- Hub :
jaredpalmer/kev-0.6b(ce dépôt ; essaiv7-06b/02-trial-2, graine 2 sur 3) - Code, suites, résultats et journal de recherche complet : github.com/jaredpalmer/kev — voir
PLAN.md(enregistrement complet à l’étiquette gitresearch-archive-2026-09-24),runs/leaderboard.mdetevals/v4/*/manifest.json
Ce qui a changé depuis Kev-0.5B
| Kev-0.5B | Kev-0.6B (celui-ci) | |
|---|---|---|
| backbone | Qwen2.5-0.5B | Qwen3-0.6B-Base |
| enregistrements d’entraînement | 9 000 (six sources) | 12 576 (dix sources publiques + 896 paires minimales de politique + 1 680 enregistrements issus de 60 structures de règles aléatoires) |
| none-of-the-above | correction d’augmentation seulement | + paires minimales : même état rendu avec l’option vraie présente puis retirée |
| exactitude en distribution (decision-v4 dev) | 0.712 | 0.801 |
| exactitude hors domaine (transfer-v4 dev) | 0.561 | 0.620 |
| option none présente, exactitude | 0.25 (transfer-v1) | 0.80 |
| graines derrière le chiffre | 1 | 3 (transfert 0.605–0.620) |
Jev (typesafe-ai/jev via Vercel AI Gateway) sur les mêmes ensembles de développement gelés : 0.845 en distribution, 0.857 hors domaine. Exactitude de transfert par source pour ce checkpoint : QNLI 0.85, SciQ 0.93, TweetEval-offensive 0.69, PAWS 0.59, Emotion 0.49, MMLU 0.50 ; structures de politique tenues à l’écart proches du hasard.
Limites connues
- Hors domaine, c’est un modèle 0.6B. L’exactitude de transfert est plate à ~0.60 sur tous les hyperparamètres que nous avons essayés (huit mutations à un seul bouton, trois graines). La même recette à 4B atteint 0.72–0.75 et à 8B 0.74–0.77 ; la capacité, pas les données, est le goulot d’étranglement à cette taille.
- Le raisonnement sur politiques tenues à l’écart échoue : sur les paires de politique programmatiques dont la structure de règles n’a jamais été entraînée, les deux jumeaux corrects représentent 6–11 % (Kev-4B 0.73, Jev 0.86).
- Couverture ordinale : sur les questions Score à 3 niveaux avec arithmétique de dates, il s’effondre sur le niveau médian.
- Le taux d’erreurs confiantes hors domaine est de 11 % (confiance ≥0.9 et faux) ; ECE brute 0.09 en distribution, 0.15 hors domaine. Les probabilités sont utilisables en distribution ; traite-les comme indicatives ailleurs.
- Test verrouillé, lu une fois (
runs/locked/kev-06b-v7-ungated/) : exactitude en distribution 0.808 (Brier 0.266, ECE 0.089), hors domaine 0.642 (Brier 0.483, ECE 0.128, erreurs confiantes 7.9 %). Cette partition ne sera plus lue pour ce checkpoint.
Architecture
Un LM causal en prefill uniquement avec un masque d’attention block-causal : un préfixe d’état partagé, une branche isolée par question, et une lecture pointeur sur les jetons de frontière d’option. Les questions groupées dans une même requête obtiennent exactement les probabilités qu’elles auraient seules (delta max mesuré 4e-6). Détails dans le README du dépôt.
Entraînement
Suite gelée evals/v7/decision-v7 (le manifeste épingle les révisions des jeux de données et du modèle de base) : 10 000 enregistrements publics (1 000 par source), 896 enregistrements de paires minimales de politique sur neuf familles de gabarits, et 1 680 enregistrements issus de 60 structures de règles générées aléatoirement, deux époques, LoRA r=16 sur les projections d’attention et de MLP à lr 1e-4, tête pointeur à partir de zéro, entropie croisée sur la distribution des options, autocast bf16 avec poids maîtres fp32 sur un H100 (~12 min). Augmentation : permutation des options, insertion de none-of-the-above, distracteurs, et 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 ; une partition de test verrouillée existe et est lue au plus une fois par candidat promu. Chaque chiffre ci-dessus porte le hachage de suite, les hachages de code et le commit git dans result.json. Les comparaisons utilisent un bootstrap apparié regroupé par enregistrement. 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
from typesafe import TypeSafeClient # any TypeSafe-compatible client
client = TypeSafeClient(api_key="local", base_url="http://127.0.0.1:8008", model="kev-latest")
Sers-le avec uv run --extra serve python -m kev.serve --run jaredpalmer/kev-0.6b --port 8008 depuis le dépôt.
Licence
Apache-2.0 pour l’adaptateur et la tête. Le modèle de base est Apache-2.0 (Qwen3). Les jeux de données d’entraînement portent leurs propres licences.