Pourquoi cette référence existe et ce qu’elle teste

L’analyse de sang par IA est de plus en plus utilisée dans les parcours grand public et cliniques, mais les cadres d’évaluation reproductibles adaptés à la médecine de laboratoire restent rares. Les questions les plus importantes dans ce contexte ne sont pas celles couvertes par les benchmarks généraux de questions-réponses médicales : un moteur peut-il séparer la carence en fer de la thalassémie mineure lorsque le volume globulaire moyen est identique, surdiagnostique-t-il le syndrome de Gilbert comme une hépatite, et fabrique-t-il une pathologie dans un panel de dépistage entièrement normal ?

Diagramme de flux de la grille pré-enregistrée montrant comment le moteur Kantesti AI — V11 Second Update, score 99.80% composite sur 100 000 cas — est évalué par rapport à des critères de scoring figés
Figure 1 : L’architecture de référence qui se cache derrière le Score composite 99,80% cohort de 100 000 cas de la V11 Second Update — chaque cas, chaque mot-clé, chaque système de notation est fixé dans le code source avant que le moteur ne voie un seul PDF, et la grille d’évaluation est identique octet pour octet à la première version de la V11. L’ajustement a posteriori de la grille est impossible par conception.

Un seul panel de prise de sang contient généralement suffisamment de signaux pour étayer plusieurs interprétations concurrentes, et le rôle du clinicien qui interprète consiste à mettre ces interprétations en balance plutôt qu’à retrouver une réponse de manuel. Un moteur qui réussit bien sur des cas de manuel peut néanmoins échouer sur les cas qui comptent le plus : les pièges de diagnostic différentiel, les variantes bénignes qui paraissent alarmantes lorsqu’elles sont isolées, et les panels entièrement normaux qui incitent des assistants confiants à fabriquer une pathologie.

Ce benchmark a été construit précisément autour de ces modes d’échec. Chacun des quinze cas a été choisi pour une propriété diagnostique spécifique : une microcytose par carence en fer qui doit être distinguée d’un trait de thalassémie bêta présentant un volume globulaire moyen identique, une présentation de syndrome de Gilbert où la seule anomalie est une hyperbilirubinémie indirecte isolée, et un panel de dépistage à quinze paramètres dans lequel chaque analyte se situe dans sa plage de référence. La grille récompense les moteurs qui lisent chaque cas selon ses propres termes et pénalise ceux qui aboutissent à un diagnostic en toute confiance lorsque aucun diagnostic de ce type n’est justifié.

En tant que Thomas Klein, MD, j’ai sélectionné ce panel de cas parce que ce sont les schémas que je vois le plus souvent les assistants en médecine de laboratoire interpréter de manière incorrecte. Le mode d’échec coûteux n’est pas " manquer une maladie rare " — c’est fabriquer une pathologie de routine chez des patients qui ne l’ont pas. Notre Validation médicale le hub décrit le cadre plus large ; cette page décrit la preuve de concept initiale V11 et la V11 deuxième mise à jour qui l’a étendue à 100 000 cas synthétiques issus d’un ensemble de cas synthétiques couvrant 127 libellés de pays — en utilisant la même grille de scoring, identique octet pour octet, sans autoriser d’ajustement a posteriori.

Dernière exécution de référence — V11 Second Update (26 avril 2026)

L’exécution de référence de la V11 Second Update du 26 avril 2026 a produit un score composite de 99.80% sur la même grille d’évaluation pré-enregistrée utilisée dans la première version de la V11, évaluée sur 100 000 cas synthétiques issus de l’ensemble de cas synthétiques Kantesti et couvrant 127 libellés de pays et les langues 75+. Chaque cas s’est terminé sur le chemin principal du moteur ; les activations du drapeau de surdiagnostic des cas pièges sont restées à 0 / 87,412. L’exécution originale de la V11 du 23 avril 2026 couvrait 15 cas sélectionnés manuellement (score composite 99.12%) et a validé la grille ; la Second Update conserve cette grille identique octet pour octet et étend l’évaluation à une cohorte à l’échelle d’une population.

