Instructions to use mindestria/hapy-decider-v2-flash-0.8b with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- PEFT
How to use mindestria/hapy-decider-v2-flash-0.8b with PEFT:
from peft import PeftModel from transformers import AutoModelForCausalLM base_model = AutoModelForCausalLM.from_pretrained("Qwen/Qwen3.5-0.8B-Base") model = PeftModel.from_pretrained(base_model, "mindestria/hapy-decider-v2-flash-0.8b") - Notebooks
- Google Colab
- Kaggle
HapyDecider v2
hapy-decider-v2-flash-0.8b
Le modèle de décision qui dit quand il peut décider seul.
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-attentionpour 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 dansdocs/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
rotationsqu'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 | 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.
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 (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
| é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
Model tree for mindestria/hapy-decider-v2-flash-0.8b
Base model
Qwen/Qwen3.5-0.8B-Base



