Principe et contrat d’accord

Jevstiller promet que, sur une fenêtre de trafic donnée, le modèle local renvoie la même étiquette que Jev sur au moins 98 % des requêtes. Le contrat s’exprime par A = 1 − c·e, où c est la couverture (part des requêtes traitées localement) et e le taux de désaccord sur ces requêtes. L’objectif A* fixé à 98 % définit un budget β = 1 − A* = 2 % d’erreurs admissibles. Tout ce qui n’est pas traité localement est envoyé à Jev, garantissant ainsi un accord par défaut.

Architecture du modèle local

Le cœur du système repose sur un encodeur de phrases gelé bge‑small (384 dimensions, exécuté via ONNX Runtime sur CPU). Sur ces vecteurs, Jevstiller entraîne une régression logistique multinomiale : une couche linéaire suivie d’un softmax, optimisée par Adam en full‑batch avec arrêt précoce sur un jeu de validation. Le modèle complet occupe quelques centaines de kilooctets et s’entraîne en quelques secondes sur quelques milliers d’exemples, puis se met à jour tous les 2 000 nouveaux réponses de Jev.

python -m bench.sh --no-record

Deux mécanismes complémentaires décident si le modèle local peut répondre : un scoreur OOD basé sur k‑nearest‑neighbour appliqué aux embeddings d’entraînement, et une politique de routage combinant un seuil de confiance et le même cutoff OOD. Si la requête passe les deux filtres, la réponse locale est fournie en ~15 ms ; sinon, l’appel est redirigé vers Jev (≈300 ms).

Méthodologie de validation et garantie

Contrairement à la méthode naïve qui choisit le seuil le plus permissif sur un jeu de calibration et s’appuie sur une estimation ponctuelle du désaccord, Jevstiller utilise le loss du contrat comme fonction d’objectif. Pour chaque ligne du jeu de calibration (IID, labellisée par Jev, non utilisée pour l’entraînement) on compte 1 si le modèle local répond et diverge, sinon 0. La moyenne de cet indicateur suit une loi binomiale, ce qui permet d’appliquer la borne exacte de Clopper‑Pearson (95 % de confiance) sans approximation. Les seuils sont testés du plus strict au plus lâche sur une grille fixe ; le premier qui dépasse la borne supérieure du budget est rejeté, garantissant que la probabilité de choisir un seuil inadéquat reste ≤ 5 %.

Résultats expérimentaux

Sur cinq jeux de données publics, chaque tâche a été évaluée sur vingt découpages aléatoires train/calibration/test. La méthode « point estimate » (seuil le plus lâche qui semble respecter le budget) a violé le budget de 2 % dans 6 à 12 découpages par tâche, avec des dépassements allant jusqu’à 1 % absolu. En revanche, la méthode à borne Clopper‑Pearson n’a jamais franchi le budget : la couverture moyenne et le désaccord réel restent respectivement sous 74,9 %/1,15 % (Banking77), 78,9 %/1,25 % (CLINC150), 86,5 %/1,34 % (AG News), 24,0 %/1,46 % (TweetEval sentiment) et 28,7 %/1,10 % (TweetEval offensive). Sur 100 découpages, une seule violation a été observée, conforme à la probabilité de 5 % prévue par la borne.