Composite 99.80% 100 000 sur 100 000 cas notés
1.000 Score structurel
0.996 Score clinique
13,26 s Latence moyenne
0 / 87,412 Faux positifs pièges

La formule composite combine trois composantes : conformité structurelle avec les sept sections de rapport obligatoires et les seize sous-sections obligatoires, exactitude du contenu mesurée comme le rappel des mots-clés plus le rappel du système de score plus une vérification de validité de la distribution de probabilité, et latence de réponse par rapport à l’objectif de niveau de service du chemin principal. La décomposition exacte est indiquée dans la formule de la grille ci-dessous — aucun de ces poids ni sous-grilles n’a été modifié pour la Second Update.

Composite = 0.35 × Structurel + 0.55 × Clinique + 0.10 × Latence

Les 0,20 point(s) de pourcentage restants d’espace de manœuvre se décomposent presque entièrement en sous-score clinique — une petite fraction des cas (principalement en Hépatologie et en Rhumatologie) avait un mot-clé attendu du système de notation absent de l’interprétation du moteur, malgré un contenu diagnostique correct. Aucun cas dans la cohorte de 100 000 cas de la Second Update n’a manqué le diagnostic lui-même. La latence s’est améliorée, passant d’une moyenne de 20,17 s dans la première version de la V11 à 13,26 s dans la Second Update, ce qui reflète des optimisations du moteur de production entre les deux exécutions ; la grille, le code de notation et le point de terminaison de l’API sont inchangés.

Les scores composites par libellé allaient de 0,9971 à 0,9985 sur les 30 libellés de pays les plus représentés. La longue traîne des 97 libellés supplémentaires (≈ 7 300 cas combinés) n’a montré aucune dégradation systématique. Les libellés les plus fréquents par nombre de cas étaient les États-Unis (10 500), le Brésil (9 500), l’Espagne (9 000), l’Italie (8 000), l’Allemagne (7 800), la France (7 400), le Portugal (5 800), Türkiye (3 400), le Royaume-Uni (2 900) et le Mexique (2 500).

De 15 cas à 100 000 : évolution de la cohorte sur 127 libellés de pays

Le panel de cas initial V11 couvrait sept spécialités — hématologie, endocrinologie, médecine métabolique, hépatologie, néphrologie, cardiologie, rhumatologie — plus deux cas dédiés de piège d’hyperdiagnostic, chaque cas étant un panel de tests sanguins généré synthétiquement. La V11 deuxième mise à jour étend l’évaluation à 100 000 cas synthétiques sur 127 libellés de pays, répartis sur huit spécialités (les sept d’origine plus un compartiment interne de médecine qui absorbe la sous-partie des cas pièges). La même grille d’évaluation est appliquée identique octet pour octet sur les deux exécutions.

Conception du panel de cas initial V11 — quinze cas de bilans sanguins synthétiques répartis sur sept spécialités médicales, plus deux cas pièges de surdiagnostic ; la même grille a obtenu un score composite de 99,80% sur 100 000 cas dans la Deuxième Mise à Jour V11
Figure 2 : Conception initiale du panel de cas de la V11 pour l’hématologie, l’endocrinologie, la médecine métabolique, l’hépatologie, la néphrologie, la cardiologie, la rhumatologie, plus deux cas pièges — le syndrome de Gilbert et un panel de dépistage entièrement normal. La Second Update conserve cette grille identique octet pour octet tout en étendant la cohorte à 100 000 cas tirés du référentiel SQL Kantesti.

Comme tous les cas sont générés synthétiquement, il n’y a aucun identifiant réel à supprimer et aucune donnée personnelle n’est impliquée. Chaque cas synthétique porte un code de cas interne au benchmark (BT-NNN-LABEL dans l’ensemble initial V11, un identifiant stable case_uid dans la deuxième mise à jour). Aucune donnée personnelle n’apparaît nulle part dans le banc publié, le rapport technique ou les ensembles de données diffusés.

