Skip to content

AnyJev

Bibliothèque de recherche Nokia qui lit des décisions typées et calibrées à partir des scores de token suivant de n'importe quel LLM ouvert, plus ses propres modèles Tacit.

Avis de Sheela · Mis à jour

Voir sur GitHub Open source

Notre note

3.9/5

Du code de recherche soigné qui tire des probabilités honnêtes du modèle ouvert que vous faites déjà tourner, avec des résultats de classement que les mainteneurs du tableau ont mesurés eux-mêmes.

Qu’est-ce que AnyJev ?

AnyJev, de chercheurs de Nokia à Sunnyvale avec des co-auteurs de Tencent Hunyuan et de la Hong Kong Polytechnic University, transforme un modèle de langage ouvert ordinaire en un modèle de décision à la Jev. Vous lui donnez un état et une question typée (un choix, un oui/non ou un score) et il renvoie une probabilité sur les options, lue à partir de la distribution de token suivant du modèle en un seul prefill plutôt qu'analysée depuis du texte généré. Il n'est pas affilié à TypeSafe AI, qui fait Jev.

Il y a deux voies. Le Decider sans entraînement fonctionne sur n'importe quel LM causal ouvert via Hugging Face transformers, vLLM, SGLang ou llama.cpp ; son niveau L0 moyenne le biais de position en faisant tourner les options et divise par la préférence du modèle pour certaines étiquettes, sans aucune étiquette nécessaire. Les modèles Tacit (1,7B à 9B, bâtis sur Qwen) sont auto-distillés pour donner en une passe les réponses qu'ils atteignent en raisonnant, et peuvent envoyer une part plafonnée de décisions peu confiantes vers un raisonnement complet.

La méthode est décrite dans l'AnyJev Technical Report (arXiv 2610.00831, 30 septembre 2026). Le paquet pip anyjev a atteint 0.3.0 le 6 octobre 2026 ; le code est sous Apache-2.0 et les poids Tacit portent la licence Apache-2.0 de leurs modèles de base.

AnyJev vaut-il le coup ?

L'intuition utile d'AnyJev est que les étiquettes qu'un modèle ouvert note contiennent déjà un modèle de décision correct, une fois deux biais retirés. Sur Qwen3-8B avec la tâche BANKING77 à 20 options (300 items de test), la lecture L0 sans entraînement a fait passer l'exactitude de 0,747 à 0,803, a réduit les réponses qui basculent quand on inverse les options de 0,230 à 0,073, et, plus utilement, a fait passer la part de décisions assez confiantes pour être automatisées à 5 % d'erreur ou moins de 7,7 % à 46,3 %. Ce sont les chiffres des auteurs, mais chaque nombre du README est lu depuis du JSON committé et vérifié par un test.

La preuve la plus solide est externe. Sur le Decision Index communautaire, dont les mainteneurs font tourner les parties privées et mesurent la latence eux-mêmes, L0 sur un Gemma-4-31B non modifié a obtenu 60,22, cinquième de 149 entrées le 12 octobre 2026, et l'AnyJev Tacitus 31B affiné a obtenu 66,47, troisième ex æquo sur l'édition 0.4.1 le 21 octobre, avec une latence médiane de 95 ms sur un RTX PRO 6000. Le plus petit Tacit-9B atteint 0,823 sur l'ensemble public JevBench de 231 items en une passe et 0,887 quand 15,2 % des décisions montent au raisonnement.

Les compromis sont énoncés clairement dans la page des limitations. Une décision escaladée coûte des secondes, pas des millisecondes, ajoutant environ 567 tokens générés sur JevBench pour Tacit-9B. La lecture par lettre gère au plus 26 options, Tacit sur vLLM lit les étiquettes depuis les 20 meilleures log-probabilités et compte tout le reste comme zéro, et rien n'a été testé dans une boucle d'agent. Un correctif récent montre pourquoi c'est important : le backend vLLM lisait autrefois une étiquette manquante comme -30, produisant une réponse fausse et confiante sans erreur, jusqu'à ce qu'un utilisateur le signale.

Face à Jev lui-même, l'argument porte sur où va votre texte plutôt que sur l'exactitude. Jev est hébergé et bon marché, mais chaque entrée quitte votre réseau ; AnyJev garde les décisions sur un GPU que vous contrôlez, avec une passerelle qui écoute sur 127.0.0.1 et n'a pas d'authentification propre. Comparé aux petits modèles d'encodeur de Laya, il convient aux équipes qui servent déjà un modèle de 1,7B à 31B sur vLLM. C'est un jeune projet de recherche, avec deux auteurs principaux et 11 issues déposées jusqu'ici, alors attendez-vous à ce que l'API bouge.

