Por qué existe esta evaluación comparativa y qué prueba
La interpretación de análisis de sangre con IA se utiliza cada vez más en flujos de trabajo de consumo y clínicos; sin embargo, siguen siendo poco comunes los marcos de evaluación reproducibles adaptados a la medicina de laboratorio. Las preguntas que más importan en este contexto no son las que cubren los puntos de referencia generales de preguntas y respuestas médicas: ¿puede un motor separar la deficiencia de hierro de la característica talasémica cuando el volumen corpuscular medio es idéntico, sobrediagnostica el síndrome de Gilbert como hepatitis y fabrica patología en un panel de cribado totalmente normal?
Un único panel de análisis de sangre suele contener suficiente información como para sustentar varias interpretaciones en competencia, y el trabajo del clínico que interpreta es ponderar esas interpretaciones entre sí, en lugar de recuperar una respuesta de manual. Un motor que se desempeña bien en casos de libro puede aun así fallar en los casos que más importan: las trampas de diagnósticos diferenciales, las variantes benignas que parecen alarmantes cuando se observan de forma aislada y los paneles completamente normales que tientan a los asistentes seguros a fabricar patología.
Este benchmark se construyó precisamente alrededor de esos modos de fallo. Cada uno de los quince casos se seleccionó por una propiedad diagnóstica específica: una microcitosis por deficiencia de hierro que debe mantenerse distinta de un rasgo de beta-talasemia con un volumen corpuscular medio idéntico, una presentación de síndrome de Gilbert en la que la única anomalía es una hiperbilirrubinemia indirecta aislada, y un panel de cribado de quince parámetros en el que cada analito se encuentra dentro de su rango de referencia. La rúbrica premia a los motores que leen cada caso en sus propios términos y penaliza a los motores que se lanzan a un diagnóstico seguro cuando no se justifica ninguno de ese tipo.
Como Thomas Klein, MD, seleccioné el panel de casos porque son los patrones que veo que los asistentes de medicina de laboratorio se equivocan con más frecuencia. El modo de fallo costoso no es "pasar por alto una enfermedad rara": es fabricar patología rutinaria en pacientes que no la tienen. Nuestro Validación médica el hub describe el marco más amplio; esta página describe la prueba de concepto inicial de la V11 y la V11 Segunda actualización que la escaló a 100,000 casos sintéticos extraídos de un conjunto de casos sintéticos que abarca 127 etiquetas de países — usando la misma rúbrica de puntuación, idéntica a nivel de bytes, sin permitir ajustes post hoc.
Ejecución de referencia más reciente: V11 Second Update (26 de abril de 2026)
La ejecución de referencia de la V11 Second Update del 26 de abril de 2026 produjo una puntuación compuesta de 99.80% sobre la misma rúbrica pre-registrada utilizada en el lanzamiento inicial de la V11, evaluada en 100,000 casos sintéticos extraídos del conjunto de casos sintéticos de Kantesti y que abarcan 127 etiquetas de países y los lenguajes 75+. Cada caso se completó en la ruta principal del motor; las activaciones de la bandera de hiperdetección en casos trampa permanecieron en 0 / 87,412. La ejecución original de la V11 del 23 de abril de 2026 cubrió 15 casos curados manualmente (compuesto 99.12%) y validó la rúbrica; la Second Update mantiene esa rúbrica idéntica a nivel de bytes y extiende la evaluación a una cohorte a escala poblacional.
La fórmula compuesta combina tres componentes: conformidad estructural con las siete secciones obligatorias del informe y dieciséis subsecciones obligatorias, exactitud del contenido medida como recuperación de palabras clave más recuperación del sistema de puntuación más una comprobación de validez de la distribución de probabilidad, y latencia de respuesta frente al objetivo de nivel de servicio del camino principal. La descomposición exacta se muestra en la fórmula de la rúbrica a continuación: ninguna de estas ponderaciones ni subrúbricas se alteró para la Second Update.
Los 0,20 puntos porcentuales restantes de margen se descomponen casi por completo en la subpuntuación clínica: una pequeña fracción de casos (predominantemente en Hepatología y Reumatología) tenía una palabra clave esperada del sistema de puntuación ausente en la interpretación del motor, a pesar de que el contenido diagnóstico era correcto. Ningún caso en la cohorte de 100.000 casos de la Second Update falló el diagnóstico en sí. La latencia mejoró de una media de 20,17 s en el lanzamiento inicial de la V11 a 13,26 s en la Second Update, lo que refleja optimizaciones del motor de producción entre las dos ejecuciones; la rúbrica, el código de puntuación y el endpoint de la API no han cambiado.
Las puntuaciones compuestas por etiqueta oscilaron entre 0.9971 y 0.9985 en las 30 etiquetas de países más representadas. La cola larga de 97 etiquetas adicionales (≈7,300 casos en total) no mostró degradación sistemática. Las etiquetas más frecuentes por número de casos fueron Estados Unidos (10,500), Brasil (9,500), España (9,000), Italia (8,000), Alemania (7,800), Francia (7,400), Portugal (5,800), Türkiye (3,400), el Reino Unido (2,900) y México (2,500).
De 15 casos a 100,000: evolución de la cohorte en 127 etiquetas de países
El panel de casos original de la V11 cubría siete especialidades — hematología, endocrinología, medicina metabólica, hepatología, nefrología, cardiología, reumatología — además de dos casos trampa dedicados de hiperdetección, con cada caso un panel de pruebas de sangre generado sintéticamente. La V11 Segunda actualización amplía la evaluación a 100,000 casos sintéticos en 127 etiquetas de países, distribuidos en ocho especialidades (las siete originales más un grupo interno de medicina dedicado que absorbe el subconjunto de la trampa). La misma rúbrica de puntuación se aplica de forma idéntica a nivel de bytes en ambas ejecuciones.
Dado que todos los casos se generan sintéticamente, no hay identificadores reales que eliminar y no se involucran datos personales. Cada caso sintético incluye un código de caso interno del punto de referencia (BT-NNN-LABEL en el conjunto inicial de la V11, un valor estable case_uid en la Segunda actualización). No aparece ningún dato personal en ninguna parte del banco publicado, el informe técnico o los conjuntos de datos publicados.
lanzamiento inicial de la V11: 15 casos curados manualmente
El panel de casos V11 original fue seleccionado manualmente por el Dr. Thomas Klein para ejercitar los patrones diagnósticos que los asistentes de medicina de laboratorio suelen equivocarse con más frecuencia. Cada uno de los quince casos se eligió por una propiedad diagnóstica específica, que se enumera a continuación.
Por qué esta distribución en particular
La hematología obtiene tres casos porque los diferenciales microcíticos y los diferenciales macrocíticos son las trampas de mayor volumen en la práctica real de laboratorio. La endocrinología obtiene tres porque las presentaciones de Hashimoto, SOP y deficiencia de vitamina D ejercitan formas diagnósticas distintas (impulsadas por autoanticuerpos, impulsadas por la proporción hormonal, impulsadas por un único marcador). Las especialidades de un solo caso siguen siendo significativas porque cada una de la ERC, el riesgo de ECVASC y la LES tiene su propio sistema de puntuación que el motor debe invocar (estadificación KDIGO, riesgo a 10 años de ECVASC, y criterios de LES EULAR/ACR de 2019, respectivamente).
V11 Segunda actualización — 100,000 casos sintéticos en 127 etiquetas de países
La Segunda actualización reemplaza el literal de Python de 15 casos codificado originalmente en la V11 por un conjunto de casos sintéticos más grande, generado programáticamente. El conjunto de casos se carga al inicio de cada ejecución y la configuración se registra para mayor transparencia. La distribución de la cohorte por área de contenido se muestra a continuación.
Distribución sintética de etiquetas de países — top 10 etiquetas
Los 100,000 casos sintéticos incluyen 127 etiquetas de países (ISO 3166-1 alpha-2) para ejercitar el manejo de la configuración regional. Asignación de etiquetas: Europa 57.7%, las Américas 25.4%, Asia-Pacífico 6.2%, etiquetas nombradas de Medio Oriente/África 3.4%, y una cola larga de 97 etiquetas adicionales aproximadamente 7.3% en conjunto. Las diez etiquetas más frecuentes por número de casos son Estados Unidos (10,500), Brasil (9,500), España (9,000), Italia (8,000), Alemania (7,800), Francia (7,400), Portugal (5,800), Türkiye (3,400), el Reino Unido (2,900) y México (2,500). Las puntuaciones compuestas por etiqueta oscilaron entre 0.9971 y 0.9985. Estos recuentos de etiquetas son propiedades de los casos generados usados para ejercitar el manejo de la configuración regional — no son usuarios reales ni cobertura geográfica real en el mundo.
La rúbrica pre-registrada, explicada
El registro previo es la elección metodológica más importante en este benchmark. Cada diagnóstico esperado, cada sistema de puntuación clínica y cada sección del informe se comprometieron al código fuente antes de invocar el motor. Por lo tanto, no es posible ajustar a posteriori la rúbrica para favorecer al motor.
Tres componentes conforman la puntuación compuesta. El componente estructural aporta el 35 por ciento y mide si el motor devolvió las siete secciones obligatorias del informe (encabezado, resumen, hallazgos clave, diferencial, sistemas de puntuación, recomendaciones, seguimiento) y las dieciséis subsecciones obligatorias dentro de ellas. La presencia de secciones pesa 40 por ciento y la presencia de subsecciones pesa 60 por ciento dentro del cálculo estructural.
El componente clínico aporta el 55 por ciento y combina tres cosas: recuperación de palabras clave del diagnóstico (70 por ciento de la subpuntuación clínica), recuperación del sistema de puntuación (20 por ciento: si el motor calcula Mentzer, FIB-4, HOMA-IR, riesgo de ECVASC, estadificación KDIGO, criterios EULAR/ACR cuando corresponda), y una comprobación de validez de suma de probabilidades (10 por ciento: las probabilidades del diferencial deben sumar dentro del intervalo [90, 110]). Para casos trampa, se resta una penalización explícita por hiperdianóstico de hasta 0.30, calculada como 0.10 por cada bandera de patología fabricada, con tope en tres banderas.
El componente de latencia aporta el 10 por ciento. Una respuesta en menos de 20 segundos obtiene la puntuación completa de 0.10, una respuesta en menos de 40 segundos obtiene 0.05, y cualquier cosa más lenta obtiene cero. El objetivo de 20 segundos refleja el objetivo de nivel de servicio del servicio primario de producción; el techo de 40 segundos refleja el presupuesto de respaldo de la Fase 2 para invocaciones intensivas del motor.
Lo que evita el registro previo
Los benchmarks de primera parte son notorios por inflar sus propios números mediante ajustes de rúbrica a posteriori. El patrón casi siempre es el mismo: el equipo ejecuta el motor, ve dónde rinde por debajo, y luego ajusta en silencio la rúbrica para que las áreas con peor desempeño cuenten menos. Al comprometer la rúbrica al código fuente antes de la primera llamada al motor y publicar el banco bajo la licencia MIT, ese ajuste se vuelve visible en el control de versiones. Cualquiera puede clonar el repositorio, comprobar las fechas de autor de la rúbrica y verificar que los resultados del motor no se usaron para dar forma a la puntuación.
Casos trampa de hiperdetección: por qué el exceso de llamadas es el modo de fallo real
La sobre-llamada agresiva de patología en pantallas normales es un modo de fallo documentado de los asistentes médicos orientados al consumidor. Sus costos posteriores incluyen investigación innecesaria, ansiedad del paciente y un estudio iatrogénico. Los dos casos trampa de este benchmark están diseñados para hacer visible y puntuable ese modo de fallo.
🟡 Trampa 1 — BT-014-GILBERT
Presentación. Un varón de 24 años con bilirrubina total de 2.4 mg/dL. La fracción directa es normal, las transaminasas y la fosfatasa alcalina están dentro de sus rangos de referencia, los reticulocitos no presentan hallazgos relevantes y la haptoglobina y la LDH descartan la hemólisis.
Interpretación correcta. Síndrome de Gilbert: una polimorfismo benigno de UGT1A1. La interpretación no debe invocar hepatitis, cirrosis, anemia hemolítica ni obstrucción biliar.
Resultado de la v11. Compuesto 1.000. Ninguna de las seis banderas de sobre-diagnóstico monitoreadas apareció como diagnóstico activo.
🟡 Trampa 2 — BT-015-SANO
Presentación. Una mujer de 35 años con un panel rutinario de cribado de quince parámetros. Cada analito se encuentra cómodamente dentro de su rango de referencia.
Interpretación correcta. Tranquilidad y mantenimiento del estilo de vida. La interpretación no debe fabricar patología limítrofe para sonar clínicamente útil.
Resultado de la v11. Compuesto 1.000. Ninguna de las siete señales de sobrediagnóstico supervisadas —diabetes, anemia, hipotiroidismo, dislipidemia, hepatitis, enfermedad renal, deficiencia— apareció como diagnóstico activo.
En ambas trampas, se comprobaron trece señales de hiperdetección supervisadas. No se activó ninguna. Este es el resultado que más importa para cualquier clínico que esté considerando usar un motor de IA como herramienta de triaje o antes de la consulta: el sistema no inventó una enfermedad donde no existía.
Índice de Mentzer: separar la deficiencia de hierro de la característica de la talasemia
Un segundo hallazgo de alto valor se refiere a la combinación del caso BT-001 (anemia ferropénica) con el caso BT-007 (rasgo de beta-talasemia menor). Ambos presentan microcitosis y son un obstáculo bien conocido para clasificadores ingenuos. El índice de Mentzer, calculado como MCV dividido entre el recuento de RBC, supera 13 en la deficiencia de hierro y cae por debajo de 13 en el rasgo talasémico.
En BT-001, la paciente era una mujer de 34 años con hemoglobina 10.4 g/dL, MCV 72.4 fL, RBC 4.1 × 10¹²/L, ferritina 6 ng/mL y TIBC elevado. El índice de Mentzer de aproximadamente 17.7 respalda una deficiencia absoluta de hierro. En BT-007, el paciente era un hombre de 28 años con microcitosis (MCV 65.8 fL) pero un recuento alto de RBC de 6.2, RDW normal, ferritina normal y HbA2 de 5.6 por ciento. El índice de Mentzer de aproximadamente 10.6 apunta al rasgo talasémico, y la HbA2 elevada confirma beta-talasemia menor.
Ambos casos obtuvieron 1.000. El motor invocó explícitamente el índice de Mentzer en ambas interpretaciones y devolvió el diagnóstico correcto en cada instancia. Este es el resultado con mayor tranquilidad clínica en todo el benchmark, porque clasificar erróneamente el rasgo de talasemia como deficiencia de hierro lleva a una suplementación de hierro inapropiada y a oportunidades perdidas de cribado familiar, y clasificar erróneamente la deficiencia de hierro como talasemia retrasa la terapia de reemplazo sencilla. Nuestro guía del rango de ferritina explica el contexto diferencial más amplio.
Resultados por caso de la ejecución de referencia inicial de la V11 (23 de abril de 2026)
La ejecución de referencia original de la V11 en la cohorte de prueba de concepto de 15 casos sirve como la base metodológica de la Second Update: cada detalle por caso a continuación ilustra cómo la rúbrica maneja una respuesta real del motor. Doce de quince casos alcanzaron la puntuación compuesta máxima de 1.000 en la ruta principal; tres casos se atendieron mediante el respaldo de la Fase 2, perdiendo el bono de latencia de 0.05 mientras se preservaba todo el contenido clínico y estructural. Un caso carecía de una sola subsección obligatoria; uno devolvió una suma de la distribución de probabilidades marginalmente reducida.
El caso de SOP (BT-008) perdió una única subsección obligatoria en la estructura de la respuesta — quince de dieciséis en lugar de dieciséis de dieciséis — lo que redujo la puntuación estructural de 1,000 a 0,963. El caso de LES (BT-011) devolvió una suma de distribución de probabilidad marginalmente reducida que bajó la puntuación clínica a 0,965, manteniendo cada palabra clave diagnóstica y el sistema de puntuación. Ninguno de los dos casos imperfectos perdió un diagnóstico correcto.
Agregado de la V11 Second Update: 100,000 casos
A escala poblacional, las filas individuales de casos no son legibles para humanos, por lo que la Segunda actualización informa métricas agregadas en lugar de una tabla de 100,000 filas. El agregado principal se muestra a continuación; los desgloses por especialidad y por etiqueta de país se publican en el informe técnico y en el depósito de Figshare. Se publica una muestra aleatoria estratificada de n = 201 respuestas sin procesar (semilla determinista 20260426) en el directorio de GitHub results/ para su inspección.
Lo que la puntuación principal no nos dice
Una puntuación compuesta de 99.80 por ciento bajo esta rúbrica pre-registrada en particular, en una cohorte sintética de 100,000 casos que abarca 127 etiquetas de países, representa un rendimiento cercano al techo — pero merece un encuadre cuidadoso. El resultado describe el comportamiento del motor frente a la rúbrica con la que nos comprometimos en el código fuente en la V11; no es una afirmación universal sobre la corrección del motor en cada panel de pruebas de sangre que existe en el mundo real.
La puntuación indica que el motor manejó correctamente los patrones diagnósticos seleccionados para esta evaluación en un cohorte a escala poblacional, con una metodología publicada y reproducible. No dice que el motor sea correcto en cada panel de análisis de sangre que exista en el mundo real. No dice que el motor deba reemplazar el criterio clínico. Y tampoco dice que el motor supere a sistemas alternativos de IA: los análisis comparativos con otros motores quedaron deliberadamente fuera del alcance de este informe.
Lo que sí establece la puntuación es una línea de base. Con la rúbrica y el banco de pruebas públicos, las versiones futuras del motor pueden evaluarse frente a la misma rúbrica: aplicada a los 15 casos iniciales de V11, al cohorte de 100.000 casos de la Segunda actualización, o a cualquier expansión posterior; y la brecha entre la puntuación publicada y cualquier ejecución posterior es, por sí misma, medible. Este es el valor del pre-registro: convierte afirmaciones de rendimiento en afirmaciones comprobables.
Cómo reproducir este punto de referencia en 10 minutos
La reproducción requiere únicamente un par de credenciales de API Kantesti y un entorno de Python 3.10 o posterior con la requests y reportlab bibliotecas instaladas. El banco de pruebas completo es un único módulo de Python autocontenido, publicado bajo la licencia MIT.
Cuatro pasos para una ejecución nueva
Uno. Clona el repositorio: git clone https://github.com/emirhanai/kantesti-blood-test-benchmark.git. Dos. Instala las dependencias con pip install -r requirements.txt (La Segunda actualización añade mysql-connector-python ≥ 8.0 para el cargador de casos SQL). Tres. Configura KANTESTI_USERNAME y KANTESTI_PASSWORD como variables de entorno para la API del motor. Para el cargador de casos SQL de la Segunda actualización, también configura KANTESTI_DB_HOST, KANTESTI_DB_PORT, KANTESTI_DB_NAME, KANTESTI_DB_USER, y KANTESTI_DB_PASSWORD — el cargador se conecta mediante un rol de solo lectura (bench_reader) que no tiene privilegios para identificar tablas. Cuatro. Ejecuta python benchmark_bloodtest.py --limit 100000 para la ejecución completa de Second-Update, o python benchmark_bloodtest.py --limit 1000 para iteración rápida. Los resultados se guardan en ./benchmark_results/: una tarjeta de puntuación en CSV con columnas por país/etiqueta y por especialidad, un agregado en JSON, una muestra estratificada-aleatoria de respuestas en bruto y un informe en Markdown.
Las ejecuciones de referencia del 23 de abril de 2026 (V11 inicial, 15 casos) y del 26 de abril de 2026 (V11 Second Update, 100,000 casos) se conservan en el results/ directorio del repositorio. Una ejecución nueva generará un nuevo panel con marca de tiempo, dejando las ejecuciones de referencia intactas. Si tu ejecución produce un resultado significativamente diferente, por favor abre un issue en GitHub con la marca de tiempo de la ejecución y la versión del motor devuelta en los metadatos de la respuesta.
Limitaciones y trabajo futuro
Incluso con 100.000 casos en 127 etiquetas de país, cuatro limitaciones merecen un reconocimiento explícito: submuestreo insuficiente de etiquetas de cola larga, evaluación de una sola vez, alcance de un solo motor y origen de datos de una sola fuente. Cada una se está abordando en trabajos de seguimiento en curso.
Cobertura de etiquetas de cola larga. La Segunda Actualización abarca 127 etiquetas de país, pero la distribución no está equilibrada: las 10 etiquetas principales representan ≈66,4% de los casos, y la cola larga de 97 etiquetas adicionales aporta conjuntamente ≈7,3% (aproximadamente 7.300 casos en total, ~75 casos por etiqueta en promedio). Por lo tanto, los compuestos por etiqueta en esta cola larga son más ruidosos que lo que sugieren las cifras principales. Las futuras ejecuciones reequilibrarán la asignación de etiquetas para consolidar las estimaciones por etiqueta.
Evaluación de una sola toma. Cada caso en la cohorte se evaluó una sola vez. Los modelos de lenguaje grande muestran una variación de salida no trivial incluso con una temperatura de muestreo baja, por lo que un protocolo de múltiples ejecuciones con cinco evaluaciones por caso y la variancia reportada es el siguiente paso natural — especialmente en el subconjunto de casos trampa, donde la consistencia ante el “jitter” de muestreo forma parte de la afirmación de seguridad.
Alcance de un solo motor. Este informe caracteriza un solo motor. Los análisis comparativos frente a sistemas de IA alternativos quedan fuera del alcance aquí; podríamos realizarlos como un estudio independiente por separado con la metodología adecuada, usando el mismo arnés con licencia MIT.
Datos sintéticos. Los 100.000 casos se generan sintéticamente, no son “casos sintéticos”, y los resultados no se transfieren al rendimiento clínico en el mundo real. La evaluación con datos reales, con consentimiento y de origen externo requeriría una supervisión ética adecuada y queda fuera del alcance de este benchmark sintético.
Más allá de estas cuatro, la extensión planificada con mayor impacto es la paridad multilingüe por jurisdicción. El motor de IA Kantesti atiende a usuarios en 75+ idiomas, y ejecutar subcohortes Second-Update estratificadas por idioma (turco, alemán, español, francés, italiano, portugués, árabe, mandarín) cuantificará la calidad de salida en los idiomas compatibles del motor. Cada análisis estratificado por idioma se publicará con su propio DOI y rama del arnés.