première version de la V11 — 15 cas sélectionnés manuellement

Le panel de cas V11 original a été sélectionné manuellement par le Dr Thomas Klein afin d’exercer les schémas diagnostiques que les assistants en médecine de laboratoire se trompent le plus souvent. Chacun des quinze cas a été choisi pour une propriété diagnostique spécifique, listée ci-dessous.

Hématologie (3) BT-001, BT-006, BT-007 Anémie par carence en fer · Carence en B12 · Bêta-thalassémie mineure
Endocrinologie (3) BT-002, BT-008, BT-012 Thyroïdite de Hashimoto · SOPK avec résistance à l’insuline · Carence sévère en vitamine D
Métabolique (2) BT-003, BT-013 DT2 avec syndrome métabolique · Hyperuricémie avec risque de goutte
Hépatologie (2) BT-004, BT-009 NAFLD / NASH · Hépatite virale aiguë
Néphrologie · Cardiologie · Rhumatologie (3) BT-005, BT-010, BT-011 IRC stade 3 · Dyslipidémie athérogène · Lupus érythémateux systémique
Cas pièges (2) BT-014, BT-015 Syndrome de Gilbert (hyperbilirubinémie indirecte isolée) · Dépistage adulte entièrement normal

Pourquoi cette répartition particulière

L’hématologie obtient trois cas, car les diagnostics différentiels microcytaires et macrocytaires sont les pièges à plus fort volume dans la pratique réelle des laboratoires. L’endocrinologie en obtient trois, car les présentations de la maladie de Hashimoto, du SOPK et de la carence en vitamine D sollicitent des formes diagnostiques différentes (pilotées par les auto-anticorps, pilotées par le rapport hormonal, pilotées par un seul marqueur). Les spécialités à cas unique restent pertinentes, car chacun des éléments que sont la MRC, le risque d’ASCVD et la LED/SLE dispose de son propre système de score que le moteur doit invoquer (respectivement stades KDIGO, risque à 10 ans d’ASCVD, critères 2019 EULAR/ACR pour la SLE).

V11 deuxième mise à jour — 100 000 cas synthétiques sur 127 libellés de pays

La deuxième mise à jour remplace le littéral Python de 15 cas codé en dur de la V11 initiale par un ensemble de cas synthétiques plus vaste, généré de manière programmatique. L’ensemble de cas est chargé au début de chaque exécution et la configuration est consignée pour la transparence. La répartition de la cohorte par domaine de contenu est présentée ci-dessous.

Endocrinologie 23 900 cas (23,9%) Thyroïde, PCOS, vitamine D, axe gonadique, hypophyse
Médecine métabolique 21 900 cas (21,9%) T2DM, syndrome métabolique, bilans lipidiques, hyperuricémie
Hématologie 15 400 cas (15,4%) Différentiels microcytaires et macrocytaires, B12/folate, bilans du fer
Hépatologie 12 400 cas (12,4%) NAFLD/NASH, hépatite virale, FIB-4, cholestase
Médecine interne (incl. sous-ensemble piège) 9 000 cas (9,0%) Présentations mixtes et 8 723 cas dédiés de piège d’hyperdiagnostic
Cardiologie 7 500 cas (7,5%) Risque d’ASCVD, dyslipidémie athérogène, hs-CRP
Rhumatologie 6 000 cas (6,0%) LED, PR, vascularites, panels d’auto-anticorps (critères EULAR/ACR)
Néphrologie 4 000 cas (4,0%) Staging de la MRC (KDIGO), tendances de eGFR, troubles hydroélectrolytiques

Répartition synthétique des libellés de pays — top 10 des libellés

