Cómo se construyó y cómo leer el banco
El detalle que no cabe en el resumen: qué se pregunta a los modelos, de dónde sale la respuesta correcta y cuánto fiarse de ella, qué experimentos se fijaron de antemano y cómo terminaron.
Qué se pregunta: decisiones tipadas
Un modelo "System One" no redacta una respuesta: recibe un texto (el estado) y varias preguntas con un tipo fijo, y devuelve una distribución de probabilidad por pregunta en una sola pasada. Todos los modelos reciben exactamente las mismas preguntas, con las mismas opciones y descripciones; cada resultado guarda un hash de las preguntas para detectar cualquier cambio.
choiceElegir una opción de una lista con descripciones. Ejemplo: departamento (urgencias, broncoscopia, consulta externa, admin).
scoreUn nivel ordinal. Ejemplo: urgencia (bajo, medio, crítico). Acertar a un nivel de distancia vale medio punto.
noulProbabilidad de "sí". Ejemplo: ¿hay que responder hoy? Cuenta como "sí" a partir de 0.5.
En triaje y adversarial se hacen 5 preguntas por mensaje: departamento, urgencia, clínico, hostil y responder hoy. En papers, otras 5: relevancia, dominio, diseño, profundidad de lectura y si cambia la práctica clínica.
Sets
| Set | Casos | Qué mide | Equilibrio |
|---|---|---|---|
| Triaje ES / EN | 14 × 2 | Mensajes a una unidad de neumología intervencionista, en español y su traducción al inglés | Mayoría: 66 % |
| Triaje ampliado ES / EN | 26 × 2 | Más urgencias reales y más mensajes hostiles | Mayoría: 58 % |
| Papers | 32 | Abstracts de PubMed: relevancia para el especialista y cómo leerlos | Mayoría: 52 % |
| Adversarial 1 y 2 | 10 + 10 | Mensajes que intentan desviar el triaje | 17/20 son admin: no sirve para comparar |
| Adversarial 3 | 20 | 10 manipulados y 10 honestos, 5 por departamento | Mayoría: 5/20 en departamento |
| Adversarial 4 | 20 | Timos (pagos, datos de terceros, marketing) y honestos que mencionan pagos o enlaces | Diseñado para validar reglas fijas |
| Adversarial 5 | 20 | Familias de manipulación nuevas y honestos que suenan a manipulación | 5 por departamento |
"Mayoría" es el acierto total de responder siempre la opción más frecuente del set: la línea base que todo modelo debe superar.
El ground truth y cuánto fiarse de él
Los mensajes son inventados; ninguno procede de pacientes reales. La respuesta correcta de cada caso la redactaron modelos de lenguaje y la revisaron personas en distinto grado:
| Sets | Redactó el GT | Lo validó |
|---|---|---|
| Triaje, papers, adversarial 1–2 | Un agente LLM (Lyra), 20–23 sep 2026 | Sin revisión sistemática; 11 cambios de campo posteriores |
| Triaje ampliado, adversarial 3–4 | Claude | El responsable del proyecto, antes de ejecutar ningún modelo |
| Adversarial 5 | Claude | Claude, por delegación (sin revisión humana) |
Versiones y cambios
El GT se versiona: v1 es el original, v2 (26-sep) corrige un paper y v3 (27-sep, el actual) incorpora la adjudicación de la segunda anotación. Los once cambios de campo:
- Paper P04 (criobiopsia en EPID): dominio "ild", que no era una opción válida, pasa a
ip; diseñocohortpasa ameta(el título es "Systematic Review"). - T03 disnea de reposo con ortopnea y edemas: consulta externa pasa a urgencias.
- T10 queja por la espera: responder hoy pasa a no (el remitente da de plazo "esta semana").
- T12 aseguradora que pide el informe de indicación: clínico pasa a sí.
- T26, T32, T36 y T38 (mensajes hostiles o con amenazas): responder hoy pasa a sí.
- T37 justificante para entregar hoy: urgencia media pasa a crítica (plazo explícito).
- A10 abogado educado: hostil pasa a no.
Segunda anotación
Para medir el ruido del GT se preparó un formulario a ciegas (sin mostrar el GT ni las respuestas de los modelos) con los campos en disputa: aquellos en que la mayoría de modelos contradecía al GT o estaban divididos. De los 167 campos, 78 los respondió una persona; el resto los completó otro modelo y no se usan como evidencia.
| Pregunta | Campos | Acuerdo con el GT | Kappa |
|---|---|---|---|
| Urgencia | 38 | 58 % | 0.42 (ponderado) |
| Departamento | 12 | 67 % | 0.46 |
| Responder hoy | 17 | 65 % | 0.33 |
| Clínico | 8 | 88 % | 0.71 |
| Hostil | 3 | 33 % | — (n = 3) |
Son casos límite elegidos a propósito, así que el acuerdo general del GT es más alto. Lo relevante: urgencia y "responder hoy" son muy interpretables. Al volver a puntuar todos los modelos con las respuestas de la segunda anotación, el orden entre modelos no cambió; todos subían unos puntos.
Experimentos con criterio fijado de antemano
Para cada experimento se escribió el criterio de éxito antes de ejecutarlo, y se guardó en el control de versiones. Los resultados negativos se documentan igual que los positivos.
| Experimento | Criterio | Resultado | Veredicto |
|---|---|---|---|
| Revisor Jev sobre Jev | Mejorar al menos 2 de 4 bloques y más que un control de dos llamadas sin revisión | Mejora los 4 bloques; el control no mejora nada. Confirmado después en casos nuevos, con una ganancia menor | Cumple |
| Revisor abierto sobre Decider-4B | Recuperar al menos el 50 % de la ganancia que da Jev como revisor, sin empeorar ninguna fase más de 2 puntos | Decider-35B NVFP4: 34–45 %. AnyJev-32B: empeora el triaje. AnyJev-8B: sin ganancia | No cumple |
| Reglas fijas contra timos | Validación en 20 casos nuevos con las reglas congeladas | 0 de 10 ataques detectados; 3 de 10 honestos marcados, uno con fiebre tras la EBUS | Descartadas |
| Alerta de manipulación | Al menos 7 de 10 manipulados detectados y como mucho 1 falso positivo, en casos nuevos | 9 de 10 y 1 falso positivo | Cumple |
| Votación de tres llamadas (histórico, 23-sep) | Mejorar a una sola llamada | Mismo acierto con el triple de coste | Neutro |
| Desacuerdo Jev ↔ Laya como señal (histórico) | Detectar los errores de Jev | Los errores de Laya incluyen los de Jev: 0 de 2 detectados, 6 falsas alarmas de 10 | Descartado |
Versiones de Jev
Todo el banco está medido con jev-1.13, que OpenRouter publica como typesafe/jev-1.13-20260917 y la API de TypeSafe como jev-1.13.0. Las dos dan las mismas respuestas (406 de 409 iguales; las 3 distintas están en la frontera de redondeo). A 27-sep-2026, jev-latest y jev-preview apuntan a esa misma versión.
Jev tiene algo de ruido entre llamadas: al repetir la batería, las probabilidades cambian de media del orden de 0.01 y algún caso en la frontera cambia de respuesta. Si el alias pasa a una versión nueva, hay que repetir las mediciones antes de comparar.
Glosario
- Una pasada / con revisor
- Una sola llamada al modelo, frente a dos: la primera decide y la segunda audita esa decisión.
- Regla
audit - El revisor solo sustituye una respuesta si la marca como incorrecta.
reviewusa siempre la respuesta del revisor;avgpromedia ambas. - Mayoría (oráculo)
- Responder siempre la opción más frecuente del set. Es un listón mínimo, y "oráculo" porque se calcula conociendo el GT.
- IC del 95 %
- Rango plausible del acierto, estimado remuestreando los casos (bootstrap). Si dos rangos se solapan mucho, no hay diferencia clara.
- McNemar
- Test para comparar dos modelos sobre los mismos casos. Solo cuentan los casos en que discrepan.
- Brier
- Error cuadrático medio de las probabilidades de las preguntas sí/no. 0 es perfecto; 0.25 equivale a responder siempre 50 %.
- ECE
- Distancia media entre la probabilidad que da el modelo y la frecuencia real, en grupos de probabilidad.
- Spearman (ρ)
- En papers, si el modelo ordena los papers por relevancia igual que el GT (1 = mismo orden).
- Zero-shot
- Sin ejemplos ni ajuste: el modelo recibe las preguntas tal cual.
- AnyJev L0
- Nivel sin etiquetas de AnyJev: presenta las opciones en varios órdenes y promedia, para que el orden no sesgue la respuesta.
- NVFP4
- Cuantización a 4 bits de NVIDIA para GPUs Blackwell: menos memoria y más velocidad, con una pérdida de calidad pequeña.
- Pre-registro
- Escribir el criterio de éxito antes de ejecutar el experimento, para no ajustarlo a posteriori.
Reproducir
El código (harness jevbench), los casos, el GT versionado y todas las respuestas de todos los modelos están en el espejo público del repositorio (v0.5.0). Los abstracts de los papers no se distribuyen: el repo lleva metadatos y hashes, y python3 -m jevbench.fetch_abstracts los reconstruye desde PubMed. El README describe tres niveles de reproducción: rehacer las cuentas sin claves ni GPU, repetir Jev (menos de 0.02 $) y repetir los modelos abiertos en GPU.
system-one-bench