Icône HapyDecider

HapyDecider v2

hapy-decider-v2-flash-0.8b

Le modèle de décision qui dit quand il peut décider seul.

Mindestria

Site · Version GGUF · Contact · English

HapyDecider étiquette, trie ou juge un contenu (message client, article, document) parmi les options que vous fixez. Chaque décision sort avec un statut, auto ou humain, adossé à une garantie que vous vérifiez sur vos propres données : sur des données comme les vôtres, la bonne réponse est dans l'ensemble proposé au moins 90 % du temps. Il tourne chez vous, hors ligne, en quelques dizaines de millisecondes.

Pourquoi HapyDecider

ce que vous obtenez la mesure
Une garantie vérifiable une décision auto ou humain, avec un taux d'erreur borné et vérifiable sur vos données couverture mesurée de 0,90 dans les 6 langues
Plus de décisions automatiques à garantie égale, l'ensemble de réponses le plus serré en anglais, en français et en haoussa 1,20 réponse en moyenne en français, contre 1,44 pour JEV et 1,77 pour Laya
Le plus exact en anglais, loin devant les modèles ouverts le meilleur des quatre modèles testés en anglais ; très au-dessus de Laya et de CLM-8B dans les langues d'Afrique de l'Ouest anglais : 0,988 contre 0,976 pour JEV (écart démontré) ; +21 points sur Laya et +54 sur CLM-8B en langues africaines
Rapide 33 ms par décision sur GPU plus rapide que CLM-8B (10 fois plus gros) et 16 fois plus rapide que l'API JEV
Chez vous local, hors ligne, sans facturation à l'appel ; vos données ne sortent pas 0,8 milliard de paramètres, une version compilée de 0,8 Go pour llama.cpp

Cas d'usage

  • Router les messages d'un service client (paiement, compte, réclamation) et n'envoyer à un agent que les cas incertains.
  • Trier des documents, des alertes ou des journaux à grande échelle, avec un taux d'erreur connu à l'avance.
  • Modérer ou qualifier des contenus en français, en anglais et dans les langues d'Afrique de l'Ouest.
  • Préremplir les choix d'un opérateur : même quand la décision passe par un humain, l'ensemble garanti lui présente les options plausibles, triées.

En bref

Taille 0,8 milliard de paramètres (adaptateur LoRA sur un modèle de base ouvert)
Langues entraînées anglais, français, haoussa, yoruba, igbo, pidgin nigérian
Latence médiane 33 ms sur GPU en une passe, 65 ms en deux passes (réglage par défaut)
Garantie couverture vérifiée de 0,90 dans les 6 langues, sur les données de calibration du client
Fonctionnement local et hors ligne ; les données restent chez vous

Nouveautés par rapport à la v1 : meilleure en anglais, plus stable à l'ordre des options (moyenne de deux ordres par défaut), ensembles garantis plus serrés.

Installation

pip install -r requirements.txt
  • Les versions sont figées (torch 2.8.0, transformers 5.15.0, peft 0.21.0) : avec des versions plus récentes, le calcul sur processeur devient extrêmement lent pour cette architecture.
  • Au premier lancement, le modèle de base (environ 1,6 Go) est téléchargé depuis son dépôt d'origine ; ensuite, tout fonctionne hors ligne.
  • Sur GPU NVIDIA, installez aussi flash-linear-attention pour les noyaux optimisés. Sans GPU, le calcul passe par une implémentation de référence, correcte mais plus lente (environ 1,3 s par décision sur 8 fils).
  • Une version compilée pour llama.cpp (GGUF 8 bits, environ 0,8 Go, 939 ms sur 8 fils de CPU) est disponible dans mindestria/hapy-decider-v2-flash-0.8b-gguf.

Utilisation

from hapy_decider import HapyDecider

m = HapyDecider(".", device="cuda")         # ou "cpu", "mps" (Mac) ; rotations=1 pour une seule passe
options = {"politique": "Gouvernement, élections, sécurité",
           "economie": "Marchés, entreprises, finances",
           "sante": "Maladies, hôpitaux, santé publique"}

m.predict("La BCEAO relève son taux directeur de 25 points de base.", "Quel est le sujet ?", options)
# probabilités par option

m.calibrate(mes_exemples, alpha=0.10)       # 150 à 500 exemples étiquetés de VOS données
m.save_calibration("calibration.json")

m.decide(texte, "Quel est le sujet ?", options)
# {"decision": "auto" | "humain", "choix": ..., "ensemble_garanti": [...], "garantie": {...}, ...}
  • Un exemple complet se trouve dans exemples/demo.py.
  • Le format des entrées et des sorties est décrit dans docs/FORMAT_SORTIE.md, et une documentation complète en HTML dans docs/index.html.

Bonnes pratiques

  • Calibrez sur vos données et sur votre matériel de production. Les probabilités varient de quelques centièmes selon la précision du calcul (16 bits sur GPU, 32 bits sur CPU) ; les décisions, elles, ne changent pas.
  • Calibrez avec le même réglage de rotations qu'en production.
  • Recalibrez si vos données changent de nature (nouveau produit, nouvelle langue, nouveau canal) ; il n'est pas nécessaire de réentraîner. Une calibration faite pour la v1 est refusée par la v2.
  • La garantie porte sur la moyenne, sur des données de même distribution que la calibration. Les probabilités brutes ne sont pas des confiances : seule la sortie calibrée est garantie.

Benchmark

