Zašto ovaj benchmark postoji i šta testira

AI-potpomognuto tumačenje krvne slike sve se više koristi u potrošačkim i kliničkim radnim tokovima, ali okviri za ponovljivu evaluaciju prilagođeni laboratorijskoj medicini ostaju neuobičajeni. Pitanja koja su najvažnija u ovom kontekstu nisu ona obuhvaćena općim benchmarkovima za medicinsko odgovaranje na pitanja: može li engine razdvojiti anemiju zbog nedostatka željeza od osobine talasemije kada je srednji volumen eritrocita identičan, dijagnosticira li prekomjerno Gilbertovu bolest kao hepatitis i stvara li patologiju u potpuno normalnom skrining panelu?

Dijagram toka unaprijed registrirane rubrike koji prikazuje kako se Kantesti AI motor ocjenjuje prema zamrznutim kriterijima bodovanja
Slika 1: Arhitektura benchmarka — svaki slučaj, svaka ključna riječ, svaki sistem bodovanja fiksirani su u izvornom kodu prije nego što engine vidi ijedan PDF. Naknadno podešavanje rubrike nije moguće po dizajnu.

Jedan panel krvnih pretraga obično sadrži dovoljno signala da podrži više konkurentskih interpretacija, a zadatak ljekara koji tumači nalaze je da te interpretacije međusobno odmjeri, umjesto da izvuče jedno „tačno“ rješenje iz udžbenika. Motor koji se dobro pokazuje na slučajevima iz udžbenika i dalje može zakazati na onim slučajevima koji su najvažniji: na zamkama diferencijalne dijagnoze, na bezazlenim varijantama koje same po sebi izgledaju alarmantno i na potpuno normalnim panelima koji navode samouvjerene asistente da „izmisle“ patologiju.

Ovaj benchmark je izgrađen upravo oko tih načina neuspjeha. Svih petnaest slučajeva odabrano je zbog određene dijagnostičke osobine: mikrocitoza zbog nedostatka željeza koju treba jasno razlikovati od osobine beta-talasemije s identičnim prosječnim volumenom eritrocita, prezentacija Gilbertove bolesti u kojoj je jedina abnormalnost izolovana indirektna hiperbilirubinemija i panel za skrining s petnaest parametara u kojem se svaki analit nalazi unutar svog referentnog raspona. Rubrika nagrađuje motore koji svaki slučaj čitaju prema njegovim vlastitim karakteristikama, a kažnjava motore koji posegnu za samouvjerenom dijagnozom tamo gdje 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. Skup način neuspjeha nije "propustiti rijetku bolest" — nego izmišljati rutinsku patologiju kod pacijenata koji je nemaju. Naš Medicinska validacija hub opisuje širi okvir; ova stranica opisuje njegov primijenjeni rezultat na V11 motoru.

Najnoviji referentni run — V11 (april 2026)

Referentno mjerenje iz aprila 2026. za Kantesti AI Engine V11 proizvelo je kompozitni rezultat od 99.12% prema unaprijed registriranoj rubriki od petnaest slučajeva. Oba slučaja u zamkama prekomjerne dijagnoze postigla su maksimum. Mentzerov indeks primijenjen je ispravno u diferencijalu između nedostatka željeza i talasemije.

Kompozitni 99.12% 15 od 15 slučajeva postiglo
0.998 Strukturni rezultat
0.998 Klinički rezultat
20.17 s Prosječno kašnjenje
0 / 13 Lažni pozitivni rezultati u zamkama

Kompozitna formula kombinuje tri komponente: strukturna usklađenost sa sedam obaveznih sekcija izvještaja i šesnaest obaveznih podsekcija, klinička tačnost mjerena kao prepoznavanje ključnih riječi plus opoziv iz sistema bodovanja plus provjera valjanosti na osnovu raspodjele vjerovatnoća, i kašnjenje odgovora u odnosu na primarni cilj usluge od 20 sekundi. Tačna razrada prikazana je u formuli rubrike ispod.

Kompozitni = 0.35 × Strukturni + 0.55 × Klinički + 0.10 × Kašnjenje

Preostalih 0,88 procentnih poena „headrooma” gotovo u cijelosti se razlaže na gubitak zbog latencije — tri poziva za „Phase 2” fallback, svaki po -0,05 kompozitno, doprinijela su oko 0,60 od deficita od 0,88 poena — umjesto kliničkom sadržaju. Motor nije promašio tačnu dijagnozu ni u jednom od petnaest slučajeva; gdje je zakazao, to je bilo tako što je u maloj manjini poziva trajao nešto duže od primarnog cilja od 20 sekundi.

