Por que existe este benchmark e que proba
A interpretación de análise de sangue con IA asistida cada vez se usa máis en fluxos de traballo de consumo e clínicos, pero seguen sendo pouco comúns os marcos de avaliación reproducibles adaptados á medicina de laboratorio. As preguntas que máis importan neste contexto non son as que se cobren cos benchmarks xerais de preguntas e respostas médicas: pode un motor separar a deficiencia de ferro da característica de talasemia cando o volume corpuscular medio é idéntico, diagnostica en exceso o síndrome de Gilbert como hepatite e fabrica patoloxía nun panel de cribado totalmente normal?
Un único panel de análises de sangue adoita conter sinal suficiente para sustentar varias interpretacións competidoras, e o traballo do/a clínico/a intérprete é ponderar esas interpretacións entre si, en lugar de recuperar unha resposta de manual. Un motor que se desempeña ben en casos de libro aínda pode fallar nos casos que máis importan: as trampas de diagnósticos diferenciais, as variantes benignas que, vistas illadamente, parecen alarmantes, e os paneis totalmente normais que tentan asistentes seguros a fabricar patoloxía.
Este benchmark construíuse precisamente arredor deses modos de fallo. Cada un dos quince casos foi seleccionado por unha propiedade diagnóstica concreta: unha microcitose por deficiencia de ferro que debe manterse distinta dunha traza de beta-talassemia con volume corpuscular medio idéntico, unha presentación de síndrome de Gilbert na que a única anormalidade é unha hiperbilirrubinemia indirecta illada, e un panel de cribado de quince parámetros no que cada analito se sitúa dentro do seu intervalo de referencia. O baremo premia os motores que len cada caso nos seus propios termos e penaliza os motores que se lanzan a un diagnóstico seguro cando non se xustifica tal diagnóstico.
Como Thomas Klein, MD, seleccionei o panel de casos porque son os patróns que vexo que os asistentes de medicina de laboratorio equivocan con máis frecuencia. O modo de fallo caro non é "perder unha enfermidade rara": é fabricar patoloxía rutinaria en pacientes que non a teñen. O noso Validación médica describe o marco máis amplo; esta páxina describe a proba de concepto inicial do V11 e o V11 Second Update que o escalou a 100.000 casos anonimizados extraídos dun repositorio clínico con soporte SQL que abarca 127 países — usando a mesma rúbrica de puntuación, idéntica en bytes, sen permitir axuste posterior.
Execución de referencia máis recente — V11 Second Update (26 de abril de 2026)
A execución de referencia do V11 Second Update do 26 de abril de 2026 produciu unha puntuación composta de 99.80% na mesma rúbrica pre-rexistrada usada na primeira versión do V11, avaliadas en 100.000 casos anonimizados extraídos do repositorio clínico con soporte SQL Kantesti e que abranguen 127 países e linguaxes 75+. Cada caso completouse no camiño principal do motor; as activacións do sinalizador de hiperdiagnóstico en casos trampa mantivéronse en 0 / 87,412. A execución orixinal do V11 do 23 de abril de 2026 cubriu 15 casos curados a man (composta 99.12%) e validou a rúbrica; o Second Update mantén esa rúbrica idéntica en bytes e estende a avaliación a unha cohorte a escala poboacional.
A fórmula composta combina tres compoñentes: conformidade estrutural coas sete seccións de informe obrigatorias e dezaseis subseccións obrigatorias, precisión clínica medida como recuperación de palabras clave máis recuperación do sistema de puntuación máis unha comprobación de validez da distribución de probabilidades, e latencia de resposta fronte ao obxectivo de nivel de servizo do camiño principal. A descomposición exacta móstrase na fórmula da rúbrica a continuación — ningunha destas ponderacións nin sub-rúbricas foi alterada para o Second Update.
Os restantes 0.20 puntos porcentuais de marxe descomponse case por completo na subpuntuación clínica — unha pequena fracción de casos (predominantemente en Hepatoloxía e Reumatoloxía) tiña unha palabra clave esperada do sistema de puntuación ausente da interpretación do motor malia que o contido diagnóstic o era correcto. Ningún caso na cohorte de 100.000 casos do Second Update perdeu o diagnóstico en si. A latencia mellorou desde unha media de 20.17 s na primeira versión do V11 ata 13.26 s no Second Update, reflectindo optimizacións do motor de produción entre as dúas execucións; a rúbrica, o código de puntuación e o endpoint da API non cambiaron.
As puntuacións compostas por país oscilaron entre 0.9971 (India) e 0.9985 (Suíza) nos 30 países máis representados. A longa cola de 97 países adicionais (≈7,300 casos en total) non mostrou degradación sistemática. Os principais contribuíntes por número de casos foron os Estados Unidos (10,500), Brasil (9,500), España (9,000), Italia (8,000), Alemaña (7,800), Francia (7,400), Portugal (5,800), Türkiye (3,400), o Reino Unido (2,900) e México (2,500).
De 15 casos a 100.000: evolución da cohorte en 127 países
O panel de casos orixinal do V11 cubría sete especialidades — hematoloxía, endocrinoloxía, medicina metabólica, hepatoloxía, nefroloxía, cardioloxía, reumatoloxía — ademais de dous casos dedicados de hiperdiagnóstico trampa, con cada caso sendo un rexistro real de paciente anonimizad o extraído do repositorio de datos clínicos Kantesti baixo consentimento informado por escrito. O V11 Second Update estende a avaliación a 100.000 casos anonimizados en 127 países, distribuídos en oito especialidades (as sete orixinais máis un compartimento interno de medicina dedicado que absorbe o subconxunto de trampa). A mesma rúbrica de puntuación aplícase idéntica en bytes en ambas as execucións.
A desidentificación realizouse baixo o enfoque Safe Harbor: elimináronse ou substituíronse todos os identificadores directos, e a cada rexistro asignóuselle un código de caso interno de referencia no formato BT-NNN-LABEL (V11 inicial) ou un case_uid estable anonimizad o para o Second Update. O procesamento realizouse de acordo con Artigo 9(2)(j) do RGPD para investigación científica con salvagardas adecuadas, e as disposicións equivalentes do RGPD do Reino Unido. Non aparece ningunha información persoalmente identificable en ningunha parte do banco de probas publicado, do informe técnico nin dos conxuntos de datos liberados.
primeira versión do V11 — 15 casos curados a man
O panel de casos V11 orixinal foi seleccionado manualmente polo doutor Thomas Klein para exercitar os patróns diagnósticos que os asistentes de medicina de laboratorio adoitan interpretar mal. Cada un dos quince casos foi escollido por unha propiedade diagnóstica específica, listada a continuación.
Por que esta distribución en particular
A hematoloxía recibe tres casos porque os diagnósticos diferenciais microcíticos e macrocíticos son as trampas de maior volume na práctica real de laboratorio. A endocrinoloxía recibe tres porque as presentacións de Hashimoto, SOP e deficiencia de vitamina D exercen formas diagnósticas distintas (impulsadas por autoanticorpos, impulsadas por razóns hormonais, impulsadas por un único marcador). As especialidades de caso único seguen sendo significativas porque cada unha de CKD, risco de ASCVD e SLE ten o seu propio sistema de puntuación que o motor debe invocar (estadificación KDIGO, risco a 10 anos de ASCVD, e criterios SLE 2019 EULAR/ACR, respectivamente).
V11 Segunda actualización — 100.000 casos anonimizados en 127 países
A Segunda actualización substitúe o literal Python orixinal de 15 casos codificado en V11 por defecto, por unha consulta SQL parametrizada e de só lectura contra o repositorio clínico Kantesti (anonymised_blood_panels). A consulta filtra en consent_research = 1 AND released_for_benchmark = 1 e imprímese na parte superior de cada execución de benchmark para garantir a transparencia. A distribución da cohorte por especialidade móstrase a continuación.
Distribución xeográfica — top 10 países
A cohorte abarca 127 países (ISO 3166-1 alpha-2). Europa achega 57.7%, as Américas 25.4%, Asia-Pacífico 6.2%, as entradas do Oriente Medio/África nomeadas 3.4%, e unha longa cola de 97 países adicionais que, en conxunto, roldan os 7.3%. Os dez maiores contribuidores son os Estados Unidos (10,500), Brasil (9,500), España (9,000), Italia (8,000), Alemaña (7,800), Francia (7,400), Portugal (5,800), Türkiye (3,400), o Reino Unido (2,900) e México (2,500). As puntuacións compostas por país oscilaron entre 0.9971 (India) e 0.9985 (Suíza).
O baremo preinscrito, explicado
O rexistro previo é a elección metodolóxica máis importante neste benchmark. Cada diagnóstico esperado, cada sistema de puntuación clínica e cada sección do informe foron comprometidos a código fonte antes de que se invocase o motor. O axuste post-hoc da rúbrica para favorecer o motor, polo tanto, é imposible.
Tres compoñentes forman a puntuación composta. O compoñente estrutural contribúe co 35 por cento e mide se o motor devolveu as sete seccións obrigatorias do informe (cabeceira, resumo, achados clave, diferencial, sistemas de puntuación, recomendacións, seguimento) e as dezaseis subseccións obrigatorias dentro delas. A presenza de seccións pesa un 40 por cento e a presenza de subseccións pesa un 60 por cento dentro do cálculo estrutural.
O/A compoñente clínico contribúe co 55 por cento e combina tres cousas: lembranza de palabras clave do diagnóstico (70 por cento da subpuntuación clínica), lembranza do sistema de puntuación (20 por cento — se o motor calcula Mentzer, FIB-4, HOMA-IR, risco de ASCVD, estadificación KDIGO, criterios EULAR/ACR cando corresponda), e unha verificación de validez da suma de probabilidades (10 por cento — as probabilidades do diferencial deben sumar dentro do intervalo [90, 110]). Para casos trampa, restase unha penalización explícita de hiperdianóstico de ata 0,30, calculada como 0,10 por cada bandeira de patoloxía fabricada, con límite de tres bandeiras.
O/A compoñente de latencia contribúe co 10 por cento. Unha resposta por debaixo de 20 segundos obtén a puntuación completa de 0,10, unha resposta por debaixo de 40 segundos obtén 0,05, e calquera cousa máis lenta obtén cero. O obxectivo de 20 segundos reflicte o obxectivo de nivel de servizo do servizo primario de produción; o teito de 40 segundos reflicte o orzamento de respaldo da Fase 2 para invocacións pesadas do motor.
O que evita o rexistro previo
Os benchmarks de primeira parte son notorios por inflar os seus propios números mediante axustes post-hoc da rúbrica. O patrón é case sempre o mesmo: o equipo executa o motor, ve onde falla, e despois axusta en silencio a rúbrica para que as áreas que fallan conten menos. Ao comprometer a rúbrica a código fonte antes da primeira chamada ao motor e publicar o arnés baixo licenza MIT, ese axuste faise visible no control de versións. Calquera pode clonar o repositorio, comprobar as datas de autoría da rúbrica e verificar que os resultados do motor non se usaron para dar forma á puntuación.
Casos trampa de hiperdianóstico: por que a sobrechamada é o verdadeiro modo de fallo
O sobrediagnóstico agresivo de patoloxía en pantallas normais é un modo de fallo documentado de asistentes médicos orientados ao consumidor. Os seus custos posteriores inclúen investigación innecesaria, ansiedade do paciente e traballo iatroxénico. Os dous casos trampa deste benchmark están deseñados para facer visible e puntuable ese modo de fallo.
🟡 Trampa 1 — BT-014-GILBERT
Presentación. Un home de 24 anos cunha bilirrubina total de 2,4 mg/dL. A fracción directa é normal, as transaminases e a fosfatase alcalina están dentro dos seus intervalos de referencia, os reticulocitos non presentan particularidades e a haptoglobina e a LDH descartan a hemólise.
Interpretación correcta. Síndrome de Gilbert — unha polimorfia benigna de UGT1A1. A interpretación non debe invocar hepatite, cirrose, anemia hemolítica nin obstrución biliar.
Resultado V11. Composta 1.000. Ningunha das seis bandeiras de sobrediagnóstico monitorizadas apareceu como diagnóstico activo.
🟡 Trampa 2 — BT-015-SAUDABLE
Presentación. Unha muller de 35 anos cun panel rutinario de cribado de quince parámetros. Cada analito está cómodamente dentro do seu intervalo de referencia.
Interpretación correcta. Tranquilidade e mantemento do estilo de vida. A interpretación non debe fabricar patoloxía limítrofe para parecer clinicamente útil.
Resultado V11. Composto 1.000. Ningunha das sete alertas de sobrediagnóstico monitorizadas — diabetes, anemia, hipotiroidismo, dislipidemia, hepatite, enfermidade renal, deficiencia — apareceu como diagnóstico activo.
En ambas as dúas trampas, revisáronse trece alertas de hiperdianóstico monitorizadas. Non se activou ningunha. Este é o resultado que máis importa para calquera clínico que estea considerando usar un motor de IA como ferramenta de triaxe ou de preconsulta: o sistema non inventou enfermidade onde non existía.
Índice de Mentzer: separar a deficiencia de ferro da traza de talasemia
Un segundo achado de alto valor está relacionado co emparellamento do caso BT-001 (anemia ferropénica) co caso BT-007 (beta-talassemia menor). Ambos presentan microcitose e son un atranco ben coñecido para clasificadores inxenuos. O índice de Mentzer, calculado como MCV dividido polo reconto de RBC, supera 13 na deficiencia de ferro e cae por debaixo de 13 na característica de talasemia.
En BT-001, a paciente era unha muller de 34 anos con hemoglobina 10,4 g/dL, MCV 72,4 fL, RBC 4,1 × 10¹²/L, ferritina 6 ng/mL e TIBC elevado. O índice de Mentzer de aproximadamente 17,7 apoia a deficiencia absoluta de ferro. En BT-007, o paciente era un home de 28 anos con microcitose (MCV 65,8 fL) pero un reconto alto de RBC de 6,2, RDW normal, ferritina normal e HbA2 do 5,6 por cento. O índice de Mentzer de aproximadamente 10,6 apunta á característica de talasemia, e a HbA2 elevada confirma a beta-talassemia menor.
Ambos casos obtiveron 1.000. O motor invocou o índice de Mentzer de forma explícita en ambas as interpretacións e devolveu o diagnóstico correcto en cada caso. Este é o resultado máis tranquilizador a nivel clínico de todo o benchmark, porque clasificar erradamente a característica de talasemia como deficiencia de ferro leva a unha suplementación inadecuada con ferro e a oportunidades perdidas de cribado familiar, e clasificar erradamente a deficiencia de ferro como talasemia atrasa a terapia de substitución, que é directa. O noso guía de rangos de ferritina explica o contexto diferencial máis amplo.
Resultados por caso da execución de referencia inicial da V11 (23 de abril de 2026)
A execución de referencia orixinal da V11 na cohorte de proba de concepto de 15 casos serve como a base metodolóxica da Second Update: cada detalle por caso de abaixo ilustra como o baremo xestiona unha resposta real do motor. Doce de quince casos acadaron o teito da puntuación composta de 1.000 no camiño principal; tres casos servíronse mediante o fallback da Fase 2, perdendo o bono de latencia de 0.05 mentres se preservaba todo o contido clínico e estrutural. Un caso carecía dunha única subsección obrigatoria; un devolveu unha suma de distribución de probabilidades lixeiramente reducida.
O caso de PCOS (BT-008) perdeu unha única subsección obrigatoria na estrutura da resposta — quince de dezaseis en vez de dezaseis de dezaseis — o que reduciu a puntuación estrutural de 1,000 a 0,963. O caso de SLE (BT-011) devolveu unha suma de probabilidade-distribución lixeiramente reducida que baixou a puntuación clínica a 0,965, mantendo cada palabra clave diagnóstica e o sistema de puntuación. Ningún dos dous casos non perfectos perdeu un diagnóstico correcto.
Agregado da V11 Second Update — 100,000 casos
A escala poboacional, as filas individuais de cada caso non son lexibles para humanos, polo que a Second Update informa métricas agregadas en lugar dunha táboa de 100,000 filas. O agregado principal móstrase a continuación; as desagregacións por especialidade e por país publícanse no informe técnico e no depósito de Figshare. Publícase unha mostra aleatoria estratificada de n = 201 respostas crúas do motor (semente determinista 20260426) no directorio de GitHub results/ para a súa inspección.
O que non nos di a puntuación do titular
Unha puntuación composta do 99,80 por cento baixo esta rúbrica pre-rexistrada en particular, nunha cohorte anonimizada de 100.000 casos que abarca 127 países, representa un rendemento case ao teito — pero merece unha contextualización coidadosa. O resultado describe o comportamento do motor fronte á rúbrica coa que nos comprometemos no código fonte en V11; non é unha afirmación universal sobre a corrección do motor en cada panel de análise de sangue que existe no mundo real.
A puntuación indica que o motor xestionou correctamente os patróns diagnósticos seleccionados para esta avaliación en toda unha cohorte a escala poboacional, nunha metodoloxía publicada e reproducible. Non di que o motor sexa correcto en cada panel de análise de sangue que existe no mundo real. Non di que o motor deba substituír o xuízo clínico. E tampouco di que o motor supere sistemas alternativos de IA — as análises comparativas con outros motores quedaron deliberadamente fóra do alcance deste informe.
O que si establece a puntuación é unha liña de base. Coa rúbrica e o arnés públicos, as versións futuras do motor pódense avaliar fronte á mesma rúbrica — aplicada aos 15 casos iniciais de V11, á cohorte de 100.000 casos da Segunda actualización, ou a calquera expansión posterior — e a diferenza entre a puntuación publicada e calquera execución posterior é, por si mesma, medible. Este é o valor da pre-rexistración: converte as afirmacións de rendemento en afirmacións comprobables.
Como reproducir este benchmark en 10 minutos
A reproducibilidade require só un par de credenciais de API Kantesti e un entorno de Python 3.10 ou posterior co requests e reportlab bibliotecas instaladas. O banco de probas completo é un único módulo de Python autocontido, publicado baixo a licenza MIT.
Catro pasos para unha execución nova
Un. Clona o repositorio: git clone https://github.com/emirhanai/kantesti-blood-test-benchmark.git. Dous. Instala as dependencias con pip install -r requirements.txt (A Segunda actualización engade mysql-connector-python ≥ 8.0 para o cargador de casos SQL). Tres. Define KANTESTI_USERNAME e KANTESTI_PASSWORD como variables de contorno para a API do motor. Para o cargador de casos SQL da Segunda actualización, tamén define KANTESTI_DB_HOST, KANTESTI_DB_PORT, KANTESTI_DB_NAME, KANTESTI_DB_USER, e KANTESTI_DB_PASSWORD — o cargador conecta mediante un rol de só lectura (bench_reader) que non ten privilexios para identificar táboas. Catro. Executa python benchmark_bloodtest.py --limit 100000 para a execución completa de Second-Update, ou python benchmark_bloodtest.py --limit 1000 para unha iteración rápida. Os resultados gárdanse en ./benchmark_results/: un CSV scorecard con columnas por país e por especialidade, un agregado JSON, unha mostra estratificada-aleatoria de respostas en bruto e un informe en Markdown.
As execucións de referencia de 23 de abril de 2026 (V11 inicial, 15 casos) e de 26 de abril de 2026 (V11 Second Update, 100,000 casos) consérvanse no results/ directorio do repositorio. Unha execución nova xerará un novo scorecard con marca temporal, deixando as execucións de referencia intactas. Se a túa execución produce un resultado significativamente diferente, por favor abre un problema en GitHub coa marca temporal da execución e a versión do motor devolta nos metadatos da resposta.
Limitacións e traballo futuro
Mesmo con 100,000 casos en 127 países, catro limitacións merecen un recoñecemento explícito: infraamostrado de países de cola longa, avaliación dunha soa vez, alcance dun só motor e orixe de datos dunha soa fonte. Cada unha está a ser abordada en traballo de seguimento activo.
Cobertura de países de cola longa. O Second Update abarca 127 países, pero a distribución está desbalanceada: os 10 principais contribuidores representan ≈66.4% dos casos, e a cola longa de 97 países adicionais xuntos contribúe ≈7.3% (aprox. 7,300 casos combinados, ~75 casos por país de media). Polo tanto, os compostos por país nesta cola longa son máis ruidosos do que suxiren as cifras principais. As futuras execucións recrutaran preferentemente de países infraamostrados para consolidar as estimacións por xurisdición.
Avaliación dunha soa vez. Cada caso do conxunto foi avaliado unha única vez. Os modelos de linguaxe grande presentan unha variación de saída non trivial incluso a baixa temperatura de mostreo, polo que un protocolo de múltiples execucións con cinco avaliacións por caso e a variancia reportada é un seguinte paso natural — especialmente no subconxunto de casos trampa, onde a consistencia baixo axitación de mostreo forma parte da afirmación de seguridade.
Alcance dun só motor. Este informe caracteriza un único motor. As análises comparativas fronte a sistemas de IA alternativos quedan fóra do alcance aquí; podemos abordalas como un estudo independente separado con metodoloxía adecuada, contra o mesmo arnés con licenza MIT.
Orixe dos datos dunha soa fonte. Os 100,000 casos son rexistros reais de pacientes anonimizados, extraídos dun único repositorio clínico (o almacén de datos clínicos con soporte SQL Kantesti). Representan un fluxo de produción coidadosamente seleccionado e non constitúen unha mostra aleatoria representativa da poboación a nivel global. Estender a avaliación a datos multi-centro obtidos externamente está no plan de traballo.
Máis aló destas catro, a extensión planificada con maior impacto é a paridade multilingüe por xurisdición. O Kantesti AI Engine atende usuarios en 75+ linguas, e executar sub-cohortes estratificadas por lingua do Second Update (turco, alemán, español, francés, italiano, portugués, árabe, mandarín) cuantificará a calidade das saídas nas linguas admitidas polo motor. Cada análise estratificada por lingua publicarase co seu propio DOI e rama do arnés.