Les 100 000 cas synthétiques portent 127 libellés de pays (ISO 3166-1 alpha-2) pour tester la gestion des paramètres régionaux. Attribution des libellés : Europe 57,7%, les Amériques 25,4%, Asie-Pacifique 6,2%, libellés du Moyen-Orient/Afrique nommés 3,4%, et une longue traîne de 97 libellés supplémentaires représentant environ 7,3% combinés. Les dix libellés les plus fréquents par nombre de cas sont les États-Unis (10 500), le Brésil (9 500), l’Espagne (9 000), l’Italie (8 000), l’Allemagne (7 800), la France (7 400), le Portugal (5 800), Türkiye (3 400), le Royaume-Uni (2 900) et le Mexique (2 500). Les scores composites par libellé allaient de 0,9971 à 0,9985. Ces nombres de libellés sont des propriétés des cas générés utilisés pour tester la gestion des paramètres régionaux — ce ne sont pas des utilisateurs réels et ce n’est pas une couverture géographique du monde réel.

La grille pré-enregistrée, expliquée

L’enregistrement préalable est le choix méthodologique le plus important dans ce benchmark. Chaque diagnostic attendu, chaque système de score clinique et chaque section de rapport ont été engagés dans le code source avant l’appel du moteur. L’ajustement a posteriori de la grille pour flatter le moteur est donc impossible.

Trois composantes constituent le score composite. La composante structurelle contribue à 35 % et mesure si le moteur a renvoyé les sept sections obligatoires du rapport (en-tête, résumé, points clés, diagnostic différentiel, systèmes de score, recommandations, suivi) et les seize sous-sections obligatoires qui s’y trouvent. La présence des sections pèse 40 % et la présence des sous-sections pèse 60 % dans le calcul structurel.

Le composante clinique contribue à 55 % et combine trois éléments : le rappel des mots-clés du diagnostic (70 % du sous-score clinique), le rappel du système de score (20 % — le moteur calcule-t-il Mentzer, FIB-4, HOMA-IR, le risque d’ASCVD, le stade KDIGO, les critères EULAR/ACR lorsqu’ils sont pertinents), et une vérification de validité par somme des probabilités (10 % — les probabilités du diagnostic différentiel doivent totaliser dans l’intervalle [90, 110]). Pour les cas pièges, une pénalité explicite d’hyperdiagnostic allant jusqu’à 0,30 est soustraite, calculée à 0,10 par indicateur de pathologie fabriqué, plafonnée à trois indicateurs.

Le composante de latence contribue à 10 %. Une réponse en moins de 20 secondes obtient la totalité de 0,10, une réponse en moins de 40 secondes obtient 0,05, et tout ce qui est plus lent obtient zéro. La cible de 20 secondes reflète l’objectif de niveau de service principal de production ; le plafond de 40 secondes reflète le budget de repli de la phase 2 pour les invocations lourdes du moteur.

Capture d’écran terminal du dispositif de benchmark Kantesti sous licence MIT en cours d’exécution et émettant des scores par cas — le même dispositif, désormais piloté par SQL, a produit le score 99.80% composite lors de l’exécution de 100 000 cas de la V11 Second Update
Figure 3 : Le banc d’essai en exécution — le même moteur qui a produit 99.80% score composite sur la cohorte de 100,000 cas de la V11 Second Update. Chaque cas est rendu en un PDF A4, publié sur l’endpoint de production v11, puis évalué selon la grille figée. La Second Update a ajouté un chargeur de cas SQL paramétré ; un échantillon aléatoire stratifié des réponses brutes du moteur (n = 201) est conservé en parallèle avec le scorecard agrégé.

Ce que l’enregistrement préalable empêche

Les benchmarks de première partie sont notoirement enclins à gonfler leurs propres chiffres via un ajustement a posteriori de la grille. Le schéma est presque toujours le même : l’équipe exécute le moteur, constate où il sous-performe, puis ajuste discrètement la grille pour que les zones sous-performantes comptent moins. En engageant la grille dans le code source avant le premier appel du moteur et en publiant le banc sous licence MIT, cet ajustement devient visible dans le contrôle de version. N’importe qui peut cloner le dépôt, vérifier les dates de rédaction de la grille et confirmer que les résultats du moteur n’ont pas été utilisés pour façonner la notation.

Cas pièges de surdiagnostic — pourquoi la surinterprétation est le véritable mode d’échec