Là où il fait la différence

  • Une équipe de plateforme de support qui route 50 000 tickets par jour sur 20 files

    Envoyer chaque ticket vers une file et ne clôturer automatiquement que les confiants

    Enveloppez le Qwen3-8B que vous servez déjà dans le Decider à L0 et passez la liste des files comme question de choix ; envoyez tout ce qui est sous votre seuil de probabilité à une personne. Sur BANKING77, cette lecture a rendu 46,3 % des décisions sûres à automatiser à 5 % d'erreur, contre 7,7 % à partir des scores bruts, sans aucune étiquette.

  • L'équipe ML d'une banque qui ne peut pas envoyer de texte client à un modèle hébergé

    Remplacer les appels à une API de décision hébergée par un équivalent interne

    Servez Gemma-4-31B en FP8 sur un GPU de classe RTX PRO 6000 et enveloppez-le avec le Decider à L0, la configuration qui a placé cinquième de 149 sur le Decision Index. Mettez la passerelle 127.0.0.1 derrière votre propre proxy authentifié, puisqu'elle n'en a aucune.

  • Un développeur d'agent avec un seul GPU de poste de travail

    Encadrer les appels d'outils avec des vérifications oui/non qui portent de vraies probabilités

    Chargez Tacit-4B avec `adaptive=True` pour qu'au plus 20 % de chaque 1 000 décisions montent au raisonnement. Sur bev-decision, cela a relevé l'exactitude de 0,663 à 0,704 avec 17,8 % escaladées, à environ 187 tokens générés en plus par décision.

Avant de vous engager

Mise en route
`pip install anyjev` sur Python 3.10+, avec les extras `[hf]`, `[client]` ou `[vllm]` ; `Tacit.from_pretrained("morriszjm/Tacit-9B")` télécharge les poids depuis Hugging Face. Tacit-9B et Tacit-2B ont besoin de transformers 5 ou plus récent, et `vllm serve` sur Hopper a besoin du CUDA toolkit.
Intégrations
Backends pour Hugging Face transformers, vLLM (en process ou un serveur en cours), SGLang et modèles GGUF llama.cpp ; MLX et Ollama sont sur la feuille de route. `python -m anyjev.serve` expose POST /v1/decide et GET /v1/stats.
Données et confidentialité
Tout tourne en local ; les poids viennent de Hugging Face. La passerelle écoute sur 127.0.0.1 sans authentification. Le code est Apache-2.0, les poids Tacit héritent Apache-2.0 de Qwen, et les jeux de données gardent leurs propres licences. Aucun avis de sécurité publié.
Coût à grande échelle
Pas d'édition payante. Tacit-9B tourne sur un GPU avec transformers ; sur le Decision Index, Tacitus 31B a tourné sur un seul RTX PRO 6000 à une médiane de 95 ms et une latence p95 de 1 000 ms. L'escalade ajoute des centaines de tokens générés à chaque décision escaladée, si bien que le plafond fixe la facture.
Limites
Au plus 26 options ; la lecture en une passe de Tacit n'est pas moyennée sur l'ordre des options ; le prior de lot de L0 nuit à l'exactitude quand une étiquette domine ; pas encore d'évaluation en boucle d'agent ; 7 issues ouvertes et deux auteurs principaux.

Les points forts

  • Fonctionne sans entraînement sur n'importe quel LLM ouvert via transformers, vLLM, SGLang ou llama.cpp
  • Retire le biais d'ordre et d'étiquette sans données étiquetées
  • Entrées de classement mesurées par les mainteneurs du Decision Index
  • Les limitations et chaque nombre du README sont documentés et testés

Les points faibles

  • Les décisions escaladées prennent des secondes et des centaines de tokens en plus
  • Au plus 26 options dans la lecture par lettre
  • La passerelle HTTP n'a pas d'authentification
  • Pas encore évalué dans des boucles d'agent ; petite base de contributeurs

Idéal pour

Les ingénieurs ML qui servent déjà un modèle ouvert sur vLLM et veulent des décisions de classification et de routage calibrées sans entraîner un classifieur séparé.

Alternatives à AnyJev

AnyJev : questions fréquentes

AnyJev vaut-il le coup ?
Du code de recherche soigné qui tire des probabilités honnêtes du modèle ouvert que vous faites déjà tourner, avec des résultats de classement que les mainteneurs du tableau ont mesurés eux-mêmes. Nous lui donnons 3.9 sur 5.
Combien coûte AnyJev ?
Gratuit et open source sous Apache-2.0, y compris les poids des modèles Tacit. Vous fournissez le GPU.
Quels sont les inconvénients de AnyJev ?
Les décisions escaladées prennent des secondes et des centaines de tokens en plus; au plus 26 options dans la lecture par lettre; la passerelle HTTP n'a pas d'authentification; pas encore évalué dans des boucles d'agent ; petite base de contributeurs.
À qui s’adresse AnyJev ?
Les ingénieurs ML qui servent déjà un modèle ouvert sur vLLM et veulent des décisions de classification et de routage calibrées sans entraîner un classifieur séparé.
Combien coûte AnyJev pour une équipe ou en production ?
Pas d'édition payante. Tacit-9B tourne sur un GPU avec transformers ; sur le Decision Index, Tacitus 31B a tourné sur un seul RTX PRO 6000 à une médiane de 95 ms et une latence p95 de 1 000 ms. L'escalade ajoute des centaines de tokens générés à chaque décision escaladée, si bien que le plafond fixe la facture.
AnyJev est-il sûr pour les données de l’entreprise ?
Tout tourne en local ; les poids viennent de Hugging Face. La passerelle écoute sur 127.0.0.1 sans authentification. Le code est Apache-2.0, les poids Tacit héritent Apache-2.0 de Qwen, et les jeux de données gardent leurs propres licences. Aucun avis de sécurité publié.
Quelles sont les meilleures alternatives à AnyJev ?
Les alternatives les plus proches que nous avons testées sont Laya, vLLM et vLLM Semantic Router.

Réponses vérifiées le 28 oct. 2026.