Petnaest slučajeva iz sedam medicinskih specijalnosti

Panel slučajeva obuhvata sedam specijalnosti — hematologiju, endokrinologiju, metaboličku medicinu, hepatologiju, nefrologiju, kardiologiju, reumatologiju — plus dva posvećena slučaja „hyperdiagnosis trap”. Svaki slučaj je anonimizirani stvarni medicinski zapis pacijenta, izveden iz repozitorija kliničkih podataka Kantesti, uz pisani informisani pristanak.

Mapa pokrivenosti petnaest anonimiziranih slučajeva krvnih testova raspoređenih u sedam medicinskih specijalnosti, uz slučajeve „zamke” za hiperdijagnozu
Slika 2: Raspodjela slučajeva po hematologiji, endokrinologiji, metaboličkoj medicini, hepatologiji, nefrologiji, kardiologiji, reumatologiji, plus dva trap slučaja — Gilbertov sindrom i potpuno normalan skrining panel.

De-identifikacija je izvedena prema pristupu Safe Harbor: svi direktni identifikatori su uklonjeni ili zamijenjeni, a svakom zapisu je dodijeljen interni kod slučaja u formatu BT-NNN-LABEL. Obrada je izvršena u skladu s GDPR članom 9(2)(j) za naučna istraživanja uz odgovarajuće zaštitne mjere, te ekvivalentnim odredbama UK GDPR-a. Niti jedna informacija koja lično identificira osobu ne pojavljuje se nigdje u objavljenom „harnessu”, tehničkom izvještaju ili objavljenim skupovima podataka.

Hematologija (3) BT-001, BT-006, BT-007 Anemija zbog nedostatka željeza · Nedostatak B12 · Beta-talasemija minor
Endokrinologija (3) BT-002, BT-008, BT-012 Hašimotov tireoiditis · PCOS s insulinskom rezistencijom · Težak nedostatak vitamina D
Metaboličko (2) BT-003, BT-013 T2DM sa metaboličkim sindromom · Hiperurikemija s rizikom od gihta
Hepatologija (2) BT-004, BT-009 NAFLD / NASH · Akutni virusni hepatitis
Nefrologija · Kardiologija · Reumatologija (3) BT-005, BT-010, BT-011 Hronična bubrežna bolest stadij 3 · Aterogena dislipidemija · Sistemski eritematosni lupus
Trap slučajevi (2) BT-014, BT-015 Gilbertov sindrom (izolovana indirektna hiperbilirubinemija) · Potpuno normalan skrining odraslih

Zašto baš ova raspodjela

Hematologija dobija tri slučaja jer su mikrocitne diferencijale i makrocitne diferencijale najčešće “zamke” visokog obima u realnoj laboratorijskoj praksi. Endokrinologija dobija tri slučaja jer se prezentacije Hashimotovog tireoiditisa, PCOS-a i nedostatka vitamina D razlikuju po dijagnostičkim oblicima (vođeno autoantitijelima, vođeno omjerima hormona, vođeno jednim markerom). Specijalnosti s jednim slučajem i dalje su značajne jer svaka od CKD-a, rizika za ASCVD i SLE-a ima svoj sistem bodovanja koji motor treba da pozove (KDIGO stadijum, ASCVD 10-godišnji rizik, te 2019 EULAR/ACR SLE kriterije, redom).

Unaprijed registrisana rubrika, objašnjena

Predregistracija je jedina najvažnija metodološka odluka u ovom benchmarku. Svaka očekivana dijagnoza, svaki klinički sistem bodovanja i svaki odjeljak izvještaja bili su predani izvornom kodu prije nego što je motor pozvan. Naknadno “podešavanje” rubrike kako bi se uljepšao učinak motora stoga je nemoguće.

Tri komponente čine kompozitni rezultat. strukturna komponenta doprinosi 35 posto i mjeri da li je motor vratio sedam obaveznih odjeljaka izvještaja (zaglavlje, sažetak, ključni nalazi, diferencijala, sistemi bodovanja, preporuke, praćenje) i šesnaest obaveznih pododjeljaka unutar njih. Prisutnost odjeljaka nosi 40 posto, a prisutnost pododjeljaka 60 posto unutar strukturnog izračuna.