Un surdiagnostic agressif de la pathologie sur des dépistages normaux est un mode d’échec documenté des assistants médicaux destinés aux consommateurs. Ses coûts en aval incluent des investigations inutiles, l’anxiété du patient et une prise en charge iatrogène. Les deux cas pièges de ce benchmark sont conçus pour rendre ce mode d’échec visible et évaluable.

Comparaison côte à côte d’une IA naïve fabriquant une hépatite sur un panel de syndrome de Gilbert versus le moteur Kantesti identifiant correctement le polymorphisme UGT1A1 bénin — méthodologie qui a été étendue à zéro faux positifs sur 87 412 opportunités de signalement de piège dans le benchmark V11 Second Update 99.80%
Figure 4 : La conception de cas piège issue de la première version V11 — un moteur qui étiquette avec assurance le syndrome de Gilbert comme une hépatite, ou qui fabrique une pathologie borderline sur un écran entièrement normal, est pénalisé plutôt que récompensé pour avoir sonné clinique. Cette méthodologie a été étendue à 0 / 87,412 des faux positifs lors de l’exécution de la V11 Second Update sur 100,000 cas qui a produit le score composite de 99.80%.

🟡 Piège 1 — BT-014-GILBERT

Présentation. Un homme de 24 ans avec une bilirubine totale à 2,4 mg/dL. La fraction directe est normale, les transaminases et la phosphatase alcaline se situent dans leurs intervalles de référence, les réticulocytes sont sans particularité, et l’haptoglobine et la LDH écartent une hémolyse.

Interprétation correcte. Le syndrome de Gilbert — un polymorphisme bénin de l’UGT1A1. L’interprétation ne doit pas invoquer une hépatite, une cirrhose, une anémie hémolytique ou une obstruction biliaire.

Résultat V11. Composite 1,000. Aucun des six indicateurs de surdiagnostic surveillés n’est apparu comme diagnostic actif.

🟡 Piège 2 — BT-015-HEALTHY

Présentation. Une femme de 35 ans, avec un panel de dépistage de routine à quinze paramètres. Chaque analyte se situe confortablement dans sa plage de référence.

Interprétation correcte. Rassurance et maintien des habitudes de vie. L’interprétation ne doit pas fabriquer une pathologie limite pour paraître cliniquement utile.

Résultat V11. Composite 1.000. Aucun des sept signaux d’hyperdiagnostic surveillés — diabète, anémie, hypothyroïdie, dyslipidémie, hépatite, maladie rénale, carence — n’est apparu comme diagnostic actif.

Sur les deux pièges, treize signaux d’hyperdiagnostic surveillés ont été vérifiés. Aucun n’a été déclenché. C’est le résultat qui compte le plus pour tout clinicien envisageant d’utiliser un moteur d’IA comme outil de triage ou de pré-consultation : le système n’a pas inventé une maladie lorsqu’il n’en existait aucune.

Indice de Mentzer : distinguer la carence en fer de la thalassémie mineure

Une deuxième découverte à forte valeur concerne l’association du cas BT-001 (anémie ferriprive) avec le cas BT-007 (petit trait bêta-thalassémique). Les deux présentent une microcytose et constituent un obstacle bien connu pour les classificateurs naïfs. L’indice de Mentzer, calculé comme le MCV divisé par le nombre de GR, dépasse 13 dans l’anémie ferriprive et tombe en dessous de 13 dans le trait thalassémique.

Dans BT-001, la patiente avait 34 ans, une hémoglobine à 10,4 g/dL, un MCV à 72,4 fL, un nombre de GR à 4,1 × 10¹²/L, une ferritine à 6 ng/mL et une TIBC élevée. L’indice de Mentzer d’environ 17,7 soutient une carence absolue en fer. Dans BT-007, le patient avait 28 ans, une microcytose (MCV 65,8 fL) mais un nombre de GR élevé à 6,2, une RDW normale, une ferritine normale et une HbA2 à 5,6 %. L’indice de Mentzer d’environ 10,6 indique un trait thalassémique, et l’HbA2 élevée confirme un petit trait bêta-thalassémique.

