# Routage intelligent avec Kev : notre benchmark

> Une requête adressée à CARouter pourrait ne nommer aucun modèle et tomber quand même sur le bon, au prix ou à la vitesse de votre choix. Nous avons testé trois modèles de décision capables de faire ce choix, sur 1 020 requêtes en anglais et en français. Kev est le candidat le plus solide ; voici ce que son déploiement demanderait.

- Publié : 2026-09-21
- Auteur : Flavien Berwick
- Catégorie : Recherche
- Page web : https://carouter.ai/fr/blog/jev-kev-laya-decision-models
- En anglais : https://carouter.ai/blog/jev-kev-laya-decision-models.md
- Traduit de l'anglais par une IA.

![Recherche : routage intelligent avec Kev, notre benchmark. Jev, hébergé, 0,81 de justesse et 12 % d'erreurs confiantes ; Kev-4B, poids ouverts, 0,76 de justesse, 3 % d'erreurs confiantes, 17 Go, 58 ms ; Kev-0.8B 0,70 de justesse, 0 % d'erreurs confiantes, 3,4 Go, 43 ms.](https://carouter.ai/blog/jev-kev-laya-decision-models/illustration.png)

Aujourd'hui, chaque requête adressée à CARouter nomme le modèle qui y répond. Nous voulons en offrir une qui n'en nomme aucun : écrivez auto, et CARouter choisit le modèle qui convient le mieux à la requête, puis la sert selon votre préférence, le moins cher, le plus rapide ou l'équilibre des deux.

Cela demande un modèle de décision, un petit modèle dont le seul travail est de lire une requête et de dire de quel type de tâche il s'agit, en quelques millisecondes. Nous avons testé trois candidats sur 1 020 requêtes réelles, en anglais et en français, pour savoir si l'un d'eux est assez bon pour qu'on lui confie ce choix, et ce qu'il coûterait de le faire tourner.

## En bref

- **La justesse.** Jev, un modèle commercial hébergé, identifie correctement le type de requête 81 % du temps en anglais et 76 % en français. Kev-4B, un modèle ouvert que nous pouvons faire tourner nous-mêmes, atteint 76 % et 70 %. Son petit frère Kev-0.8B atteint 70 % et 64 %. Laya, le troisième candidat, reste sous 60 % tel quel.
- **Les erreurs confiantes.** Jev se trompe en affirmant être sûr de lui sur une requête sur huit. Kev-4B, sur une sur trente ; Kev-0.8B, jamais. Pour un système qui ne doit agir que lorsqu'il est sûr, cela compte davantage que l'écart de justesse.
- **Plus gros n'est pas meilleur.** Le plus gros Kev, à 9 milliards de paramètres, ne fait pas mieux que celui à 4 milliards et demande deux fois plus de mémoire. Le 4B est le bon compromis.
- **Vitesse.** Sur un GPU de centre de données, une décision prend 43 millisecondes sur Kev-0.8B et 58 sur Kev-4B, un délai qu'un client ne remarquera pas. Sans GPU, seul Laya répond assez vite pour être utilisable, et c'est le moins juste.
- **Le meilleur candidat.** Kev-4B : assez juste, honnête sur ses doutes, ouvert, et rapide sur un GPU. Reste à savoir s'il est assez bon pour choisir des modèles au nom de nos clients, une question que ce test ne peut pas trancher, parce qu'aucun jeu de données public ne contient les types de requêtes qu'ils envoient. C'est le prochain test à construire.

## Pourquoi choisir le modèle à votre place

CARouter donne accès à un catalogue de modèles ouverts, tous servis depuis le Canada, par une seule API. La plupart des clients choisissent un modèle au moment de l'intégration et n'y reviennent jamais. Or corriger un bout de code, traduire un paragraphe et résumer un contrat ne demandent pas le même modèle, et le meilleur pour chacun est rarement le plus cher.

Aujourd'hui, un client peut déjà nous dire comment servir un modèle donné : au prix le plus bas, à la vitesse la plus élevée, ou entre les deux. Cette préférence choisit parmi les fournisseurs qui servent le modèle que le client a nommé. Elle ne peut pas choisir le modèle lui-même, et elle ne peut jamais faire sortir une requête du Canada. La sélection automatique ajouterait la première de ces deux choses en conservant la seconde.

## Ce qu'est un modèle de décision

Demandez à un modèle conversationnel de classer un billet de soutien : il répond par une phrase, qu'il faut ensuite lire et interpréter. Un modèle de décision n'écrit pas. Il reçoit un texte et une question typée, laquelle de ces catégories, combien sur cette échelle, oui ou non, et renvoie la réponse avec un score de confiance, en une seule passe.

Il n'y a rien à interpréter et rien qu'il puisse inventer, puisqu'il ne génère jamais. C'est ce qui en fait le bon outil à placer devant chaque requête : rapide, prévisible, et honnête sur son degré de certitude.

Jev est la version commerciale de cette idée, vendue par TypeSafe comme service hébergé. Kev en est une reproduction ouverte, en trois tailles, que chacun peut faire tourner sur son propre matériel. Laya est un second modèle ouvert qui répond aux mêmes types de questions avec une conception différente.

## Comment nous avons testé

Nous avons posé à chaque modèle une seule question sur 1 020 requêtes : quel type de tâche l'utilisateur demande-t-il, parmi neuf types tels qu'écrire du code, résoudre un problème de mathématiques, résumer un passage ou trouver des idées. Les requêtes et leurs bonnes réponses viennent de trois jeux de données publics, rédigés et étiquetés à la main par des personnes, et non par nous.

Les mêmes requêtes existent en anglais et en français, si bien que les deux langues sont comparées sur un matériel identique. Ni Kev ni Laya n'avaient jamais vu ces jeux de données. Les données d'entraînement de Jev ne sont pas publiques ; il les a peut-être vues.

La vitesse a été mesurée à part, sur trois machines : le seul processeur d'un portable, le petit GPU du même portable, et un GPU de centre de données loué. Chaque requête était inédite, donc aucun raccourci ni cache ne pouvait aider.

## Ce que nous avons trouvé : la justesse

![Justesse sur 1 020 requêtes : Jev 0,81 en anglais et 0,76 en français, Kev-9B 0,74 et 0,67, Kev-4B 0,76 et 0,70, Kev-0.8B 0,70 et 0,64, Laya 0,58 et 0,47, Laya multilingue 0,55 et 0,47.](https://carouter.ai/blog/jev-kev-laya-decision-models/01-accuracy-en-fr.png)

Jev mène, Kev suit à cinq ou six points, Laya traîne. Deux choses valent pour tous les modèles. Le code et les mathématiques sont faciles : Jev et Kev-4B ne se trompent sur aucune requête anglaise, et Kev-4B garde un score parfait en mathématiques en français. Et le français coûte cinq à huit points à tout le monde, Jev compris ; c'est donc une propriété de la tâche, pas d'un modèle.

Les scores comptent une réponse comme juste quand elle tombe dans la bonne famille de tâches. Les jeux de données eux-mêmes étiquettent le même type de requête de plusieurs façons, une question sur un passage étant appelée résumé ici et question de lecture là ; le score plus fin à neuf classes est donc plus bas pour tous les modèles, dans le même ordre.

![Justesse contre erreurs confiantes, en anglais : Jev à 0,81 avec 11,7 % d'erreurs confiantes, Kev-9B à 0,74 avec 4,8 %, Kev-4B à 0,76 avec 3,3 %, Kev-0.8B à 0,70 sans aucune, Laya à 0,58 sans aucune, Laya multilingue à 0,55 avec 3,7 %.](https://carouter.ai/blog/jev-kev-laya-decision-models/02-confident-errors.png)

C'est le deuxième graphique qui tranche. Un système qui choisit un modèle au nom d'un client ne doit le faire que lorsqu'il est sûr, et sinon se rabattre sur un choix par défaut raisonnable. Cela suppose un seuil de confiance. Une mauvaise réponse donnée avec une confiance élevée franchit ce seuil sans peine ; ce qui compte, ce n'est donc pas seulement la fréquence des erreurs, mais celle des erreurs commises avec assurance.

Jev est à la fois le plus juste et le plus sûr de lui : 12 % de ses réponses sont des erreurs confiantes. Kev-4B est à 3 % et Kev-0.8B à 0 %. Un seuil de confiance attrape les erreurs de Kev et laisse passer celles de Jev.

## Ce que nous avons trouvé : la vitesse, et où chacun peut tourner

![Temps d'une décision selon la longueur de la requête, échelle logarithmique. Sur un processeur de portable, Kev-0.8B passe de 1,2 s à 43 s et Laya de 0,26 s à 2,2 s. Sur un GPU de centre de données, Kev-0.8B reste entre 43 et 46 ms jusqu'à un millier de mots et atteint 250 ms à quatre mille ; Kev-4B passe de 58 ms à environ une seconde ; Kev-9B de 62 ms à 1,45 s ; Laya reste entre 19 et 33 ms mais ne peut pas lire au-delà d'un millier de mots.](https://carouter.ai/blog/jev-kev-laya-decision-models/03-latency-cpu-gpu.png)

Sur un GPU de centre de données, tous les modèles sont assez rapides. Kev-0.8B répond en 45 millisecondes environ, quelle que soit la longueur jusqu'à un millier de mots. Kev-4B demande 58 millisecondes sur une requête courte et environ une seconde sur une très longue. Un GPU de portable donne les mêmes réponses deux à sept fois plus lentement, et ne peut pas charger Kev-4B du tout.

Sans GPU, le tableau change. Kev-0.8B prend plus d'une seconde par décision sur un processeur de portable, et Kev-4B près d'une minute. Seul Laya répond en un quart de seconde, soit environ quatre décisions par seconde et par machine, et c'est le moins juste des six.

La mémoire décide du reste. Kev-0.8B a besoin de 3,4 Go de mémoire GPU, Kev-4B de 17 Go et Kev-9B de 32 Go. Sur une machine qui sert aussi un modèle de langue, cette mémoire est prise sur les requêtes des clients eux-mêmes.

## Ce que déployer chacun d'eux impliquerait

- **Comme service de décision, sur un GPU qui a de la marge : Kev-4B.** Cinq à six points derrière Jev, quatre fois moins souvent sûr de lui à tort, libre d'utilisation sous licence ouverte, et compatible avec l'API de Jev : une équipe qui utilise déjà Jev pourrait changer en modifiant une adresse. Le prix serait de 17 Go de mémoire GPU et 58 millisecondes, et c'est la mémoire qui coûte vraiment sur une machine qui sert aussi des modèles de langue.
- **Comme service de décision quand la mémoire est comptée : Kev-0.8B.** 3,4 Go, 45 millisecondes, jamais sûr de lui à tort dans notre test. Il céderait six points de justesse au 4B, et c'est tout le compromis.
- **Derrière la sélection automatique du modèle : Kev, sous un seuil de confiance, une fois un dernier test réussi.** Les 45 millisecondes qu'il ajouterait avant le début d'une réponse sont acceptables, et ses erreurs sont de celles qu'un seuil de confiance attrape. Ce que notre test ne montre pas, c'est la justesse sur les types de requêtes que nos clients envoient réellement, dont le travail d'agents en plusieurs étapes et les très longs documents, parce qu'aucun jeu de données public ne les contient. Ce test doit exister, et être réussi, avant que les requêtes de quiconque soient routées sur la parole de Kev.
- **Tourner sans GPU : Laya, une fois entraîné pour la tâche.** C'est le seul candidat qui répond vite sur un processeur ordinaire. Tel quel, il identifie la bonne tâche à peine une fois sur deux, et ses auteurs disent que sa justesse vient de l'entraînement sur vos propres exemples, ce que nous n'avons pas fait.
- **Jev : la référence, pas un candidat.** C'est le modèle le plus juste du test, et un service hébergé par une entreprise de San Francisco qui ne dit rien de l'endroit où les requêtes sont traitées, ce qui règle la question pour un produit dont toute la promesse est que les requêtes restent au Canada. C'est aussi le plus sûr de lui, le seul défaut qu'un seuil de confiance ne peut pas corriger.

## Pourquoi le choix doit tenir

Une conversation est une suite de requêtes, chacune portant tout ce qui a été dit avant elle. La plupart des fournisseurs gardent en mémoire, pour un temps, ce début commun, si bien que le tour suivant coûte moins cher et arrive plus vite s'il atteint le même fournisseur. CARouter garde déjà une conversation chez le fournisseur qui détient cette mémoire, tant qu'elle dure.

Si le modèle choisi pour une conversation changeait d'un tour à l'autre, cette économie serait perdue à chaque fois, et le ton des réponses changerait en pleine conversation. La sélection automatique doit donc s'en tenir à son choix : elle retient le modèle retenu pour une conversation et n'en change que lorsque le modèle de décision la contredit avec assurance.

Voilà pourquoi le taux d'erreurs confiantes est le chiffre autour duquel tourne tout ce test. Un seul seuil de confiance décide de deux choses : si un choix est digne de confiance, et si un tour ultérieur peut le changer. Et si le modèle de décision venait à être indisponible, les requêtes partent vers un modèle par défaut plutôt que d'être refusées.

## Ce que cela ne prouve pas

Une question, une exécution, un jeu de requêtes. Une question formulée autrement ou un autre jeu pourrait réordonner le milieu du tableau. Cela ne suffirait ni à ramener Laya dans la course ni à déloger Jev du sommet.

Les chiffres sur processeur viennent d'un portable, et un processeur de serveur ferait mieux. Il leur manque aussi le code optimisé pour lequel Kev a été écrit, qui n'existe que pour les GPU. Ils donnent donc un plafond à la lenteur de Kev sans GPU, pas une prédiction pour un serveur donné.

Jev a été chronométré depuis le Canada, par l'internet public, à 185 millisecondes par décision. C'est ce qu'un client d'ici verrait, pas la vitesse propre du modèle.

## Où cela nous mène

Kev-4B est le candidat que nous déploierions, et les deux questions encore ouvertes sont pratiques : quelle machine peut lui céder 17 Go, et tient-il sur un test bâti à partir des requêtes que nos clients envoient vraiment. Un service de décision que les clients appellent directement, comme ils appellent aujourd'hui les plongements ou le reclassement, n'a besoin que de la première réponse ; la sélection automatique du modèle a besoin des deux. Chaque mesure derrière cet article est conservée, et nous la partagerons avec qui le demande.

---

Autres articles : [Blog CARouter](https://carouter.ai/fr/blog.md). Ce qu'est CARouter et comment l'appeler : [llms.txt](https://carouter.ai/llms.txt).