The klinička komponenta doprinosi 55 posto i kombinuje tri stvari: prisjećanje dijagnoze po ključnim riječima (70 posto kliničkog podrezultata), prisjećanje sistema bodovanja (20 posto — da li motor izračunava Mentzer, FIB-4, HOMA-IR, ASCVD rizik, KDIGO stadijum, EULAR/ACR kriterije gdje je relevantno) i provjeru valjanosti zbroja vjerovatnoća (10 posto — diferencijalne vjerovatnoće trebaju da se zbroje u intervalu [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, ograničena na tri zastavice.

The komponenta latencije doprinosi 10 posto. Odgovor ispod 20 sekundi dobija punih 0.10, odgovor ispod 40 sekundi dobija 0.05, a sve sporije dobija nula. Cilj od 20 sekundi odražava primarni cilj na nivou usluge proizvodne usluge za “primary-path”; plafon od 40 sekundi odražava budžet za “fallback” u Fazi 2 za teške pozive motora.

Završni snimak ekrana MIT-licenciranog benchmark okvira Kantesti koji se pokreće i ispisuje rezultate po slučaju
Slika 3: Okvir u izvršenju. Svaki slučaj se renderuje u A4 PDF, postavlja na produkcijski v11 endpoint i boduje prema zamrznutoj rubrici. Svaki sirovi odgovor se pohranjuje zajedno s agregiranim “scorecard”-om.

Šta sprječava predregistracija

Prvostepeni benchmarkovi su poznati po tome da napuhuju vlastite brojke kroz naknadno podešavanje 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 objavljivanjem okvira pod MIT licencom, ta prilagodba postaje vidljiva u sistemu kontrole verzija. Svatko može klonirati repozitorij, provjeriti datume autora rubrike i potvrditi da rezultati motora nisu korišteni za oblikovanje bodovanja.

Slučajevi zamke hiperdijagnoze — zašto je pretjerano pozivanje (over-calling) pravi način neuspjeha

Agresivno “prezivanje” patologije na normalnim pregledima je dokumentovan način neuspjeha kod medicinskih asistenata usmjerenih na potrošače. Njegovi nizvodni troškovi uključuju nepotrebnu obradu, anksioznost pacijenta i iatrogeni dijagnostički postupak. Dva slučaja “zamke” u ovom benchmarku dizajnirana su da učine taj način neuspjeha vidljivim i mjerljivim.

Usporedba jedan pored drugog naivnog AI-ja koji izmišlja hepatitis na panelu za Gilbertov sindrom naspram Kantesti motora koji ispravno prepoznaje bezazlenu polimorfiju UGT1A1
Slika 4: Dizajn slučajeva “zamke”. Motor koji samouvjereno označi Gilbertovu bolest kao hepatitis, ili koji “izmisli” graničnu patologiju na potpuno normalnom ekranu, biva penalizovan — a ne nagrađen za zvučanje klinički.

🟡 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 su 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 praćenih zastavica prekomjerne dijagnoze nije se pojavila kao aktivna dijagnoza.

🟡 Zamka 2 — BT-015-ZDRAV

Prezentacija. Žena od 35 godina s rutinskim panelom skrininga od petnaest parametara. Svaki analit udobno se nalazi unutar svog referentnog raspona.

Ispravna interpretacija. Uspokojavanje i održavanje životnog stila. Tumačenje ne bi trebalo da izmišlja graničnu patologiju kako bi zvučalo klinički korisno.

Rezultat v11. Kompozit 1.000. Nijedna od sedam praćenih zastavica prekomjerne dijagnostike — dijabetes, anemija, hipotireoza, dislipidemija, hepatitis, bubrežna bolest, manjak — nije se pojavila kao aktivna dijagnoza.

Na oba „trapa“ provjereno je trinaest zastavica hiperdijagnostike. 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 konsultacije: sistem nije izmišljao bolest tamo gdje je nije bilo.

Mentzerov indeks: razdvajanje nedostatka željeza od osobina talasemije

Drugi nalaz visoke vrijednosti odnosi se na uparivanje slučaja BT-001 (anemija zbog nedostatka željeza) sa slučajem BT-007 (beta-talasemija minor). Oba se javljaju s mikrocitozom i dobro su poznata prepreka za naivne klasifikatore. Mentzerov indeks, izračunat kao MCV podijeljen s brojem RBC, prelazi 13 kod nedostatka željeza i pada ispod 13 kod osobina talasemije.

U BT-001, pacijentica je imala 34 godine, hemoglobin 10,4 g/dL, MCV 72,4 fL, RBC 4,1 × 10¹²/L, feritin 6 ng/mL i povišen TIBC. Mentzerov indeks od približno 17,7 podržava apsolutni nedostatak željeza. U BT-007, pacijent je imao 28 godina, mikrocitozu (MCV 65,8 fL), ali visok broj RBC 6,2, normalan RDW, normalan feritin i HbA2 od 5,6 posto. Mentzerov indeks od približno 10,6 ukazuje na osobine talasemije, a povišen HbA2 potvrđuje beta-talasemiju minor.

Anemija zbog nedostatka željeza Mentzer > 13 Nizak feritin, nizak TSAT, visok TIBC, povišen RDW
Osobine beta-talasemije Mentzer < 13 Normalan feritin, normalan RDW, povišen HbA2 (>3,5%), visok broj RBC

Oba slučaja su postigla 1.000. Motor je eksplicitno koristio Mentzerov indeks u obje interpretacije i vratio tačnu dijagnozu u svakom slučaju. Ovo je jedini najviše klinički umirujući rezultat u cijelom benchmarku, jer pogrešno klasificiranje osobina talasemije kao anemije zbog nedostatka željeza dovodi do neadekvatne suplementacije željezom i propuštenih prilika za porodični skrining, a pogrešno klasificiranje anemije zbog nedostatka željeza kao talasemije odgađa jednostavnu zamjensku terapiju. Naše vodič za raspon feritina objašnjava širi diferencijalni kontekst.

Rezultati po slučaju iz pokretanja u aprilu 2026.

Dvanaest od petnaest slučajeva postiglo je maksimalni kompozitni rezultat 1.000 na primarnom putu. Tri slučaja su obrađena putem „Phase 2“ fallbacka, izgubivši bonus za latenciju od 0,05 uz očuvanje cjelokupnog kliničkog i strukturnog sadržaja. Jedan slučaj je nedostajao u jednoj obaveznoj podsekciji; jedan je vratio marginalno smanjeni zbir raspodjele vjerovatnoća.

ID slučaja Specijalnost Kompozitni Latencija Put
BT-001-IDAHematologija1.00017,8 sprimarni
BT-006-B12Hematologija1.00018,4 sprimarni
BT-007-THALHematologija1.00017,0 sprimarni
BT-002-HASHEndokrinologija0.95037,0 spovratni mehanizam
BT-008-PCOSEndokrinologija0.98718,6 sprimarni
BT-003-T2DMMetabolički1.00019,1 sprimarni
BT-013-GOUTMetabolički1.00019,4 sprimarni
BT-004-NAFLDHepatologija1.00019,6 sprimarni
BT-009-VIRHEPHepatologija0.95023,4 spovratni mehanizam
BT-014-GILBERTZamka1.00018,9 sprimarni
BT-005-CKDNefrologija1.00017,4 sprimarni
BT-010-ASCVDKardiologija1.00019,7 sprimarni
BT-011-SLEReumatologija0.98118,2 sprimarni
BT-012-VITDEndokrinologija1.00019,3 sprimarni
BT-015-ZDRAVZamka1.00018,7 spovratni mehanizam

Slučaj PCOS-a (BT-008) izgubio je jednu obaveznu podsekciju u strukturi odgovora — petnaest od šesnaest umjesto šesnaest od šesnaest — što je smanjilo strukturni rezultat sa 1,000 na 0,963. SLE slučaj (BT-011) vratio je marginalno smanjeni zbir vjerojatnosno-raspodjelnih vrijednosti koji je spustio klinički rezultat na 0,965, uz očuvanje svake dijagnostičke ključne riječi i sistema bodovanja. Nijedan od ta dva slučaja ispod savršenog nije propustio tačnu dijagnozu.

Šta nam ne govori naslovni rezultat

Kompozitni rezultat od 99,12 posto prema ovoj konkretnoj unaprijed registriranoj rubrici predstavlja gotovo maksimalne performanse, ali zaslužuje pažljivo uokvirivanje. Rezultat opisuje ponašanje motora u odnosu na petnaest pažljivo odabranih anonimiziranih slučajeva, ocjenjivanih po jednom, prema jednoj rubrici. Jasno navodimo šta taj broj jeste, a šta nije u stanju dokazati.

Rezultat kaže da je V11 motor ispravno obradio dijagnostičke obrasce odabrane za ovu evaluaciju, metodologijom koja je objavljena i ponovljiva. Ne kaže da je motor tačan na svakoj ploči krvnih pretraga koja postoji u stvarnom svijetu. Ne kaže da bi motor trebao zamijeniti kliničku procjenu. I ne kaže da motor nadmašuje alternativne AI sisteme — komparativne analize s drugim motorima namjerno su bile izvan okvira ovog izvještaja.

Ono što rezultat jeste u stanju utvrditi je osnovna vrijednost. S obzirom na to da su rubrika i okruženje javni, buduće verzije motora mogu se evaluirati na istih petnaest slučajeva, a razlika između objavljenog rezultata i bilo kojeg kasnijeg izvođenja mjeri se sama po sebi. Vrijednost unaprijed registracije je: ona pretvara tvrdnje o performansama u provjerljive tvrdnje.

Kako ponoviti ovaj benchmark za 10 minuta

Za reprodukciju potrebna je samo kombinacija API vjerodajnica Kantesti i Python 3.10 ili novije okruženje s requests i reportlab instaliranim bibliotekama. Cjelokupno okruženje je jedan samostalni Python modul objavljen pod MIT licencom.

Dijagram mreže ponovljivosti koji prikazuje da je benchmark preslikan na Figshare, ResearchGate, Academia.edu i GitHub, pri čemu je Figshare DOI kanonsko sidro
Slika 5: Benchmark je preslikan na četiri istraživačke platforme. Figshare DOI je kanonski akademski identifikator; ResearchGate, Academia.edu i GitHub hostuju paralelne kopije s kodom i izvornim podacima.

Četiri koraka za novo izvođenje

Jedan. Klonirajte repozitorij: git clone https://github.com/emirhanai/kantesti-blood-test-benchmark.git. Dva. Instalirajte zavisnosti pomoću pip install -r requirements.txt. Tri. Postavite KANTESTI_USERNAME i KANTESTI_PASSWORD kao varijable okruženja — vjerodajnice se čitaju u toku izvođenja i ništa nije hardkodirano u skripti. Četiri. Pokrenite python benchmark_bloodtest.py i pregledajte četiri artefakta emitovana u radni direktorij: CSV scorecard, JSON scorecard, kompletan JSON dump uključujući sirove odgovore motora i čitljiv Markdown izvještaj.

Referentno izvođenje od 23. aprila 2026. sačuvano je u results/ direktoriju repozitorija. Svježe izvođenje proizvest će novi scorecard s vremenskom oznakom, ostavljajući referentno izvođenje netaknutim. Ako vaše izvođenje daje značajno drugačiji rezultat, molimo otvorite GitHub issue s vremenskom oznakom izvođenja i verzijom motora vraćenom u metapodacima odgovora.

Ograničenja i budući rad

Četiri ograničenja zaslužuju eksplicitno priznavanje: veličina uzorka, evaluacija u jednom pokušaju, obuhvat jednog motora i porijeklo podataka iz jednog izvora. Svako od njih se rješava u aktivnom praćenju.

Veličina uzorka. Petnaest slučajeva u osam specijalističkih kategorija dovoljno je za dokaz koncepta, ali nije dovoljno za analizu podgrupa unutar jedne specijalnosti. Planirano je proširenje na pedeset slučajeva, koje će uključiti koagulacione panele, skrining hematoloških maligniteta, panele za trudnoću i pedijatrijske prezentacije.

Evaluacija u jednom pokušaju. Svaki slučaj evaluiran je jednom. Veliki jezički modeli pokazuju značajnu varijabilnost izlaza čak i pri niskoj temperaturi uzorkovanja, pa je protokol s više izvođenja s pet evaluacija po slučaju i prijavljenom varijansom prirodan sljedeći korak.

Obuhvat jednog motora. Ovaj izvještaj opisuje jedan motor. Poredbene analize s alternativnim AI sistemima ovdje nisu u dometu; eventualno ih možemo provesti kao zasebnu nezavisnu studiju s odgovarajućom metodologijom.

Porijeklo podataka iz jednog izvora. Petnaest slučajeva su anonimizirani stvarni medicinski zapisi pacijenata iz jednog kliničkog repozitorija. Oni predstavljaju kuriran uzorak i nisu slučajni uzorak reprezentativan za populaciju. Proširenje evaluacije na više centara planirano je na putnoj mapi.

Najutjecajnije planirano proširenje je višejzična paritetnost. Kantesti AI Engine služi korisnicima na 75+ jezika, a pokretanje istog harness-a s petnaest slučajeva na turskom, njemačkom, španskom, francuskom i arapskom kvantificirat će kvalitet izlaza na jezicima koje motor podržava. Objavit ćemo svako izvođenje specifično za jezik, s vlastitim DOI i granom harness-a.