Anémie ferriprive Mentzer > 13 Ferritine basse, TSAT basse, TIBC élevée, RDW élevée
Trait bêta-thalassémique Mentzer < 13 Ferritine normale, RDW normale, HbA2 élevée (>3.5%), nombre de GR élevé

Les deux cas ont obtenu un score de 1.000. Le moteur a invoqué explicitement l’indice de Mentzer dans les deux interprétations et a renvoyé le diagnostic correct dans chaque cas. C’est le résultat le plus rassurant sur le plan clinique dans l’ensemble du benchmark, car confondre un trait thalassémique avec une carence en fer conduit à une supplémentation en fer inappropriée et à des occasions manquées de dépistage familial, et confondre une carence en fer avec une thalassémie retarde un traitement de remplacement simple. Notre guide des valeurs de ferritine explique le contexte différentiel plus large.

Résultats par cas issus de l’exécution de référence initiale V11 (23 avril 2026)

L’exécution de référence V11 originale sur la cohorte de preuve de concept à 15 cas sert de fondement méthodologique de la Second Update : chaque détail par cas ci-dessous illustre comment la grille traite une réponse réelle du moteur. Douze des quinze cas ont atteint le score composite plafond de 1.000 sur le chemin principal ; trois cas ont été servis via le mécanisme de repli Phase 2, perdant le bonus de latence de 0.05 tout en préservant tout le contenu clinique et structurel. Un cas manquait une seule sous-section obligatoire ; un autre a renvoyé une somme de distribution de probabilité légèrement réduite.

Identifiant du cas Spécialité Composite Latence Voie
BT-001-IDAHématologie1.00017,8 sprimaire
BT-006-B12Hématologie1.00018,4 sprimaire
BT-007-THALHématologie1.00017,0 sprimaire
BT-002-HASHEndocrinologie0.95037,0 ssolution de secours
BT-008-PCOSEndocrinologie0.98718,6 sprimaire
BT-003-T2DMMétabolique1.00019,1 sprimaire
BT-013-GOUTMétabolique1.00019,4 sprimaire
BT-004-NAFLDHépatologie1.00019,6 sprimaire
BT-009-VIRHEPHépatologie0.95023,4 ssolution de secours
BT-014-GILBERTPiège1.00018,9 sprimaire
BT-005-CKDNéphrologie1.00017,4 sprimaire
BT-010-ASCVDCardiologie1.00019,7 sprimaire
BT-011-SLERhumatologie0.98118,2 sprimaire
BT-012-VITDEndocrinologie1.00019,3 sprimaire
BT-015-SAINPiège1.00018,7 ssolution de secours

Le cas de SOP (BT-008) a perdu une seule sous-section obligatoire dans la structure de la réponse — quinze sur seize au lieu de seize sur seize — ce qui a réduit le score structurel de 1,000 à 0,963. Le cas de SLE (BT-011) a renvoyé une somme de probabilités marginalement réduite, ce qui a abaissé le score clinique à 0,965 tout en préservant chaque mot-clé diagnostique et le système de notation. Aucun des deux cas imparfaits n’a manqué un diagnostic correct.

Agrégé V11 Second Update — 100,000 cas

À l’échelle de la population, les lignes individuelles de cas ne sont pas lisibles par des humains ; la deuxième mise à jour rapporte donc des indicateurs agrégés plutôt qu’un tableau de 100 000 lignes. L’agrégat principal est présenté ci-dessous ; les ventilations par spécialité et par libellé de pays sont publiées dans le rapport technique et dans le dépôt Figshare. Un échantillon aléatoire stratifié de n = 201 réponses brutes du moteur (graine déterministe 20260426) est publié dans le répertoire GitHub répertoire results/ pour inspection.

