Ce qui se passe
La semaine dernière, TypeSafe AI a présenté Jev, premier représentant de ce qu'elle appelle les « System One models ». Simon Willison, reprenant Maggie Appleton, préfère parler de modèles de décision : Jev lit du texte mais n'en produit pas. Il répond à des questions fermées par des nombres, et ne facture que l'entrée, 0,042 $ le million de tokens.
Trois types de questions :
| Type | Réponse |
|---|---|
noul (de Bernoulli) |
Probabilité que l'affirmation soit vraie |
choice |
L'option la plus probable, la distribution complète et une confiance |
score |
Une position moyenne sur une échelle de niveaux décrits |
Jev est hébergé. Kev, publié par Jared Palmer sous licence Apache 2.0, en est une recréation ouverte, entraînable et exécutable chez soi, avec la même API : le SDK Python de TypeSafe se branche sur le serveur local.
Comment ça marche
Chaque modèle Kev est un adaptateur LoRA de rang 16 et une petite tête de pointage posés sur un Qwen3.5 de base, dont le reste des poids reste figé. La tête compare l'état caché de chaque option à celui d'un marqueur de décision placé en fin de question, et un softmax donne les probabilités. Plusieurs questions partagent le texte d'entrée sans pouvoir se lire entre elles : le texte est calculé une fois, puis réutilisé pour chaque question. Aucune sortie de Jev n'a servi à l'entraînement, qui repose sur 10 000 exemples tirés de dix jeux publics et des exemples générés.
git clone https://github.com/jaredpalmer/kev.git && cd kev
uv sync --extra serve
KEV_DTYPE=bf16 uv run --extra serve python -m kev.serve --run jaredpalmer/kev-4b --port 8009curl -s localhost:8009/v1/systemone -H 'content-type: application/json' -d '{
"state": "Order arrived late, wrong size, and I was charged twice.",
"model": "kev-latest",
"questions": {
"escalate": {"type": "noul", "instructions": "Does this need urgent human attention?"}
}}'Les chiffres
Précision sur des jeux de données absents de l'entraînement (développement / test) :
| Modèle | Précision | Brier (plus bas = mieux) |
|---|---|---|
| Kev-0.8B | 0,652 / 0,684 | 0,499 / 0,460 |
| Kev-4B | 0,797 / 0,837 | 0,299 / 0,255 |
| Kev-9B | 0,822 / 0,852 | 0,286 / 0,237 |
| Jev (hébergé) | 0,857 / – | 0,211 / – |
L'auteur prévient que la comparaison n'est pas contrôlée, faute de savoir sur quoi Jev a été entraîné. Les probabilités sont calibrées par défaut : sur données inédites, les erreurs commises avec une confiance d'au moins 0,9 tombent de 8,7 % à 4,0 % pour Kev-9B, près des 3,7 % de Jev.
Les limites
- Sur Mac, c'est lent. Faute de noyaux rapides pour les couches Gated DeltaNet de Qwen3.5, un M5 en bf16 met 329 ms (0.8B), 779 ms (4B) et environ 2 s (9B) pour cinq questions. Les versions précédentes sur Qwen3 répondent en 123 à 300 ms ; un backend MLX est annoncé.
- Le serveur écoute sur
127.0.0.1sans authentification. À ne pas exposer tel quel. - Un nombre ne s'explique pas. Simon Willison y voit un retour vers la boîte noire : impossible de savoir quel passage a fait basculer une réponse, et un biais y reste invisible. Il met en garde contre un usage pour classer des candidatures, et insiste sur des évaluations systématiques — peu chères ici.
Ce que ça change
Pour trier des tickets, détecter du spam, étiqueter ou reclasser les 100 premiers résultats d'une recherche BM25, un modèle de décision remplace un LLM généraliste à qui l'on demande du JSON puis qu'on prie de rester dans les clous. Kev ajoute la possibilité d'affiner sur ses propres catégories, ses propres règles ou une autre langue : d'après le dépôt, quelques centaines d'exemples étiquetés au format JSONL aident davantage qu'une retouche de prompt.
Sources : jaredpalmer/kev sur GitHub, consulté le 22 septembre 2026 ; Jev introduces a new shape of LLM, Simon Willison, 21 septembre 2026.