Zašto postoji ovo mjerilo i što testira
AI-pomoć u tumačenju krvne slike sve se više koristi u potrošačkim i kliničkim radnim tokovima, no okviri za ponovljivu evaluaciju prilagođeni laboratorijskoj medicini i dalje su rijetki. Pitanja koja su ovdje najvažnija nisu ona obuhvaćena općim benchmarkovima za medicinska pitanja i odgovore: može li motor razdvojiti nedostatak željeza od talasemijskog obilježja kada je srednji volumen eritrocita identičan, dijagnosticira li Gilbertov sindrom prekomjerno kao hepatitis i stvara li patologiju u potpuno normalnom probirnom panelu?
Jedan panel krvnih pretraga obično sadrži dovoljno signala za nekoliko konkurentskih interpretacija, a posao liječnika koji tumači nalaze jest odvagnuti te interpretacije jedne naspram drugih, umjesto da se dohvati “točan odgovor iz udžbenika”. Motor koji dobro prolazi na slučajevima iz udžbenika i dalje može pasti na onim slučajevima koji su najvažniji: na zamkama diferencijalne dijagnostike, na bezazlenim varijantama koje same po sebi izgledaju alarmantno i na potpuno normalnim panelima koji navode samouvjerene asistente na izradu patologije.
Ovaj je benchmark izgrađen upravo oko tih načina neuspjeha. Svaki od petnaest slučajeva odabran je zbog određene dijagnostičke osobine: mikrocitoza zbog nedostatka željeza koju treba jasno razlikovati od nositeljstva beta-talasemije s identičnim prosječnim volumenom eritrocita, prezentacija Gilbertove bolesti u kojoj je jedina abnormalnost izolirana indirektna hiperbilirubinemija i panel za probir s petnaest parametara u kojem se svaki analit nalazi unutar svog referentnog raspona. Rubrika nagrađuje motore koji čitaju svaki slučaj prema njegovim vlastitim okolnostima, a kažnjava motore koji posegnu za samouvjerenom dijagnozom kad takva dijagnoza nije opravdana.
Kao Thomas Klein, dr. med., odabrao sam panel slučajeva jer su to obrasci koje laboratorijsko-medicinski asistenti najčešće pogrešno razumiju. Skupi način neuspjeha nije "propustiti rijetku bolest" — nego izmišljati rutinsku patologiju kod pacijenata koji je nemaju. Naše Medicinska validacija hub opisuje širi okvir; ova stranica opisuje početni dokaz koncepta V11 i V11 Drugo ažuriranje koje ga je skaliralo na 100.000 sintetičkih slučajeva izvedenih iz sintetičkog skupa slučajeva koji obuhvaća 127 oznaka zemalja — koristeći istu rubriku bodovanja, byte-identično, bez dopuštenog naknadnog podešavanja (post-hoc).
Najnovije referentno pokretanje — V11 Second Update (26. travnja 2026.)
Referentno pokretanje V11 Second Update od 26. travnja 2026. proizvelo je kompozitni rezultat od 99.80% na istoj unaprijed registriranoj rubrici korištenoj u početnom izdanju V11, procijenjeno na 100.000 sintetičkih slučajeva izvedenih iz Kantesti sintetičkog skupa slučajeva i obuhvaćajući 127 oznaka zemalja i 75+ jezike. Svaki je slučaj dovršen na primarnom putu motora; aktivacije zastavica hiperdijagnostičke zamke ostale su na 0 / 87,412. Izvorno V11 pokretanje od 23. travnja 2026. obuhvatilo je 15 ručno odabranih slučajeva (kompozit 99.12%) i potvrdilo rubriku; Second Update zadržava tu rubriku bajt-po-bajt identičnom i proširuje evaluaciju na kohortu razmjera populacije.
Kompozitna formula kombinira tri komponente: strukturna usklađenost sa sedam obveznih odjeljaka izvještaja i šesnaest obveznih pododjeljaka, točnost sadržaja mjerena kao prisjećanje ključnih riječi plus prisjećanje sustava bodovanja plus provjera valjanosti vjerojatnosne raspodjele, i kašnjenje odgovora u odnosu na primarni cilj razine usluge. Točna razgradnja prikazana je u formuli rubrike u nastavku — nijedna od tih težina ili podrubrika nije mijenjana za Second Update.
Preostalih 0.20 postotnih bodova “headrooma” razgrađuje se gotovo u cijelosti u klinički podrezultat — mali udio slučajeva (pretežno u Hepatologiji i Reumatologiji) imao je jednu očekivanu ključnu riječ sustava bodovanja odsutnu iz interpretacije motora, iako je dijagnostički sadržaj bio točan. Nijedan slučaj u kohorti Second-Update od 100.000 slučajeva nije promašio samu dijagnozu. Latencija se poboljšala s prosjeka od 20.17 s u početnom izdanju V11 na 13.26 s u Second Updateu, što odražava optimizacije produkcijskog motora između ta dva pokretanja; rubrika, kod za bodovanje i API krajnja točka ostali su nepromijenjeni.
Kompozitni rezultati po oznaci kretali su se od 0,9971 do 0,9985 među 30 najzastupljenijih oznaka zemalja. Dugačak rep od 97 dodatnih oznaka (≈7.300 slučajeva zajedno) nije pokazao nikakvu sustavnu degradaciju. Najčešće oznake prema broju slučajeva bile su Sjedinjene Američke Države (10.500), Brazil (9.500), Španjolska (9.000), Italija (8.000), Njemačka (7.800), Francuska (7.400), Portugal (5.800), Türkiye (3.400), Ujedinjeno Kraljevstvo (2.900) i Meksiko (2.500).
Od 15 slučajeva do 100.000: evolucija kohorte kroz 127 oznaka zemalja
Izvorni panel slučajeva V11 obuhvaćao je sedam specijalnosti — hematologiju, endokrinologiju, metaboličku medicinu, hepatologiju, nefrologiju, kardiologiju, reumatologiju — plus dva posvećena slučaja zamke za hiperdijagnozu, pri čemu je svaki slučaj sintetički generiran panel krvnih pretraga. V11 Drugo ažuriranje proširuje evaluaciju na 100.000 sintetičkih slučajeva kroz 127 oznaka zemalja, raspoređenih u osam specijalnosti (izvornih sedam plus namjenska “bucket” interne medicine koja apsorbira podskup iz zamke). Ista rubrika za bodovanje primjenjuje se bajt-po-bajt identično u oba pokretanja.
Budući da su svi slučajevi sintetički generirani, ne postoje stvarni identifikatori za uklanjanje i ne uključuju se osobni podaci. Svaki sintetički slučaj nosi kod slučaja internog mjerila (BT-NNN-LABEL u početnom skupu V11, stabilan case_uid u Drugom ažuriranju). Nigdje u objavljenom sustavu, tehničkom izvještaju ili objavljenim skupovima podataka ne pojavljuju se osobni podaci.
početnim izdanjem V11 — 15 ručno odabranih slučajeva
Izvorni V11 panel slučajeva ručno je odabrao dr. Thomas Klein kako bi se ispitali dijagnostički obrasci koje najčešće pogrešno tumače pomoćnici u laboratorijskoj medicini. Svaki od petnaest slučajeva odabran je za određeno dijagnostičko svojstvo, navedeno u nastavku.
Zašto baš ta raspodjela
Hematologija dobiva tri slučaja jer su mikrocitne diferencijale i makrocitne diferencijale najčešće “zamke” visokog volumena u stvarnoj laboratorijskoj praksi. Endokrinologija dobiva tri jer se prezentacije Hashimotovog, PCOS-a i nedostatka vitamina D razlikuju po dijagnostičkim oblicima (vođeni autoantitijelima, vođeni omjerima hormona, vođeni jednim markerom). Specijalnosti s jednim slučajem i dalje su smislenе jer svaka od CKD-a, rizika za ASCVD i SLE-a ima svoj sustav bodovanja koji motor treba pozvati (KDIGO stadij, ASCVD 10-godišnji rizik, te 2019 EULAR/ACR SLE kriteriji, redom).
V11 Drugo ažuriranje — 100.000 sintetičkih slučajeva kroz 127 oznaka zemalja
Drugo ažuriranje zamjenjuje izvorni V11 hardkodirani Python literal od 15 slučajeva većim, programski generiranim sintetičkim skupom slučajeva. Skup slučajeva učitava se na početku svakog izvođenja, a konfiguracija se bilježi radi transparentnosti. Raspodjela kohorte po području sadržaja prikazana je u nastavku.
Sintetička raspodjela oznaka zemalja — top 10 oznaka
100.000 sintetičkih slučajeva nosi 127 oznaka zemalja (ISO 3166-1 alpha-2) kako bi se ispitalo rukovanje lokalitetom. Dodjela oznaka: Europa 57,7%, Amerike 25,4%, Azija i Pacifik 6,2%, imenovane oznake Bliski istok/Afrika 3,4% i dugi rep od 97 dodatnih oznaka približno 7,3% zajedno. Deset najčešćih oznaka prema broju slučajeva bile su Sjedinjene Američke Države (10.500), Brazil (9.500), Španjolska (9.000), Italija (8.000), Njemačka (7.800), Francuska (7.400), Portugal (5.800), Türkiye (3.400), Ujedinjeno Kraljevstvo (2.900) i Meksiko (2.500). Kompozitni rezultati po oznaci kretali su se od 0,9971 do 0,9985. Ovi brojevi oznaka svojstva su generiranih slučajeva korištenih za ispitivanje rukovanja lokalitetom — nisu stvarni korisnici i nisu stvarno pokrivanje zemljopisom.
Unaprijed registrirana rubrika, objašnjena
Pre-registracija je jedina najvažnija metodološka odluka u ovom benchmarku. Svaka očekivana dijagnoza, svaki klinički sustav bodovanja i svaki odjeljak izvještaja predani su izvornom kodu prije nego što je motor pozvan. Naknadno “dotjerivanje” rubrike kako bi se laskalo motoru stoga je nemoguće.
Tri komponente čine kompozitni rezultat. strukturna komponenta doprinosi 35 posto i mjeri vraća li motor sedam obveznih odjeljaka izvještaja (zaglavlje, sažetak, ključni nalazi, diferencijala, sustavi bodovanja, preporuke, praćenje) te šesnaest obveznih pododjeljaka unutar njih. Prisutnost odjeljka nosi 40 posto, a prisutnost pododjeljka 60 posto unutar strukturnog izračuna.
The klinička komponenta doprinosi 55 posto i kombinira tri stvari: prisjećanje dijagnoza-po-ključnim-riječima (70 posto kliničkog podrezultata), prisjećanje sustava bodovanja (20 posto — izračunava li motor Mentzer, FIB-4, HOMA-IR, ASCVD rizik, KDIGO stadij, EULAR/ACR kriterije gdje je relevantno) i provjeru valjanosti zbroja vjerojatnosti (10 posto — diferencijalne vjerojatnosti trebaju se zbrojiti unutar intervala [90, 110]). Za slučajeve “zamke” oduzima se eksplicitna penalizacija za hiperdijagnozu do 0,30, izračunata kao 0,10 po izmišljenoj zastavici patologije, s ograničenjem na tri zastavice.
The komponenta latencije doprinosi 10 posto. Odgovor ispod 20 sekundi dobiva punih 0,10, odgovor ispod 40 sekundi dobiva 0,05, a sve sporije dobiva nula. Cilj od 20 sekundi odražava primarni cilj razine usluge proizvodne primary-path usluge; strop od 40 sekundi odražava proračun za “fallback” u Fazi 2 za teške pozive motora.
Što pre-registracija sprječava
Prvostupanjski benchmarkovi poznati su po napuhavanju vlastitih rezultata naknadnim dotjerivanjem rubrike. Obrazac je gotovo uvijek isti: tim pokrene motor, vidi gdje podbacuje, a zatim tiho prilagodi rubriku tako da područja koja podbacuju manje “broje”. Predavanjem rubrike izvornom kodu prije prvog poziva motora i objavom okvira pod MIT licencom, ta prilagodba postaje vidljiva u sustavu upravljanja verzijama. Svatko može klonirati repozitorij, provjeriti datume autorstva rubrike i potvrditi da se rezultati motora nisu koristili za oblikovanje bodovanja.
Slučajevi zamke hiperdijagnosticiranja — zašto je pretjerano proglašavanje stvarni način neuspjeha
Agresivno prekomjerno proglašavanje patologije na normalnim pregledima dokumentirani je način neuspjeha kod medicinskih asistenata usmjerenih na potrošače. Njegovi posljedični troškovi uključuju nepotrebnu obradu, tjeskobu pacijenta i iatrogeni radup. Dva slučaja “zamke” u ovom benchmarku dizajnirana su da taj način neuspjeha učine vidljivim i bodovnim.
🟡 Zamka 1 — BT-014-GILBERT
Prezentacija. Muškarac od 24 godine s ukupnim bilirubinom 2,4 mg/dL. Direktna frakcija je normalna, transaminaze i alkalna fosfataza nalaze se unutar svojih referentnih raspona, retikulociti su bez osobitosti, a haptoglobin i LDH isključuju hemolizu.
Ispravna interpretacija. Gilbertova bolest — benigna polimorfija UGT1A1. Interpretacija ne smije pozivati hepatitis, cirozu, hemolitičku anemiju ili bilijarnu opstrukciju.
Rezultat v11. Kompozitni 1,000. Nijedna od šest nadziranih zastavica prekomjerne dijagnoze nije se pojavila kao aktivna dijagnoza.
🟡 Zamka 2 — BT-015-ZDRAV
Prezentacija. Žena od 35 godina s rutinskim probirnim panelom od petnaest parametara. Svaki analit udobno se nalazi unutar svog referentnog raspona.
Ispravna interpretacija. Učvršćivanje sigurnosti i održavanje životnog stila. Tumačenje ne bi smjelo izmišljati graničnu patologiju kako bi zvučalo klinički korisno.
Rezultat v11. Sastav 1.000. Nijedna od sedam praćenih zastavica prekomjernog postavljanja dijagnoze — dijabetes, anemija, hipotireoza, dislipidemija, hepatitis, bubrežna bolest, nedostatak — nije se pojavila kao aktivna dijagnoza.
U oba scenarija provjere, provjereno je trinaest praćenih zastavica za hiperdijagnosticiranje. Nijedna nije aktivirana. Ovo je rezultat koji je najvažniji za svakog kliničara koji razmatra korištenje AI motora kao alata za trijažu ili prije konzultacije: sustav nije izumio bolest tamo gdje je nije bilo.
Mentzerov indeks: razdvajanje nedostatka željeza od osobina talasemije
Drugi nalaz visoke vrijednosti odnosi se na povezivanje slučaja BT-001 (željezna deficijentna anemija) sa slučajem BT-007 (beta-talasemija minor). Oba se očituju mikrocitozom i dobro su poznata prepreka za naivne klasifikatore. Mentzerov indeks, izračunan kao MCV podijeljen s brojem RBC, prelazi 13 kod željezne deficijentne anemije i pada ispod 13 kod talasemijskog obilježja.
U BT-001, pacijentica je bila 34-godišnja žena s hemoglobinom 10,4 g/dL, MCV 72,4 fL, RBC 4,1 × 10¹²/L, feritinom 6 ng/mL i povišenim TIBC. Mentzerov indeks od približno 17,7 podupire apsolutni manjak željeza. U BT-007, pacijent je bio 28-godišnji muškarac s mikrocitozom (MCV 65,8 fL), ali s visokim brojem RBC od 6,2, normalnim RDW, normalnim feritinom i HbA2 od 5,6 posto. Mentzerov indeks od približno 10,6 upućuje na talasemijsko obilježje, a povišeni HbA2 potvrđuje beta-talasemiju minor.
Oba slučaja postigla su 1.000. Motor je eksplicitno upotrijebio Mentzerov indeks u obje interpretacije i vratio točnu dijagnozu u svakom slučaju. Ovo je jedini najviše klinički umirujući rezultat u cijelom benchmarku, jer pogrešno razvrstavanje talasemijskog obilježja kao željezne deficijentne anemije dovodi do neprimjerene suplementacije željezom i propuštenih prilika za probir obitelji, a pogrešno razvrstavanje željezne deficijentne anemije kao talasemije odgađa jednostavnu zamjensku terapiju. Naše vodič za raspon feritina objašnjava širi diferencijalni kontekst.
Rezultati po slučaju iz V11 početnog referentnog izvođenja (23. travnja 2026.)
Izvorno V11 referentno izvođenje na kohorti od 15 slučajeva za dokaz koncepta služi kao metodološka osnova Drugog ažuriranja: svaki detalj po slučaju u nastavku pokazuje kako rubrika obrađuje stvarni odgovor motora. Dvanaest od petnaest slučajeva postiglo je maksimalni kompozitni rezultat od 1.000 na primarnom putu; tri slučaja poslužena su putem povratnog mehanizma Phase 2, izgubivši bonus za latenciju od 0.05 uz očuvanje cjelokupnog kliničkog i strukturnog sadržaja. Jedan slučaj nije sadržavao jednu obveznu podsekciju; jedan je vratio marginalno smanjeni zbroj vjerojatnosnih raspodjela.
Slučaj PCOS-a (BT-008) izgubio je jedan obvezni pododjeljak u strukturi odgovora — petnaest od šesnaest umjesto šesnaest od šesnaest — što je smanjilo strukturni rezultat s 1,000 na 0,963. Slučaj SLE-a (BT-011) vratio je tek marginalno smanjeni zbroj vjerojatnosne raspodjele koji je spustio klinički rezultat na 0,965, uz očuvanje svake dijagnostičke ključne riječi i sustava bodovanja. Nijedan od ta dva slučaja ispod savršenog nije propustio točnu dijagnozu.
Agregat V11 Drugo ažuriranje — 100,000 slučajeva
Na razini populacije, pojedinačni redovi slučajeva nisu čitljivi ljudima, pa Drugo ažuriranje izvještava agregirane metrike umjesto tablice od 100.000 redaka. Glavni agregat prikazan je u nastavku; razrade po specijalnosti i po oznaci zemlje objavljene su u tehničkom izvještaju i u Figshare depozitu. Stratificirani slučajni uzorak od n = 201 sirovih odgovora motora (determinističko sjeme 20260426) objavljuje se u GitHub results/ direktoriju za pregled.
Što nam ne govori naslovni rezultat
Kompozitni rezultat od 99,80 posto prema ovoj posebnoj unaprijed registriranoj rubriki, na sintetičkoj kohorti od 100.000 slučajeva koja obuhvaća 127 oznaka zemalja, predstavlja gotovo performanse do vrha (near-ceiling) — ali zaslužuje pažljivo uokvirivanje. Rezultat opisuje ponašanje motora u odnosu na rubriku koju smo se obvezali u izvornom kodu u V11; to nije univerzalna tvrdnja o ispravnosti motora na svakoj ploči krvnih pretraga koja postoji u stvarnom svijetu.
Rezultat kaže da je motor ispravno obradio dijagnostičke obrasce odabrane za ovu evaluaciju kroz kohortu na razini populacije, prema metodologiji koja je objavljena i može se reproducirati. Ne kaže da je motor točan na svakoj ploči krvnih pretraga koja postoji u stvarnom svijetu. Ne kaže da bi motor trebao zamijeniti kliničku prosudbu. I ne kaže da motor nadmašuje alternativne AI sustave — usporedne analize s drugim motorima namjerno su bile izvan opsega ovog izvještaja.
Ono što rezultat jest uspostavlja je osnovna vrijednost. S obzirom da su rubrika i okruženje dostupni javno, buduće verzije motora mogu se evaluirati prema istoj rubriki — primijenjeno na početnih 15 slučajeva V11, kohortu od 100.000 slučajeva iz Drugog ažuriranja ili bilo koje sljedeće proširenje — a razlika između objavljenog rezultata i bilo kojeg sljedećeg izvođenja sama je po sebi mjerljiva. To je vrijednost unaprijed registriranja: pretvara tvrdnje o izvedbi u provjerljive tvrdnje.
Kako reproducirati ovaj benchmark za 10 minuta
Reprodukcija zahtijeva samo par vjerodajnica Kantesti API-ja i okruženje s Pythonom 3.10 ili novijim, uz requests i reportlab instalirane biblioteke. Cjeloviti harness je jedan samostalni Python modul objavljen pod MIT licencom.
Četiri koraka za novo pokretanje
Jedan. Klonirajte repozitorij: git clone https://github.com/emirhanai/kantesti-blood-test-benchmark.git. Dva. Instalirajte ovisnosti pomoću pip install -r requirements.txt (Drugo ažuriranje dodaje mysql-connector-python ≥ 8.0 za SQL učitač slučajeva). Tri. Postavite KANTESTI_USERNAME i KANTESTI_PASSWORD kao varijable okruženja za API motora. Za SQL učitač slučajeva u Drugom ažuriranju također postavite KANTESTI_DB_HOST, KANTESTI_DB_PORT, KANTESTI_DB_NAME, KANTESTI_DB_USERi KANTESTI_DB_PASSWORD — loader se povezuje putem uloge samo za čitanje (bench_reader) koja nema privilegije za identifikaciju tablica. Četiri. Pokrenite python benchmark_bloodtest.py --limit 100000 za cijelo izvođenje Second-Update ili python benchmark_bloodtest.py --limit 1000 za brzu iteraciju. Rezultati se spremaju u ./benchmark_results/: CSV scorecard s kolonama po country-label i po specialty, JSON agregat, stratificirano-slučajni uzorak sirovih odgovora i Markdown izvještaj.
Referentna izvođenja iz 23. travnja 2026. (V11 početno, 15 slučajeva) i 26. travnja 2026. (V11 Second Update, 100,000 slučajeva) čuvaju se u results/ direktoriju repozitorija. Svježe izvođenje generirat će novi scorecard s vremenskom oznakom, pri čemu će referentna izvođenja ostati nepromijenjena. Ako vaše izvođenje daje značajno drugačiji rezultat, molimo otvorite GitHub issue s vremenskom oznakom izvođenja i verzijom enginea vraćenom u metapodacima odgovora.
Ograničenja i budući rad
Čak i pri 100.000 slučajeva kroz 127 country labela, četiri ograničenja zaslužuju izričitu napomenu: nedovoljno uzorkovanje long-tail labela, evaluacija jednokratnim prolazom, opseg jedne jedinke (single-engine) i podrijetlo podataka iz jednog izvora (single-source). Svako od njih se rješava u aktivnom naknadnom radu.
Pokrivenost long-tail labela. Drugo ažuriranje obuhvaća 127 country labela, ali raspodjela je neuravnotežena — top 10 labela čini ≈66.4% slučajeva, a long tail od 97 dodatnih labela zajedno doprinosi ≈7.3% (otprilike 7.300 slučajeva ukupno, ~75 slučajeva po labelu u prosjeku). Stoga su per-label kompoziti u tom long tailu bučniji nego što to sugeriraju brojke s naslovnice. Budući pokreti ponovno će uravnotežiti dodjelu labela kako bi se učvrstile procjene po labelu.
Evaluacija u jednom pokušaju. Svaki slučaj u kohorti evaluiran je jednom. Veliki jezični modeli pokazuju ne-trivijalnu varijancu izlaza čak i pri niskoj temperaturi uzorkovanja, pa je protokol s više izvođenja s pet evaluacija po slučaju i prijavljenom varijancom prirodan sljedeći korak — osobito na podskupu “trap-case”, gdje je konzistentnost pod “jitterom” uzorkovanja dio sigurnosne tvrdnje.
Opseg jednog motora. Ovaj izvještaj opisuje jedan engine. Usporedne analize s alternativnim AI sustavima nisu obuhvaćene ovdje; možemo ih provesti kao zasebnu neovisnu studiju s odgovarajućom metodologijom, na istom MIT-licenciranom harnessu.
Sintetički podaci. 100.000 slučajeva sintetički je generirano, a ne radi se o sintetičkim slučajevima, i rezultati se ne prenose na stvarne kliničke performanse. Evaluacija na stvarnim, pristankom odobrenim, eksterno pribavljenim podacima zahtijevala bi odgovarajući etički nadzor i nije u opsegu ovog sintetičkog benchmarka.
Osim ta četiri, najutjecajnije planirano proširenje je višejzična parnost po jurisdikciji. Kantesti AI Engine služi korisnicima na 75+ jezika, a pokretanje jezično stratificiranih podkohorti Second-Update (turski, njemački, španjolski, francuski, talijanski, portugalski, arapski, mandarinski) kvantificirat će kvalitetu izlaza kroz jezike koje engine podržava. Svaka jezično stratificirana analiza bit će objavljena sa svojim vlastitim DOI-jem i harness granom.