Score composite V11 initial : 0.9912 (99.12%) → Second Update : 0.9980 (99.80%) Δ = +0.0068 sur la cohorte de 100,000 cas
Score structurel (moyenne) V11 initial : 0.998 → Second Update : 1.000 Conformité structurelle parfaite à l’échelle de la population
Score clinique (moyenne) V11 initial : 0.998 → Second Update : 0.996 −0.002 ; aucun cas n’a manqué le diagnostic lui-même
Latence — moyenne (intervalle) V11 initial : 20,17 s (17,0–37,0 s) → Deuxième mise à jour : 13,26 s (9,0–16,94 s) Optimisations du moteur de production entre les exécutions
Chemin du moteur = principal V11 initial : 12 / 15 → Deuxième mise à jour : 100,000 / 100,000 Aucun repli en phase 2 n’a été nécessaire à aucun moment pendant l’exécution
Drapeaux d’hyperdiagnostic pour le sous-ensemble de pièges V11 initial : 0 / 13 → Deuxième mise à jour : 0 / 87,412 Zéro faux positifs à l’échelle de la population (8 723 cas de pièges surveillés)

Ce que le score en une phrase ne nous dit pas

Un score composite de 99,80 pour cent selon cette grille pré-enregistrée particulière, sur une cohorte synthétique de 100 000 cas couvrant 127 libellés de pays, représente une performance proche du plafond — mais il mérite un cadrage soigneux. Le résultat décrit le comportement de l’engine par rapport à la grille à laquelle nous nous sommes engagés dans le code source en V11 ; ce n’est pas une affirmation universelle sur la justesse de l’engine pour chaque panel de tests sanguins existant dans le monde réel.

Le score indique que le moteur a géré correctement les schémas diagnostiques sélectionnés pour cette évaluation sur une cohorte à l’échelle de la population, selon une méthodologie publiée et reproductible. Il ne dit pas que le moteur est correct pour chaque panneau de prise de sang existant dans la nature. Il ne dit pas non plus que le moteur devrait remplacer le jugement clinique. Et il ne dit pas que le moteur surpasse d’autres systèmes d’IA — les analyses comparatives avec d’autres moteurs étaient volontairement hors du périmètre de ce rapport.

Ce que le score établit, en revanche, c’est une base de référence. Avec la rubrique et le banc d’essai rendus publics, les versions futures du moteur peuvent être évaluées selon la même rubrique — appliquée aux 15 cas initiaux de V11, à la cohorte de 100 000 cas de la Deuxième mise à jour, ou à toute extension ultérieure — et l’écart entre le score publié et toute exécution ultérieure est lui-même mesurable. C’est la valeur du préenregistrement : il transforme des affirmations de performance en affirmations testables.

Comment reproduire ce benchmark en 10 minutes

La reproduction nécessite uniquement une paire d’identifiants d’API Kantesti et un environnement Python 3.10 ou ultérieur avec le requests et reportlab bibliothèques installées. Le banc d’essai complet est un seul module Python autonome, publié sous licence MIT.

Diagramme du réseau de reproductibilité montrant le banc d’essai de la Deuxième Mise à Jour V11 (score composite 99,80%, 100 000 cas, 127 pays/étiquettes) reproduit sur Figshare, ResearchGate, Academia.edu et GitHub, avec le DOI Figshare comme ancrage canonique
Figure 5 : Le benchmark V11 Deuxième mise à jour — Score composite de 99,80% sur 100 000 cas couvrant 127 libellés de pays — est reproduit sur quatre plateformes de recherche. Le DOI Figshare est l’identifiant bibliographique canonique ; ResearchGate (publication 404175463), Academia.edu (article 165956808) et GitHub hébergent des copies parallèles avec le banc d’essai (benchmark), l’échantillon stratifié aléatoire de réponses brutes et les tableaux de bord par pays/étiquette et par spécialité.

Quatre étapes pour une nouvelle exécution

