Protocole de mesure
Les chiffres de ce site viennent de jeux de données publics, pas de données clients. Cette page décrit comment ils ont été obtenus : résultats et méthode. Le code d'évaluation n'est pas publié.
Jeux de données et licences
| Tâche | Jeu de données | Langues | Entraînement | Test |
|---|---|---|---|---|
| Intentions bancaires, 77 catégories | Banking77 (PolyAI, 2020), CC BY 4.0 | anglais | 9 000 phrases (1 003 autres pour la validation) | 500 phrases tirées du test officiel, graine fixe |
| Routage, 60 intentions | MASSIVE (Amazon, 2022), CC BY 4.0 | français, allemand, italien, anglais | 11 514 phrases par langue, entraînement conjoint des quatre langues | test officiel complet : 2 974 phrases par langue |
| Question oui / non : le message concerne-t-il l'agenda ? | dérivé de MASSIVE, CC BY 4.0 | français, allemand, italien | 11 514 phrases par langue (dont 1 688 « oui »), entraînement conjoint | 500 phrases par langue, 250 « oui » et 250 « non » |
Pour la question oui / non, « oui » correspond au scénario calendar de MASSIVE (créer, consulter ou supprimer un rendez-vous) ; « non » aux 17 autres scénarios (alarme, météo, musique, transports…), répartis à parts égales dans le test.
Un jeu de données de prises de position (X-stance) a aussi été évalué, puis écarté : sa licence interdit l'usage commercial.
Modèles comparés
- Modèle spécialisé : mmBERT-base (encodeur multilingue, licence MIT) affiné pour chaque tâche avec une couche de classification. Hyperparamètres fixés avant toute mesure, sans recherche sur le test ; dernier point de contrôle conservé. Pour la mise en service, le modèle est exporté au format ouvert ONNX puis quantifié en int8 : 294 Mo sur disque, sans GPU.
- Méthode classique : TF-IDF (mots et groupes de caractères) suivi d'une régression logistique, réglée sur la validation.
- Référence par API : un service généraliste de classification accessible par API, interrogé avec les mêmes phrases et la liste des catégories. Pour les tâches à choix, le résultat est la moyenne de deux ordres de présentation des catégories.
- Un second modèle neuronal (Laya multilingue, Apache 2.0) a aussi été évalué. Il n'a pas été retenu : son export ONNX a échoué et il est 7 à 45 fois plus lent sur CPU selon la tâche (mesures sur Modal, rapport decisionfactory), pour une exactitude comparable.
Métriques
- Exactitude : part des phrases du test correctement classées.
- Exactitude moyenne par classe : moyenne des exactitudes de chaque catégorie, pour ne pas favoriser les catégories fréquentes.
- Erreur de calibration (ECE) : écart moyen entre la confiance annoncée et la fréquence réelle de bonnes réponses (15 intervalles).
Test de non-infériorité
La question posée n'est pas « le petit modèle est-il meilleur ? » mais « est-il au moins aussi bon que la référence par API, à une marge près ? ».
- Bootstrap apparié : 10 000 tirages avec remise des phrases du test, en comparant les deux modèles sur les mêmes phrases.
- Le modèle est déclaré non inférieur si la borne basse de l'intervalle de confiance à 95 % de la différence est au-dessus de −2 points, à la fois pour l'exactitude et pour l'exactitude moyenne par classe.
- Résultat (rapport decisionfactory, modèle fp32 entraîné sur tout le jeu d'entraînement) : non inférieur sur Banking77, sur la question oui / non dans les trois langues, et sur MASSIVE dans les quatre langues avec le test complet. Sur des échantillons de 500 phrases, le résultat n'était pas concluant pour l'allemand : c'est pourquoi MASSIVE est mesuré sur le test complet.
Calibration
Les probabilités affichées dans le playground sont calibrées : une température unique, ajustée sur la validation, adoucit les scores du modèle pour que « 0,80 » signifie environ huit bonnes réponses sur dix.
| Test (modèle fp32) | ECE avant | ECE après |
|---|---|---|
| Banking77 | 0,039 | 0,025 |
| MASSIVE complet, français / allemand / italien / anglais | 0,091 / 0,095 / 0,098 / 0,083 | 0,022 / 0,019 / 0,023 / 0,021 |
| Oui / non, français / allemand / italien | 0,032 / 0,024 / 0,031 | 0,013 / 0,014 / 0,008 |
Les mêmes températures sont appliquées au modèle int8 servi ; sa calibration n'a pas été remesurée séparément.
Modèle servi et rapport d'évaluation
Le rapport d'évaluation decisionfactory publie les chiffres du modèle fp32 (pour MASSIVE, réentraîné pour l'évaluation sur le test complet). Ce site affiche ceux du modèle int8 réellement servi, que nous avons remesurés sur les mêmes jeux de test. Les écarts sont d'un point au plus :
| Test | Rapport (fp32) | Modèle servi (int8) |
|---|---|---|
| Banking77 | 0,934 | 0,924 |
| MASSIVE complet, anglais | 0,891 | 0,893 |
| MASSIVE complet, français | 0,880 | 0,878 |
| MASSIVE complet, allemand | 0,872 | 0,863 |
| MASSIVE complet, italien | 0,874 | 0,876 |
| Oui / non, français / allemand / italien | 0,964 / 0,970 / 0,968 | 0,964 / 0,968 / 0,968 |
Les colonnes « méthode classique » et « référence par API » reprennent le rapport decisionfactory (octobre 2026).
Mesure de latence et de coût
- La latence du modèle spécialisé est mesurée sur le serveur qui héberge ce site (4 vCPU, sans GPU), dans le conteneur du service, limité à 2 CPU et 2,5 Go de mémoire. Aucune latence de ce modèle mesurée sur une autre machine n'est affichée.
- Une décision = une phrase, traitée seule (pas de lot), une requête à la fois. Phrases fixes et publiques de 4 à 20 mots, plus un texte de 500 caractères ; tours d'échauffement exclus ; médiane (p50) et 95e centile (p95). La tokenisation est comprise dans le temps mesuré.
- Résultats sur ce serveur (mesure du 17 octobre 2026) : latence médiane d'environ 35 ms par phrase courte (p95 : 50 à 68 ms selon la tâche), 177 à 202 ms pour un texte de 500 caractères, et 27 décisions par seconde environ en flux unique (une requête à la fois, réglage déployé).
- La méthode classique est mesurée de la même façon, sur le même serveur, dans un conteneur aux mêmes limites, avec un seul thread. Sur ce serveur, la méthode classique répond en ~12 ms pour les intentions bancaires et ~2 ms pour la question oui / non, mais en ~56 ms sur MASSIVE, soit plus lentement que le modèle neuronal (~35 ms) : c'est aussi son modèle le plus volumineux (97 Mo, groupes de caractères en quatre langues).
- La latence affichée pour ces deux modèles exclut le réseau entre le visiteur et le serveur. Dans le playground, « latence de cette décision » est le temps de calcul mesuré par le serveur pour votre demande.
- La latence de la référence par API (environ 220 ms) a été mesurée côté client, réseau compris, en octobre 2026. Elle inclut donc l'aller-retour réseau, que les deux autres colonnes n'incluent pas.
- Coût par million de décisions du modèle spécialisé : prix mensuel complet du serveur, en dollars US, divisé par le nombre de décisions traitées en un mois à pleine charge, avec le débit mesuré en flux unique (une requête à la fois, le réglage déployé). Prix retenu : 6,00 USD par mois, soit le prix complet du serveur, attribué en totalité au playground bien que le serveur soit partagé avec d'autres services. C'est une estimation prudente : le coût réel est plus bas. Débit mesuré : 26,8 décisions par seconde.
- Coûts de comparaison, en dollars US : méthode classique sur une instance cloud de 2 cœurs, référence par API selon son tarif par jeton et le nombre de jetons mesuré par requête ; tarifs publics relevés le 15 octobre 2026.
Effet du matériel
Le même modèle int8, mesuré dans deux environnements. Pas de colonne de coût : les bases de prix ne sont pas comparables.
| Environnement | Tâche | p50 | p95 | Décisions par seconde |
|---|---|---|---|---|
| Serveur alec (AMD EPYC, AVX2) 4 vCPU, conteneur limité à 2 CPU, 2 threads ; phrases fixes et publiques, tokenisation comprise mesure du 17 octobre 2026 | Intentions bancaires | 35,2 ms | 68,4 ms | 26,4 |
| Routage multilingue | 35,2 ms | 53,8 ms | 27,8 | |
| Question oui / non | 36,7 ms | 49,8 ms | 26,3 | |
| Conteneurs CPU Modal (decisionfactory, étape 4) (processeur : non relevé) 4 vCPU (2 cœurs physiques), 4 threads ; 120 phrases de test pré-tokenisées (tokenisation hors chronomètre) mesure du 15 octobre 2026 | Intentions bancaires | 9,7 ms | 18,9 ms | 92,8 |
| Routage multilingue | 9,0 ms | 12,8 ms | 107,3 | |
| Question oui / non | 9,1 ms | 14,2 ms | 105,5 |
Sur les conteneurs Modal, le modèle répond environ quatre fois plus vite. L'écart ne vient pas seulement du processeur : ces conteneurs disposaient de 4 vCPU et 4 threads, contre 2 CPU et 2 threads ici, et la tokenisation n'y était pas chronométrée. C'est donc un ordre de grandeur de ce qu'apporte une machine plus puissante, pas une mesure isolée de l'effet du processeur.
Limites
- Données publiques : vos résultats dépendront de vos données. Ils seront mesurés sur un échantillon de celles-ci avant toute décision.
- Banking77 n'existe qu'en anglais. La question oui / non est testée sur un échantillon équilibré (50 % de « oui »), plus facile que la plupart des situations réelles.
- Avec 500 phrases de test, l'incertitude sur une exactitude est d'environ ±2 points (intervalle à 95 %).
- La référence par API a été mesurée en octobre 2026 ; ses résultats et ses tarifs peuvent changer.
- Le coût suppose un serveur chargé à 100 % et n'inclut ni l'intégration ni la maintenance.
- Un modèle spécialisé ne décide pas seul : nous recommandons un seuil de confiance et une supervision humaine pour les cas douteux.