Hvorfor denne benchmarken finnes og hva den tester
AI-assistert blodprøvetolkning brukes i økende grad i forbruker- og kliniske arbeidsflyter, men reproduserbare evalueringsrammeverk tilpasset laboratoriemedisin er fortsatt uvanlige. Spørsmålene som betyr mest i denne sammenhengen er ikke de som dekkes av generelle medisinske spørsmål-svar-benchmarks: kan en motor skille jernmangel fra talassemi-trekk når det gjennomsnittlige erytrocyttvolumet er identisk, overdiagnostiserer den Gilberts syndrom som hepatitt, og produserer den patologi i et fullstendig normalt screeningpanel?
Et enkelt blodprøvepanel inneholder vanligvis nok signal til å støtte flere konkurrerende tolkninger, og den tolkende klinikerens jobb er å veie disse tolkningene mot hverandre, snarere enn å hente frem et læreboksvar. En motor som presterer godt på læreboksaker, kan fortsatt feile på de viktigste sakene: differensialdiagnostiske fallgruver, de godartede variantene som ser alarmerende ut isolert, og de fullstendig normale panelene som frister selvsikre assistenter til å produsere patologi.
Denne benchmarken ble bygget rundt nettopp disse feilmodusene. Hver av de femten sakene ble valgt ut for en spesifikk diagnostisk egenskap: en jernfattig mikrocytose som må holdes atskilt fra et beta-talassemi-trekk med identisk gjennomsnittlig erytrocyttvolum, en Gilbert's syndrom-presentasjon der den eneste unormaliteten er en isolert indirekte hyperbilirubinemi, og et femten-parameter screeningpanel der hvert analytt ligger innenfor referanseområdet. Vurderingskriteriene belønner motorer som leser hver sak på egne premisser og straffer motorer som griper etter en sikker diagnose der ingen slik diagnose er berettiget.
Som Thomas Klein, MD, valgte jeg sakspanelet fordi dette er mønstrene jeg ser laboratoriemedisinske assistenter gjør feil oftest. Den dyre feilmodusen er ikke "å gå glipp av en sjelden sykdom" — det er å fabrikkere rutinemessig patologi hos pasienter som ikke har det. Vår Medical Validation hub beskriver det bredere rammeverket; denne siden beskriver V11 initial proof-of-concept og V11 Second Update som skalerte den til 100 000 syntetiske saker trukket fra et syntetisk saksett som spenner over 127 landetiketter — ved bruk av de samme scoringskriteriene, byte-identiske, uten justering i etterkant tillatt.
Siste referanseløp — V11 Second Update (26. april 2026)
V11 Second Update referanseløpet av 26. april 2026 produserte en samlet score på 99.80% på de samme forhåndsregistrerte vurderingskriteriene brukt i V11 initial release, evaluert på 100 000 syntetiske saker trukket fra Kantesti syntetiske saksett og som spenner over 127 landetiketter og 75+ språk. Hver sak ble fullført på motorens primære bane; feller-sak hyperdiagnoseflagg-aktiveringer forble på 0 / 87,412. Den opprinnelige V11-kjøringen 23. april 2026 dekket 15 håndkuraterte tilfeller (sammensatt 99.12%) og validerte rubrikken; den andre oppdateringen beholder den rubrikken byte-identisk og utvider evalueringen til en kohort i befolkningsskala.
Den sammensatte formelen kombinerer tre komponenter: strukturell samsvar med de sju obligatoriske rapporteringsdelene og seksten obligatoriske underdelene, innholdsnøyaktighet målt som nøkkelord-tilbakekalling pluss tilbakekalling for scoresystemet, samt en gyldighetssjekk av sannsynlighetsfordelingen, og svartid mot den primære service-level-målsettingen for path. Den nøyaktige dekomponeringen vises i rubrikkformelen nedenfor — ingen av disse vektene eller underscore-rubrikker ble endret for den andre oppdateringen.
De resterende 0,20 prosentpoengene av handlingsrommet dekomponeres nesten helt inn i den kliniske underscoren — en liten andel av tilfellene (hovedsakelig i hepatologi og revmatologi) hadde ett forventet scoresystem-nøkkelord fraværende fra motorens tolkning, til tross for at det diagnostiske innholdet var korrekt. Ingen av tilfellene i kohorten på 100 000 i den andre oppdateringen bommet på selve diagnosen. Latenstiden ble forbedret fra et gjennomsnitt på 20,17 s i den opprinnelige V11-utgaven til 13,26 s i den andre oppdateringen, noe som gjenspeiler optimaliseringer i produksjonsmotoren mellom de to kjøringene; rubrikken, scoringskoden og API-endepunktet er uendret.
Sammensatte scores per etikett varierte fra 0,9971 til 0,9985 på tvers av de 30 mest representerte landsetikettene. Den lange halen av 97 tilleggsetiketter (≈7 300 tilfeller samlet) viste ingen systematisk forverring. De hyppigste etikettene etter antall tilfeller var USA (10 500), Brasil (9 500), Spania (9 000), Italia (8 000), Tyskland (7 800), Frankrike (7 400), Portugal (5 800), Türkiye (3 400), Storbritannia (2 900) og Mexico (2 500).
Fra 15 cases til 100 000: kohortevolusjon på tvers av 127 landetiketter
Den opprinnelige V11-casepanelet dekket sju spesialiteter — hematologi, endokrinologi, metabolsk medisin, hepatologi, nefrologi, kardiologi, revmatologi — pluss to dedikerte hyperdiagnose-felletilfeller, der hvert tilfelle var et syntetisk generert blodprøvepanel. V11 andre oppdatering utvider evalueringen til 100 000 syntetiske tilfeller på tvers av 127 landsetiketter, fordelt på åtte spesialiteter (de opprinnelige sju pluss en dedikert internmedisinsk kategori som absorberer trap-delsettet). Samme evalueringsskjema brukes byte-for-byte identisk i begge kjøringer.
Siden alle caser er syntetisk generert, finnes det ingen reelle identifikatorer å fjerne og ingen personopplysninger er involvert. Hver syntetisk case har en benchmark-intern casekode (BT-NNN-LABEL i V11-innledende sett, en stabil case_uid i den andre oppdateringen). Ingen personopplysninger forekommer noe sted i den publiserte harnessen, den tekniske rapporten eller de utgitte datasettene.
V11 innledende utgivelse — 15 håndkuraterte caser
Det opprinnelige V11-casepanelet ble håndkuratert av dr. Thomas Klein for å teste de diagnostiske mønstrene som laboratoriemedisinske assistenter oftest tar feil av. Hver av de femten casene ble valgt ut for en spesifikk diagnostisk egenskap, oppført nedenfor.
Hvorfor akkurat denne fordelingen
Hematologi får tre tilfeller fordi mikrocyttiske differensialdiagnoser og makrocyttiske differensialdiagnoser er de største fallgruvene med høyest volum i reell laboratoriepraksis. Endokrinologi får tre fordi presentasjonene ved Hashimotos, PCOS og vitamin D-mangel trener ulike diagnostiske mønstre (autoantistoffdrevet, hormonsiffer-forholdsdrevet, enkeltmarkør-drevet). Spesialitetene med ett enkelt tilfelle er fortsatt meningsfulle fordi hvert av CKD, ASCVD-risiko og SLE har sitt eget poengsystem som motoren skal kalle (henholdsvis KDIGO-stadieinndeling, ASCVD 10-års risiko, og 2019 EULAR/ACR SLE-kriterier).
V11 andre oppdatering — 100 000 syntetiske tilfeller på tvers av 127 landkoder
Den andre oppdateringen erstatter den opprinnelige V11 hardkodede 15-tilfelle Python-iteralingen med et større, programmatisk generert syntetisk tilfellesett. Tilfellesettet lastes ved starten av hver kjøring, og konfigurasjonen logges for transparens. Kohortfordelingen etter fagområde vises nedenfor.
Syntetisk landetikettfordeling — topp 10 etiketter
De 100 000 syntetiske sakene bærer 127 landetiketter (ISO 3166-1 alpha-2) for å utøve lokaliseringshåndtering. Etikettfordeling: Europa 57.7%, Amerika 25.4%, Asia-Stillehavet 6.2%, navngitte Midtøsten/Afrika-etiketter 3.4%, og en lang hale på 97 tilleggsetiketter omtrent 7.3% kombinert. De ti hyppigste etikettene etter sakantall er USA (10 500), Brasil (9 500), Spania (9 000), Italia (8 000), Tyskland (7 800), Frankrike (7 400), Portugal (5 800), Türkiye (3 400), Storbritannia (2 900), og Mexico (2 500). Samlede scorer per etikett varierte fra 0.9971 til 0.9985. Disse etikettantallene er egenskaper ved de genererte sakene som brukes til å utøve lokaliseringshåndtering — de er ikke virkelige brukere og ikke reell geografisk dekning.
Den forhåndsregistrerte rubrikken, forklart
Forhåndsregistrering er det viktigste metodologiske valget i denne benchmarken. Hver forventede diagnose, hvert kliniske scoringssystem og hver rapportseksjon ble forpliktet til kildekode før motoren ble kalt inn. Post-hoc tuning av rubrikken for å smigre motoren er derfor umulig.
Tre komponenter utgjør den sammensatte poengsummen. Den structural component bidrar med 35 prosent og måler om motoren returnerte de syv obligatoriske rapportseksjonene (overskrift, sammendrag, nøkkelfunn, differensialdiagnose, scoringsystemer, anbefalinger, oppfølging) og de seksten obligatoriske underseksjonene i dem. Seksjonstilstedeværelse veier 40 prosent og underseksjonstilstedeværelse veier 60 prosent i den strukturelle beregningen.
Det clinical component bidrar med 55 prosent og kombinerer tre ting: gjenkalling av diagnosenøkkelord (70 prosent av den kliniske delpoengsummen), gjenkalling av scoringsystem (20 prosent — beregner motoren Mentzer, FIB-4, HOMA-IR, ASCVD-risiko, KDIGO-stadier, EULAR/ACR-kriterier der det er relevant), og en gyldighetskontroll av sannsynlighetssummen (10 prosent — differensialdiagnose-sannsynlighetene bør summere seg til innenfor intervallet [90, 110]). For felle-tilfeller trekkes en eksplisitt hyperdiagnose-straff på opptil 0,30 fra, beregnet som 0,10 per falske patologi-flagg, med en grense på tre flagg.
Det latency component bidrar med 10 prosent. Et svar under 20 sekunder gir full 0,10, et svar under 40 sekunder gir 0,05, og alt tregere gir null. 20-sekundersmålet reflekterer produksjonens primærvei-tjenestenivåmål; 40-sekunders taket reflekterer Fase 2-fallback-budsjettet for tunge motor-kall.
Hva forhåndsregistrering forhindrer
Førsteparts benchmarks er beryktet for å blåse opp sine egne tall gjennom post-hoc rubrikk-tuning. Mønsteret er nesten alltid det samme: teamet kjører motoren, ser hvor den underpresterer, og justerer deretter stille rubrikken slik at de underpresterende områdene teller mindre. Ved å forplikte rubrikken til kildekode før det første motorkallet og publisere mellomvaren under MIT-lisens, blir den justeringen synlig i versjonskontrollen. Hvem som helst kan klone depotet, sjekke datoene for rubrikkforfatteren, og verifisere at motorsvarene ikke ble brukt til å forme scoringen.
Hyperdiagnose-felle-cases — hvorfor overrapportering er den egentlige feilmåten
Aggressiv over-oppkalling av patologi på normale skjermer er en dokumentert feilmodus for forbrukerrettede medisinske assistenter. Dens nedstrøms kostnader inkluderer unødvendig undersøkelse, pasientangst og iatrogen oppfølging. De to felle-sakene i denne benchmarken er designet for å gjøre denne feilmodusen synlig og scorbar.
🟡 Felle 1 — BT-014-GILBERT
Presentation. En 24 år gammel mann med total bilirubin på 2,4 mg/dL. Den direkte fraksjonen er normal, transaminaser og alkalisk fosfatase ligger innenfor sine referanseområder, retikulocytter er upåfallende, og haptoglobin og LDH utelukker hemolyse.
Korrekt tolkning. Gilbert syndrom — en benign UGT1A1-polymorfisme. Tolkningen skal ikke påkalle hepatitt, cirrhose, hemolytisk anemi eller biliær obstruksjon.
V11-resultat. Sammensatt 1.000. Ingen av de seks overvåkede overdiagnose-flaggene viste seg som aktive diagnoser.
🟡 Felle 2 — BT-015-HEALTHY
Presentation. En 35 år gammel kvinne med et femtenparameter rutinemessig screeningspanel. Hver analytt ligger komfortabelt innenfor sitt referanseområde.
Korrekt tolkning. Beroligelse og vedlikehold av livsstil. Tolkningen skal ikke finne på grensepatologi for å høres klinisk nyttig ut.
V11-resultat. Sammensatt 1.000. Ingen av de sju overvåkede overdiagnose-flaggene — diabetes, anemi, hypotyreose, dyslipidemi, hepatitt, nyresykdom, mangel — viste seg som aktive diagnoser.
På tvers av begge fellene ble tretten overvåkede hyperdiagnose-flagger sjekket. Ingen ble utløst. Dette er resultatet som betyr mest for enhver kliniker som vurderer å bruke en AI-motor som triage- eller førkonsultasjonsverktøy: systemet fant ikke opp sykdom der ingen fantes.
Mentzer-indeks: skille jernmangel fra thalassemi-egenskap
Et andre funn med høy verdi gjelder koblingen av case BT-001 (jernmangelanemi) med case BT-007 (beta-talassemi minor). Begge presenterer med mikrocytose og er en velkjent snublestein for naive klassifikatorer. Mentzer-indeksen, beregnet som MCV dividert med RBC-antall, er over 13 ved jernmangel og under 13 ved talassetrekk.
I BT-001 var pasienten en 34 år gammel kvinne med hemoglobin 10,4 g/dL, MCV 72,4 fL, RBC 4,1 × 10¹²/L, ferritin 6 ng/mL og forhøyet TIBC. Mentzer-indeksen på omtrent 17,7 støtter absolutt jernmangel. I BT-007 var pasienten en 28 år gammel mann med mikrocytose (MCV 65,8 fL) men et høyt RBC-antall på 6,2, normal RDW, normalt ferritin og HbA2 på 5,6 prosent. Mentzer-indeksen på omtrent 10,6 peker mot talassetrekk, og det forhøyede HbA2 bekrefter beta-talassemi minor.
Begge tilfellene fikk score 1.000. Motoren brukte Mentzer-indeksen eksplisitt i begge tolkningene og returnerte riktig diagnose i hvert tilfelle. Dette er det mest klinisk betryggende enkeltresultatet i hele benchmarken, fordi feilklassifisering av talassetrekk som jernmangel fører til upassende jerntilskudd og tapte muligheter for familiescreening, og feilklassifisering av jernmangel som talassemi forsinker enkel erstatningsterapi. Vår ferritin-områdeveileder forklarer den bredere differensialkonteksten.
Per-case resultater fra V11 første referansekjøring (23. april 2026)
Den opprinnelige V11-referansekjøringen som ble utført på 15-case proof-of-concept-kohorten fungerer som det metodologiske grunnlaget for den andre oppdateringen: hver detalj per case nedenfor illustrerer hvordan rubrikken håndterer et reelt motorrespons. Tolv av femten cases oppnådde taket for den sammensatte totalscore på 1.000 på hovedsporet; tre cases ble levert via Phase 2-reserven, og mistet 0.05 latensbonusen samtidig som alt klinisk og strukturelt innhold ble bevart. Én case manglet én obligatorisk del; én returnerte en marginalt redusert sum av sannsynlighetsfordelingen.
PCOS-saken (BT-008) mistet en enkelt obligatorisk underseksjon i svarkstrukturen — femten av seksten i stedet for seksten av seksten — som reduserte strukturell poengsum fra 1,000 til 0,963. SLE-saken (BT-011) returnerte en marginalt redusert sannsynlighetsfordelingssum som senket klinisk poengsum til 0,965, samtidig som den bevarte alle diagnostiske nøkkelord og scoringsystemer. Ingen av de sub-perfekte sakene savnet en korrekt diagnose.
V11 Second Update-aggregat — 100 000 saker
I befolkningsskala er individuelle sakrader ikke lesbare for mennesker, så Second Update rapporterer aggregerte metrikker i stedet for en tabell med 100 000 rader. Hovedaggregeringen vises nedenfor; oversikter per spesialitet og per land er publisert i den tekniske rapporten og Figshare-depotet. Et stratifisert tilfeldig utvalg av n = 201 rå motorsvar (deterministisk seed 20260426) publiseres i GitHub results/ mappen for inspeksjon.
Hva hovedscoren ikke forteller oss
En sammensatt poengsum på 99.80 prosent under denne spesifikke forhåndsregistrerte rubrikken, på en syntetisk kohort med 100 000 tilfeller som spenner over 127 landsetiketter, representerer ytelse nær taket — men den fortjener nøye rammeverk. Resultatet beskriver motorens oppførsel mot rubrikken vi forpliktet oss til kildekoden i V11; det er ikke et universelt krav om motorens korrekthet på alle blodprøvepaneler som finnes i naturen.
Poengsummen sier at motoren håndterte de diagnostiske mønstrene valgt for denne evalueringen korrekt på tvers av en kohort i populasjonsskala, på en metodikk som er publisert og reproduserbar. Den sier ikke at motoren er korrekt på alle blodprøvepaneler som finnes i naturen. Den sier ikke at motoren skal erstatte klinisk vurdering. Og den sier ikke at motoren overgår alternative AI-systemer — komparative analyser mot andre motorer var bevisst utenfor omfanget for denne rapporten.
Det poengsummen etablerer er en baseline. Med rubrikken og selve rammeverket offentlig, kan fremtidige versjoner av motoren evalueres mot den samme rubrikken — anvendt på V11 initial 15 tilfeller, Andre oppdatering 100 000-tilfelle kohorten, eller en hvilken som helst påfølgende utvidelse — og gapet mellom den publiserte poengsummen og en hvilken som helst påfølgende kjøring er i seg selv målbar. Dette er verdien av forhåndsregistrering: den konverterer ytelseskrav til testbare krav.
Slik reproduserer du denne benchmarken på 10 minutter
Reproduksjon krever kun et Kantesti API-legitimasjonspar og et Python 3.10 eller nyere miljø med requests og reportlab bibliotekene installert. Hele selve rammeverket er en enkelt frittstående Python-modul utgitt under MIT-lisensen.
Fire trinn til en ny kjøring
Ett. Klon depotet: git clone https://github.com/emirhanai/kantesti-blood-test-benchmark.git. To. Installer avhengigheter med pip installer -r requirements.txt (Second Update legger til mysql-connector-python ≥ 8.0 for SQL-case-loaderen). Tre. Angi KANTESTI_USERNAME og KANTESTI_PASSWORD som miljøvariabler for motor-API-en. For Second Update SQL case loader, angi også KANTESTI_DB_HOST, KANTESTI_DB_PORT, KANTESTI_DB_NAME, KANTESTI_DB_USER, og KANTESTI_DB_PASSWORD — lasting kobles til via en skrivebeskyttet rolle (bench_reader) som ikke har noen privilegier for å identifisere tabeller. Four. Run python benchmark_bloodtest.py --grense 100000 for den fullstendige Second-Update-kjøringen, eller python benchmark_bloodtest.py --grense 1000 for rask iterasjon. Utdata havner i ./benchmark_results/: en CSV-scorekort med kolonner for land og spesialitet, et JSON-aggregat, et stratifisert-tilfeldig utvalg av råresponser, og en Markdown-rapport.
Referansen strekker seg fra 23. april 2026 (V11 initial, 15 tilfeller) og 26. april 2026 (V11 Second Update, 100 000 tilfeller) beholdes i results/ katalog i arkivet. En ny kjøring vil produsere et nytt tidsstemplet scorekort mens referansekjøringene forblir urørt. Hvis kjøringen din gir et meningsfullt annerledes resultat, vennligst åpne en GitHub-sak med tidsstempelet for kjøringen og motorversjonen som returneres i responsmetadataen.
Begrensninger og videre arbeid
Selv med 100 000 tilfeller på tvers av 127 land, er det fire begrensninger som fortjener eksplisitt anerkjennelse: underrepresentasjon av long-tail-etiketter, evaluering med ett skudd, omfanget av én enkelt motor, og datakilder med én enkelt opprinnelse. Hver av disse blir adressert i aktivt oppfølgingsarbeid.
Dekning av long-tail-etiketter. Second Update omfatter 127 landetiketter, men fordelingen er ubalansert — de 10 beste etikettene utgjør ≈66,4 % av tilfellene, og den lange halen med 97 tilleggsetiketter bidrar til sammen ≈7,3 % (omtrent 7 300 tilfeller til sammen, ~75 tilfeller per etikett i gjennomsnitt). Per-etikett-sammensetninger i denne lange halen er derfor mer støyende enn overskrifter antyder. Fremtidige kjøringer vil rebalansere etikettfordelingen for å styrke estimatene per etikett.
Single-shot evaluation. Hvert tilfelle i kohorten ble evaluert én gang. Store språkmodeller viser ikke-triviell variasjon i output selv ved lav samplings-temperatur, så en protokoll med flere kjøringer med fem evalueringer per tilfelle og rapportert variasjon er et naturlig neste steg — spesielt på undergruppen av «trap-cases», der konsistens under samplings-jitter er en del av sikkerhetskravet.
Single-engine scope. Denne rapporten karakteriserer én motor. Komparative analyser mot alternative AI-systemer er utenfor omfanget her; vi kan forfølge dem som en separat uavhengig studie med passende metodikk, mot samme MIT-lisensierte rammeverk.
Synthetic data. De 100 000 tilfellene er syntetisk generert, ikke syntetiske tilfeller, og resultatene overføres ikke til reell klinisk ytelse. Evaluering på reelle, samtykkende, eksternt innhentede data vil kreve passende etisk tilsyn og er utenfor omfanget for denne syntetiske benchmarken.
Utover disse fire, er den mest virkningsfulle planlagte utvidelsen flerspråklig paritet per jurisdiksjon. Kantesti AI Engine betjener brukere på 75+ språk, og kjøring av språk-stratiserte Second-Update-underkohorter (tyrkisk, tysk, spansk, fransk, italiensk, portugisisk, arabisk, mandarin) vil kvantifisere outputkvalitet på tvers av motorens støttede språk. Hver språk-stratiserte analyse vil bli publisert med sin egen DOI og harness-gren.