Une. Cloner le dépôt : git clone https://github.com/emirhanai/kantesti-blood-test-benchmark.git. Deux. Installez les dépendances avec pip install -r requirements.txt (La Deuxième mise à jour ajoute mysql-connector-python ≥ 8.0 pour le chargeur de cas SQL). Trois. Définissez KANTESTI_USERNAME et KANTESTI_PASSWORD comme variables d’environnement pour l’API du moteur. Pour le chargeur de cas SQL de la Deuxième mise à jour, définissez également KANTESTI_DB_HOST, KANTESTI_DB_PORT, KANTESTI_DB_NAME, KANTESTI_DB_USER, et KANTESTI_DB_PASSWORD — le chargeur se connecte via un rôle en lecture seule (bench_reader) qui n’a aucun privilège pour identifier les tables. Quatre. Lancez python benchmark_bloodtest.py --limit 100000 pour le run complet Second-Update, ou python benchmark_bloodtest.py --limit 1000 pour une itération rapide. Les sorties sont enregistrées dans ./benchmark_results/: une fiche de score au format CSV avec des colonnes par pays/étiquette et par spécialité, un agrégat JSON, un échantillon stratifié-aléatoire de réponses brutes et un rapport Markdown.

Les exécutions de référence du 23 avril 2026 (V11 initial, 15 cas) et du 26 avril 2026 (V11 Second Update, 100,000 cas) sont conservées dans répertoire results/ le répertoire du dépôt. Une exécution nouvelle produira une nouvelle fiche de score horodatée tout en laissant les exécutions de référence intactes. Si votre exécution produit un résultat significativement différent, veuillez ouvrir un ticket GitHub avec l’horodatage de l’exécution et la version du moteur renvoyée dans les métadonnées de réponse.

Limites et travaux futurs

Même avec 100 000 cas sur 127 pays/étiquettes, quatre limites méritent une reconnaissance explicite : sous-échantillonnage des étiquettes à longue traîne, évaluation en une seule passe, périmètre limité à un seul moteur et origine des données unique. Chacune fait l’objet d’un suivi actif.

Couverture des étiquettes à longue traîne. La Deuxième Mise à Jour couvre 127 pays/étiquettes, mais la distribution est déséquilibrée — les 10 étiquettes principales représentent ≈66,4% des cas, et la longue traîne de 97 étiquettes supplémentaires contribue ensemble ≈7,3% (environ 7 300 cas au total, ~75 cas par étiquette en moyenne). Les composites par étiquette dans cette longue traîne sont donc plus bruités que ne le laissent entendre les chiffres en tête. Les exécutions futures rééquilibreront l’attribution des étiquettes afin de consolider les estimations par étiquette.

Évaluation en une seule fois. Chaque cas du groupe a été évalué une seule fois. Les grands modèles de langage présentent une variance de sortie non négligeable même à faible température d’échantillonnage ; un protocole multi-exécutions avec cinq évaluations par cas et une variance rapportée constitue donc une prochaine étape naturelle — en particulier sur le sous-ensemble des cas pièges, où la constance sous l’effet d’un “jitter” d’échantillonnage fait partie de l’affirmation de sécurité.

Périmètre d’un seul moteur. Ce rapport décrit un seul moteur. Les analyses comparatives avec d’autres systèmes d’IA ne sont pas dans le périmètre ici ; nous pourrions les poursuivre comme une étude indépendante distincte avec une méthodologie appropriée, sur le même banc de test sous licence MIT.

Données synthétiques. Les 100 000 cas sont générés de manière synthétique, et non des « cas synthétiques » : les résultats ne se transfèrent pas aux performances cliniques en conditions réelles. L’évaluation sur des données réelles, consenties et provenant de sources externes nécessiterait une supervision éthique appropriée et sort du cadre de ce banc d’essai synthétique.

Au-delà de ces quatre points, l’extension la plus marquante prévue est l’équivalence multi-langue par juridiction. Le moteur d’IA Kantesti sert des utilisateurs dans 75+ langues, et l’exécution de sous-cohortes Second-Update stratifiées par langue (turc, allemand, espagnol, français, italien, portugais, arabe, mandarin) quantifiera la qualité des sorties dans les langues prises en charge par le moteur. Chaque analyse stratifiée par langue sera publiée avec son propre DOI et sa branche de banc de test.