Mêmes 2 295 articles de test en 6 langues, même question, mêmes options, pour quatre modèles de décision. En anglais, 548 articles ont été ajoutés (948 au total) pour HapyDecider, JEV et CLM.

  • JEV (jev-1.13.0) : modèle commercial servi par API.
  • Laya (0.3.23) : modèle ouvert, avec son routeur de langue.
  • CLM-8B (Contrastive-LM/CLM-v0.1-8B, Stanford et NVIDIA) : modèle ouvert de 8 milliards de paramètres.
  • HapyDecider v2 : ce paquet, deux passes.

Seuls des chiffres agrégés sont publiés.

Exactitude par langue

exactitude anglais français haoussa yoruba igbo pidgin moy. 5 langues africaines
HapyDecider v2, étiquettes d'origine 0,884 0,838 0,830 0,925 0,864 0,961 0,883
JEV, étiquettes d'origine 0,852 0,825 0,815 0,932 0,854 0,954 0,876
Laya, étiquettes d'origine 0,833 0,743 0,510 0,590 0,636 0,892 0,674
CLM-8B, étiquettes d'origine 0,347 0,485 0,333 0,323 0,262 0,544 0,389
HapyDecider v2, étiquettes arbitrées* 0,988 0,983 0,948 0,965 0,923 0,993 0,962
JEV, étiquettes arbitrées* 0,976 0,995 0,983 0,998 0,956 0,997 0,986
Laya, étiquettes arbitrées* 0,900 0,915 0,570 0,635 0,697 0,941 0,752
CLM-8B, étiquettes arbitrées* 0,441 0,550 0,352 0,378 0,274 0,577 0,426

Anglais sur 948 articles (Laya : 400). Écarts avec intervalles de confiance à 95 % (bootstrap apparié, stratifié par langue) :

  • anglais : HapyDecider v2 devance JEV de 1,3 point [+0,2 ; +2,3], soit 11 erreurs contre 23 sur 948 articles ;
  • langues africaines, étiquettes d'origine : au niveau de JEV (+0,7 point [-0,4 ; +1,9]) ;
  • contre Laya : +21 points sur les langues africaines, +9 en anglais ;
  • contre CLM-8B, dix fois plus gros : +54 points sur les langues africaines, +55 en anglais.

* Le jeu de test est étiqueté par rubrique éditoriale (un article d'histoire peut y être classé « économie »). Les articles contestés ont été rejugés à l'aveugle selon le sujet principal ; les deux échelles se lisent côte à côte.

Garantie conforme

Tous les modèles tiennent la garantie à 90 % (couverture mesurée de 0,898 à 0,905). Ils diffèrent par la taille de l'ensemble garanti, qui détermine la part de décisions automatiques :

réponses par ensemble (moyenne) anglais français haoussa yoruba igbo pidgin
HapyDecider v2 1,08 1,20 1,39 0,96 1,08 0,91
JEV 1,13 1,44 1,57 0,95 1,13 0,92
Laya 1,22 1,77 3,79 2,86 2,46 1,03
CLM-8B 4,28 2,94 4,65 3,36 3,90 2,77

Latence par décision

latence par décision (médiane) GPU CPU, 8 fils
HapyDecider v2, une passe 33 ms 1 333 ms (PyTorch), 939 ms (GGUF 8 bits)
HapyDecider v2, deux passes (défaut) 65 ms
CLM-8B 35 ms
Laya 11 ms 307 ms
JEV (API, réseau compris) 525 ms

HapyDecider, CLM et le GGUF ont été mesurés sur la même machine, au repos (GPU RTX PRO 6000) ; Laya sur une machine équivalente. Sur GPU, HapyDecider v2 en une passe est le plus rapide des modèles exacts.

autres mesures HapyDecider v2 JEV Laya CLM-8B
stabilité à l'ordre des options 0,989 0,986 0,925 1,000
calibration brute (ECE, plus bas = mieux) 0,101 0,082 0,157 0,253

Décisions aux embranchements (Taste-Bench)

Taste-Bench mesure le « goût » d'un agent : choisir, à un embranchement d'une tâche de programmation ou de recherche, la direction qui mène au meilleur résultat. Sans aucun entraînement sur cette tâche, HapyDecider v2 en deux passes obtient 0,543 (0,595 sur les tâches de programmation), contre 0,538 pour CLM-8B ; le meilleur modèle frontière publié obtient 0,597. Une version spécialisée est en préparation.

Ce qu'apporte l'entraînement

Progression

étiquettes arbitrées anglais français haoussa yoruba igbo pidgin moy. afr.
HapyDecider v1 0,973 0,988 0,948 0,965 0,913 1,000 0,963
HapyDecider v2 0,988 0,983 0,948 0,965 0,923 0,993 0,962

Anglais sur les 400 articles du test d'origine. La v2 gagne 1,5 point en anglais et conserve le niveau de la v1 dans les autres langues.

Entraînement

  • Adaptateur entraîné par Mindestria sur le modèle de base ouvert indiqué dans les métadonnées de ce dépôt.
  • Données : articles d'actualité en anglais, français, haoussa, yoruba, igbo et pidgin, distincts du jeu de test.
  • Reproductibilité : 3 entraînements indépendants ; en anglais, 0,985 à 0,991 sur l'échelle arbitrée.

Méthode et cadre d'usage

  • Mesures faites sur la classification thématique d'articles de presse. Pour une autre tâche, calibrez sur vos propres exemples : la garantie s'applique alors à votre tâche.
  • Arbitrage : les articles contestés ont été rejugés à l'aveugle ; le jeu de test est public depuis 2023.
  • Langues entraînées : anglais, français, haoussa, yoruba, igbo, pidgin. Le baoulé, le dioula, le sénoufo et le nouchi sont prévus.

Licence

© 2026 Mindestria. Tous droits réservés (voir LICENSE).

Downloads last month
34
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for mindestria/hapy-decider-v2-flash-0.8b

Adapter
(57)
this model