Nota de investigación. Este estudio evalúa modelos de recuperación en benchmarks públicos. No describe un producto disponible ni su rendimiento clínico.
Mención clínica
Una consulta breve en EN, ES, CA, IT, PT o FR
Fase 1 · Bi-encoder (multilingüe)
Codifica la consulta y cada descripción CIE-10 por separado y las ordena por similitud del coseno. Entrenado con 19.502 ejemplos sintéticos depurados de 17 capítulos de la CIE-10.
Fase 2 · Reranker cross-encoder (español)
Lee cada par consulta–código conjuntamente y reordena la lista corta. Entrenado con 10.628 grupos listwise con negativos difíciles clínicamente plausibles.
Códigos CIE-10-ES ordenados
Lateralidad, gravedad, etiología y tipo de episodio resueltos en el orden final
01 - La pregunta
¿Pueden los recuperadores compactos y específicos de la tarea superar a los embeddings públicos generalistas?
Los embeddings de frases funcionan bien para la búsqueda semántica amplia, pero la codificación CIE no es búsqueda semántica amplia. El modelo debe asignar menciones clínicas breves a un vocabulario controlado donde los códigos vecinos suelen diferir por un calificador: localización anatómica, lateralidad, gravedad, tipo de encuentro o etiología.
El artículo se pregunta si una supervisión sintética de alta calidad puede cerrar esa brecha en la codificación clínica en español. Usamos un LLM de frontera para generar ejemplos multilingües basados en la jerarquía de la CIE-10, ajustamos un bi-encoder biomédico en español y, después, entrenamos un reranker cross-encoder sobre grupos listwise con negativos difíciles clínicamente plausibles.
El hallazgo principal: para la recuperación CIE-10/CIE-10-ES en español, una supervisión alineada con la tarea y unos negativos clínicamente significativos importan más que el tamaño del embedding o el preentrenamiento biomédico genérico en inglés.
02 - Método
Un bi-encoder para la exhaustividad, un cross-encoder para la precisión del código exacto.
El recuperador usa una arquitectura estándar en dos fases, pero cuidadosamente alineada. La fase 1 codifica cada consulta y cada descripción CIE-10 por separado y ordena por similitud del coseno. La fase 2 lee conjuntamente cada par consulta-código y reordena los mejores candidatos con un objetivo listwise.
Los datos de entrenamiento no se trataron como salida sintética en bruto. Depuramos los ejemplos generados con validación basada en reglas, deduplicación semántica, comprobaciones de coherencia lingüística e inspección manual por muestreo antes de usarlos para construir el bi-encoder y los clasificadores de reordenación. Esa depuración es central en el artículo: el objetivo no es simplemente generar más datos, sino crear ejemplos y negativos difíciles que reflejen las distinciones clínicas codificadas en la CIE-10.
- Ejemplos sintéticos para el bi-encoder en 17 capítulos de la CIE-10.
- 19.502
- Idiomas usados para la supervisión sintética: EN, ES, CA, IT, PT y FR.
- 6
- Grupos listwise del cross-encoder en español, con un positivo y negativos difíciles.
- 10.628
- Resoluciones de evaluación: código completo, categoría de 3 caracteres y capítulo.
- 3
Estrategias de recuperación comparadas
| Estrategia | Papel en el estudio |
|---|---|
| Tietai Cross-Encoder | Reordena la lista corta del bi-encoder y optimiza el orden del código exacto. |
| Tietai Bi-Encoder | Base de recuperación densa biomédica en español ajustada con supervisión sintética. |
| BM25 (Postgres FTS) | Referencia léxica de texto completo sobre las descripciones de la CIE-10-ES. |
| ST MiniLM-L6-v2 | Referencia pública de sentence-transformer de propósito general. |
| ST BioBERT | Referencia de sentence-transformer biomédico en inglés. |
| ST MPNet-v2 | Referencia de sentence-transformer general más grande, de 768 dimensiones. |
03 - Resultados
F1 y MAP@10 ponen el foco en la calidad del ranking.
En CodiESP v4, el cross-encoder de Tietai alcanza F1 = 0,709 y MAP@10 = 0,747 con resolución de código exacto. En DISTEMIST, alcanza F1 = 0,776 y MAP@10 = 0,812. La versión actualizada del artículo trata MAP@10 como métrica de ranking y F1 como métrica de decisión top-1.
- F1 de código exacto en CodiESP del Tietai Cross-Encoder.
- 0,709
- MAP@10 de código exacto en CodiESP del Tietai Cross-Encoder.
- 0,747
- F1 de código exacto en DISTEMIST del Tietai Cross-Encoder.
- 0,776
- MAP@10 de código exacto en DISTEMIST del Tietai Cross-Encoder.
- 0,812
F1 y MAP@10 en CodiESP v4
| Modelo | F1 exacto | F1 categoría | MAP@10 exacto | MAP@10 categoría |
|---|---|---|---|---|
| Tietai Cross-Encoder | 0,709 | 0,823 | 0,747 | 0,851 |
| Tietai Bi-Encoder | 0,359 | 0,617 | 0,461 | 0,694 |
| BM25 (Postgres FTS) | 0,239 | 0,376 | 0,322 | 0,471 |
| ST MiniLM-L6-v2 | 0,225 | 0,371 | 0,287 | 0,426 |
| ST BioBERT | 0,193 | 0,314 | 0,252 | 0,373 |
| ST MPNet-v2 | 0,161 | 0,317 | 0,226 | 0,376 |
Precisión, recall y F1 top-1 de código exacto en CodiESP
| Modelo | Precisión | Recall | F1 |
|---|---|---|---|
| Tietai Cross-Encoder | 0,709 | 0,709 | 0,709 |
| Tietai Bi-Encoder | 0,359 | 0,359 | 0,359 |
| BM25 (Postgres FTS) | 0,254 | 0,227 | 0,239 |
| ST MiniLM-L6-v2 | 0,225 | 0,225 | 0,225 |
| ST BioBERT | 0,193 | 0,193 | 0,193 |
| ST MPNet-v2 | 0,161 | 0,161 | 0,161 |
Exactitud top-1 por jerarquía en CodiESP
F1 y MAP@10 en DISTEMIST
| Modelo | F1 exacto | F1 categoría | MAP@10 exacto | MAP@10 categoría |
|---|---|---|---|---|
| Tietai Cross-Encoder | 0,776 | 0,818 | 0,812 | 0,846 |
| Tietai Bi-Encoder | 0,603 | 0,690 | 0,682 | 0,747 |
| BM25 (Postgres FTS) | 0,431 | 0,470 | 0,504 | 0,537 |
04 - Interpretación
El cuello de botella es la alineación con la tarea, no la escala del embedding.
El orden de las referencias públicas es el resultado negativo importante. BioBERT-ST tiene preentrenamiento biomédico, pero está centrado en el inglés. MPNet-v2 tiene embeddings más grandes, pero sigue por detrás de MiniLM-L6-v2. Ni la escala ni el preentrenamiento genérico de dominio resuelven por sí solos la recuperación de códigos clínicos en español.
La recuperación CIE exige que los modelos separen conceptos hermanos semánticamente cercanos pero operativamente distintos. El bi-encoder capta bien la información temática a nivel de capítulo, pero el ranking de código exacto necesita un reranker entrenado con negativos difíciles extraídos de códigos CIE-10 vecinos.
- La alineación con la tarea importa. Los ejemplos sintéticos deben reflejar la jerarquía de la CIE, no solo una relación biomédica amplia.
- Los negativos difíciles importan. Los códigos vecinos enseñan al modelo a distinguir etiología, anatomía, gravedad y tipo de episodio.
- La reordenación importa. El cross-encoder añade la discriminación a nivel de calificador que exigen las normas de la CIE-10-ES.
- Pocos datos pueden bastar. Un corpus sintético compacto puede entrenar un recuperador competitivo cuando los ejemplos están alineados con la estructura del vocabulario objetivo.
- El preentrenamiento biomédico no se transfiere automáticamente. Los codificadores biomédicos en inglés siguen teniendo dificultades cuando tanto la consulta como el vocabulario objetivo están en español.
Para la búsqueda de codificación clínica en producción, la lección práctica es entrenar para el vocabulario objetivo, el idioma objetivo y el problema de ranking objetivo. La unidad útil no es un modelo de embeddings más grande; es un recuperador entrenado en las distinciones que los codificadores realmente necesitan hacer.




