Evaluación comparativa de modelos de incrustación de código abierto para RAG
Comparamos 14 modelos de incrustación de código abierto, alojados en un único H100, con más de 500 consultas de recuperación seleccionadas manualmente, que abarcan contratos legales, notas técnicas de atención al cliente y resúmenes médicos. Llama-Embed-Nemotron-8B (NVIDIA) destaca por su precisión. En cuanto al coste, EmbeddingGemma-300m (Google) resulta aproximadamente cuatro veces más económico que Nemotron, aunque con una ligera pérdida de precisión.
Resultados de la evaluación comparativa de modelos de incrustación de código abierto
Explicación de las métricas
nDCG@3: Ganancia acumulativa descontada normalizada en el punto de corte 3. Con un documento relevante por consulta, es 1 / log2(rank + 1) cuando el documento de oro se encuentra entre los 3 primeros, y 0 en caso contrario. El rango 1 obtiene una puntuación de 1,000, el rango 2 obtiene 0,631 y el rango 3 obtiene 0,500. Utilizamos nDCG@3 como métrica principal porque las canalizaciones RAG de producción alimentan los 3 a 5 primeros fragmentos al LLM, y el sesgo de primacía hace que el rango 1 importe desproporcionadamente.
nDCG@10: Misma fórmula con punto de corte 10.
Recall@10: Fracción de consultas en las que el documento de referencia aparece entre los 10 primeros resultados.
MRR@10: Rango recíproco medio en el punto de corte 10. El oro en el rango 1 obtiene 1,000, el rango 2 obtiene 0,500 y el rango 10 obtiene 0,100. Intención similar a nDCG@3 pero con una penalización de rango más pronunciada.
Primer resultado: Fracción de consultas donde el documento más relevante es el único resultado principal. La métrica más estricta y la más cercana a un flujo de trabajo de búsqueda sin LLM.
Resultados de nDCG@3 por dominio
La clasificación AVG oculta las inversiones de dominio. Harrier gana en CUAD pero queda séptimo en TechQA. SFR-2 ocupa el segundo lugar en TechQA pero solo el cuarto en CUAD. KaLM-12B es quinto en MedRAG y noveno en TechQA. nDCG@3 por dominio:
BM25 es competitivo en MedRAG (0,7862, superando a PubMedBERT y al multilingüe Granite) y débil en CUAD (0,5844, donde 11 de 14 modelos densos lo superan). Los contratos legales contienen un lenguaje denso de entidades que recompensa la coincidencia léxica. En los resúmenes médicos, los mejores modelos densos (Nemotron 0,9629, SFR-2 0,9620, jina-v5 0,9523) superan a BM25 por 0,17 a 0,18 puntos absolutos nDCG@3.
En la sección de metodología de referencia se informan los intervalos de confianza del 95 % de Bootstrap por celda (modelo, dominio), incluido un empate cuádruple de MedRAG en la parte superior y una superposición de Harrier-Nemotron CUAD que la clasificación de estimación puntual aplana.
Coste por millón de tokens
El costo del alojamiento propio se amortiza mediante GPU: la tarifa por hora dividida por los tokens procesados por hora. El pod que utilizamos fue un RunPod community-cloud H100 80GB SXM5 a $2.99/hora . El tiempo real por modelo en el paso de 551 consultas y 3 corpus (~46.2 millones de tokens en total) arroja las siguientes estimaciones de $/1 millón de tokens:
La fórmula:
GPU $/hr = $2.99 (la tarifa de la comunidad RunPod H100 80GB SXM5 del pod que utilizamos). wall_seconds = tiempo total de ejecución de cada modelo en el pase de 551 consultas y 3 corpus. total_tokens ≈ 46.22M (suma de 3 corpus + 551 consultas, recuento de caracteres ÷ 4 heurísticas).
Ejemplo práctico, Nemotron-8B: ($2,99 / 3600) × (1247,8 × 1.000.000 / 46.220.000) = $0,0224 por cada millón de tokens .
Cinco modelos lideran su nivel de costo (ninguna otra fila cuesta menos y obtiene una puntuación más alta): Granite-278m-multilingual en la parte inferior de la escala de costo, luego Granite-small-r2, EmbeddingGemma-300m, jina-v5-text-small y Nemotron-8B en la parte superior de la escala de calidad. Los puntos finales abarcan 13 veces en costo ($0.0017/M a $0.0224/M) y 0.23 nDCG@3 absoluto (0.6952 a 0.9249).
Especialistas en un dominio frente a generalistas
PubMedBERT, optimizado con pares título-resumen de PubMed, es la herramienta ideal para la recuperación de datos médicos RAG en PubMed. Obtiene una puntuación nDCG@3 = 0,7084 en MedRAG, inferior a la línea base léxica BM25 (0,7862) en el mismo corpus. Los generalistas modernos de código abierto lo superan en 0,22 a 0,25 puntos absolutos en su dominio de datos de entrenamiento.
La razón por la que el especialista tiene un rendimiento inferior radica en su antigüedad y en su método de búsqueda. PubMedBERT es un BERT de 2022 con 110 millones de parámetros, agrupamiento de media simétrica y sin prefijo de instrucciones. Los generalistas de 2024-2026 se basan en arquitecturas más robustas, prefijos de consulta y documentos asimétricos y objetivos de recuperación optimizados para instrucciones. La brecha arquitectónica es más importante que la coincidencia de dominio: un BERT de cuatro años de antigüedad no puede competir con un recuperador optimizado para instrucciones de última generación, ni siquiera en su propio corpus de entrenamiento.
La regla general para los compradores es probar un especialista en un dominio específico frente a un generalista moderno con consultas representativas antes de implementarlo. La suposición de que "el especialista ganará en su dominio" ya no es válida para los modelos de integración de código abierto en 2026.
Resultados del benchmark de integración de código abierto
El liderazgo de Nemotron-8B en TechQA está estadísticamente separado del segundo lugar.
Nemotron-8B AVG nDCG@3 = 0,9249. Por dominio, se sitúa en 0,8602 en CUAD, 0,9515 en TechQA y 0,9629 en MedRAG. El resultado de TechQA (0,9515 0,923, 0,977) no se solapa con el segundo clasificado SFR-Embedding-2_R (0,9109 0,869, 0,949). Los CI de arranque son claramente separables. La base 8B Llama-3.1, optimizada para la recuperación de instrucciones con un prefijo Instruct: …\nQuery: … en el lado de la consulta y un prefijo simétrico en el lado del documento, impulsa una ventaja absoluta de 0,04 nDCG@3 sobre la siguiente fila en cargas de trabajo de soporte de documentos largos.
Los dos dominios donde Nemotron gana claramente (TechQA, MedRAG) son los corpus de documentos largos donde la asimetría del prefijo de instrucción es más importante. CUAD es el único dominio donde no lidera: Harrier-oss-v1-0.6b de Microsoft (0,8720) supera a Nemotron (0,8602) en contratos legales a pesar de ser 13 veces más pequeño, aunque los intervalos de confianza se superponen y la ventaja no está separada estadísticamente en este tamaño de muestra.
Un modelo Harrier de 0,6 mil millones de parámetros supera a todos los modelos abiertos con menos de 7 mil millones de parámetros.
Microsoft Harrier-oss-v1-0.6b (lanzado en 2026-04 con una base Qwen3-0.6B y una licencia MIT) aterriza en AVG nDCG@3 = 0.8911 , cuarto en general. Supera a 12B Tencent KaLM-Gemma3 (0.8057, Tencent licencia comunitaria), 7B Salesforce SFR-Embedding-2_R en CUAD (0.8421 frente a Harrier 0.8720) y EmbeddingGemma-300m de Google (0.8706). En una comparación de arquitectura idéntica, Harrier-0.6b (0,8911) se sitúa 0,074 nDCG@3 por encima de Qwen3-Embedding-0.6B (0,8168), construido sobre la misma base Qwen3-0.6B. La diferencia se debió al corpus de entrenamiento y a la receta de instrucciones, no al número de parámetros.
Para los compradores, Harrier es la biblioteca de código abierto mejor valorada que incluye una licencia apta para uso comercial sin restricciones. SFR-2 (CC-BY-NC), Nemotron (NSCL-v1) y jina-v5 (CC-BY-NC) la superan en la clasificación de AVG, pero las tres son solo para investigación o no comerciales.
Un especialista en implantes médicos pierde contra BM25.
El método PubMedBERT-base-embeddings de NeuML se ajustó con precisión en pares de título-resumen de PubMed. Es la herramienta obvia para una evaluación comparativa médica RAG en PubMed. Obtiene una puntuación de nDCG@3 = 0,7084 en MedRAG , que está 0,078 puntos por debajo de la línea base léxica BM25 (0,7862) en el mismo corpus. Los principales generalistas de código abierto en MedRAG se sitúan muy por encima de ambos: Nemotron-8B 0,9629, SFR-Embedding-2_R 0,9620, Harrier-oss 0,9605, jina-v5 0,9523, KaLM-Gemma3-12B 0,9453.
Esta es la inversión que debería cambiar la forma en que un comprador elige a un especialista de dominio. PubMedBERT es un BERT de 110 millones de parámetros de 2022, con agrupación de media simétrica y sin prefijo de instrucciones. El campo generalista de 2024 a 2026 se basa en arquitecturas más robustas, prefijos de consulta y documentos asimétricos y objetivos de recuperación optimizados para instrucciones. En las consultas de MedRAG que ya incluyen vocabulario médico, la coincidencia léxica de BM25 es naturalmente sólida, y la especialización de PubMedBERT no añade nada adicional.
La conclusión práctica es que no conviene elegir un proveedor de integración especializado solo por su nombre. Compruébelo usted mismo con sus propias consultas antes de tomar una decisión.
Snowflake Arctic oscila 0,32 nDCG@3 en todos los dominios
El modelo snowflake-arctic-embed-l-v2.0 de Snowflake (568M, Apache-2.0, derivado de bge-m3-retromae, multilingüe) obtiene una puntuación nDCG@3 = 0,5846 en contratos legales de CUAD y 0,9053 en resúmenes médicos de MedRAG. El mismo modelo, la misma receta, el mismo formato de consulta, con una variación de 0,32 puntos en dos dominios. Otros modelos en la lista varían menos: SFR-2 abarca de 0,8421 a 0,9620 (brecha de 0,12), Nemotron abarca de 0,8602 a 0,9629 (brecha de 0,10), Harrier abarca de 0,8408 a 0,9605 (brecha de 0,12).
El mecanismo se basa en la composición de datos de entrenamiento. Arctic se optimizó con BEIR, MIRACL y CLEF; no se incluyen contratos legales. Para una carga de trabajo de recuperación vertical, los datos de entrenamiento del dominio son más importantes que la cantidad de parámetros o la longitud del contexto.
Cómo funciona la inferencia de incrustación de código abierto
En esta prueba comparativa, los modelos de incrustación de código abierto se ejecutan en dos backends: sentence-transformers (12 modelos) y vLLM (4 modelos). La división no se debe a la calidad, sino a la eficiencia en tiempo de ejecución para modelos de 8B o más, donde el bucle de inferencia predeterminado de Python de sentence-transformers es demasiado lento para ser viable.
La receta por modelo importa más que la elección del backend. Los modelos de recuperación modernos usan prefijos asimétricos: el lado de la consulta está envuelto en una solicitud de estilo Instruct ( Instruct: Given a question, retrieve passages...\nQuery: <text> ) mientras que el lado del documento es simple. El tipo de agrupación varía: los modelos derivados de BERT usan agrupación CLS; los modelos derivados de LLM (Llama, Mistral, Qwen3, Gemma3 base) usan agrupación de último token; los modelos multilingües a menudo usan agrupación media. La tarjeta HuggingFace para cada modelo es la fuente de verdad para qué combinación de prefijo y agrupación es correcta.
Capa de backend:
- vLLM: Nemotron-8B, KaLM-Gemma3-12B, jina-v5-text-small
- Transformadores de oraciones: Qwen3-0.6B, EmbeddingGemma-300m, Granite trio, SFR-2, Conan-v1, PubMedBERT, GIST, Snowflake Arctic, Microsoft Harrier
Patrones de prefijos asimétricos observados:
- Instrucciones + Consulta/Documento: SFR-2, KaLM-Gemma3, Nemotron-8B, Qwen3-Embedding
- Funciones integradas encode_query / encode_document: EmbeddingGemma, KaLM-Gemma3, Nemotron-8B
- tarea / prompt_name (parámetro sentence-transformers): jina-v5, Snowflake Arctic, Harrier
- Sin prefijo (simétrico): Granite trio, Conan, PubMedBERT, GIST
Tipo de agrupación por arquitectura base:
- Agrupación CLS: Granite r2 trío, Snowflake Arctic
- Agrupación de último token: Nemotron, KaLM-Gemma3, SFR-2, jina-v5, Qwen3-Embedding, Harrier
- Agrupación de medias: EmbeddingGemma, Granite-multilingual, Conan, PubMedBERT, GIST
El uso de una receta incorrecta degrada silenciosamente la calidad de recuperación sin provocar fallos. Cualquier evaluación comparativa de incrustadores de código abierto debería incluir un umbral mínimo aceptable (un valor de Recall@10 inferior a 0,5 en todos los dominios para cualquier modelo es una señal de alerta de una configuración incorrecta, no un resultado).
Metodología de evaluación comparativa de modelos de incrustación de código abierto
Se evaluaron tres dominios de recuperación: contratos legales de CUAD (246 consultas, 509 contratos), notas técnicas de soporte al cliente de TechQA (151 consultas, 28000 notas técnicas), resúmenes de atención médica de MedRAG-PubMed (154 consultas, 50000 resúmenes). Total: 551 consultas.
La metodología de construcción del conjunto de datos se comparte con nuestro modelo de referencia de incrustación en inglés anterior: generación de consultas de consenso Protocol-A 3-LLM (grupo de escritores rotativo, evaluador fijo, dos validadores no escritores por intento), fijación del corpus mediante hash SHA-256, listas blancas de tokens prohibidos de entidades por dominio para evitar atajos léxicos BM25, acuerdo entre evaluadores κ de Cohen informado por par de validadores, rangos de referencia BM25 sintetizados a partir del campo bm25_rank_at_target ya presente en cada JSON de consulta (equivalente a Pyserini). Métrica primaria nDCG@3 (RAG-realista, lo que consumen los sistemas RAG de producción); métricas secundarias nDCG@10, Recall@10, Recall@100, MRR@10, Top-1 hit.
Especificaciones específicas de código abierto:
- GPU: 1 x NVIDIA H100 80GB SXM5 a través de la nube comunitaria RunPod
- Plantilla de pod:
runpod/pytorch:1.0.2-cu1281-torch280-ubuntu2404
- Pila de tecnologías: PyTorch 2.10.0+cu128, vLLM 0.19.1, transformers 5.6.2, sentence-transformers 5.4.1
- Despacho por modelo: ruta principal de la tarjeta del modelo HF. ST para 12 modelos, vLLM para Nemotron-8B, KaLM-Gemma3-12B, jina-v5-text-small.
- Segmentación por modelo: truncamiento a nivel de caracteres a
max_seq_length x 4caracteres por token, luego el tokenizador del modelo trunca a su longitud máxima de secuencia real.
- Recuperación asimétrica: cada modelo que la admite obtiene la consulta y el prefijo de documento documentados en la tarjeta HF. En algunos casos, la opción predeterminada documentada es no usar ningún prefijo.
- Normalización L2: se aplica uniformemente después del agrupamiento. Algunos modelos lo hacen internamente. Nosotros volvemos a normalizar para garantizar la paridad en todo el conjunto de datos.
- Clave de caché de incrustación: incluye prefijo + tarea + prompt_name + max_seq + backend, por lo que un cambio de prefijo a mitad de ejecución no puede cargar silenciosamente incrustaciones obsoletas.
- Protocolo estadístico: 10.000 remuestreos bootstrap por celda (modelo, dominio, métrica), intervalo de confianza del 95% percentil, semilla = 2026.
Modelos probados
Ordenado por rango AVG nDCG@3. Columna de backend: ST = sentence-transformers, vLLM = vLLM 0.19.
Resultados de los intervalos de confianza del 95% de Bootstrap
La tabla de clasificación completa anterior corresponde a una sola ejecución por celda (modelo, dominio). No se mide la varianza de inicialización del modelo entre sesiones. Para capturar la varianza a nivel de consulta dentro de la ejecución, remuestreamos el vector de rango por consulta para cada celda (modelo, dominio) 10 000 veces con reemplazo (método de percentiles, semilla = 2026, tamaños de muestra CUAD n = 246, TechQA n = 151, MedRAG n = 154). Intervalo de confianza del 95 % de bootstrap por dominio en nDCG@3:
Los IC sí cambian las inversiones que respaldan los datos. En CUAD, Harrier (0,8720, [0,836, 0,906]) y Nemotron (0,8602, [0,821, 0,897]) se superponen, por lo que la ventaja de Harrier en CUAD no es claramente separable en este tamaño de muestra. En TechQA, Nemotron (0,9515, [0,923, 0,977]) y SFR-2 (0,9109, [0,869, 0,949]) no se superponen, por lo que la ventaja de Nemotron en TechQA está estadísticamente separada. En MedRAG, los cuatro primeros (Nemotron 0,9629, SFR-2 0,9620, Harrier 0,9605, jina-v5 0,9523) están dentro de los IC de los demás y forman un empate estadístico cuádruple. La inversión de PubMedBERT por debajo de BM25 en MedRAG (0,7084 [0,641, 0,772] frente a BM25 0,7862) se encuentra en el límite de la superposición. La tendencia central sitúa claramente al especialista por debajo de BM25, pero se necesita un análisis comparativo de tres sesiones para determinar si se trata de una separación en lugar de una superposición.
Limitaciones
Una sola ejecución por celda (modelo, dominio). La tabla de intervalos de confianza bootstrap anterior captura la varianza a nivel de consulta dentro de la ejecución (10 000 remuestreos, método percentil, semilla = 2026), pero no se mide la varianza de inicialización del modelo entre sesiones. Se planea una pasada de tres ejecuciones a medianoche para la versión 2.1. Los empates más estrechos que muestra la tabla de intervalos de confianza (por ejemplo, el empate cuádruple de MedRAG en la parte superior, la superposición de Harrier-Nemotron CUAD, la inversión marginal de PubMedBERT frente a BM25) se beneficiarían más de la pasada de múltiples ejecuciones.
Confusión por longitud de contexto por modelo. Los modelos con ventanas de contexto de 512 tokens (Granite-278m-multilingual, PubMedBERT, Conan, GIST) solo ven los primeros ~2000 caracteres de cada documento. Los modelos con contexto de 8000 o 32000 caracteres (Nemotron, KaLM-12B, jina-v5, Harrier, Granite r2 english) ven el documento completo. Esto favorece a los modelos de contexto largo en TechQA (notas técnicas largas) y MedRAG (resúmenes largos).
Riesgo de contaminación de los datos de entrenamiento de MedRAG. Varios de los modelos evaluados se entrenaron con datos derivados de PubMed (PubMedBERT por definición, posiblemente Granite-278m-multilingual, posiblemente base Qwen3). Cierta mejora en MedRAG nDCG@3 puede reflejar la superposición de los datos de entrenamiento más que la calidad de la recuperación.
Conan-v1 fue entrenado en chino. Incluirlo en dominios exclusivamente en inglés proporciona datos instructivos sobre la incompatibilidad lingüística, más que una comparación directa y justa sobre la calidad de recuperación en inglés. Esperábamos un rendimiento inferior al de sus pares entrenados en inglés, y eso es lo que muestran los datos.
Conclusión
NVIDIA Llama-Embed-Nemotron-8B lidera en AVG nDCG@3 = 0.9249 con victorias estadísticamente separadas en TechQA y MedRAG. La opción de código abierto mejor clasificada bajo una licencia sin restricciones (MIT) es Microsoft Harrier-oss-v1-0.6b en AVG 0.8911. Google EmbeddingGemma-300m se ejecuta a un costo aproximadamente 4 veces menor para una pequeña pérdida de precisión.
Lecturas adicionales
Explore otros puntos de referencia RAG, como:
- Los 10 mejores modelos de incrustación multilingüe para RAG
- Modelos de incrustación: OpenAI vs Gemini vs Voyage
- Base de datos de vectores principales para RAG: Qdrant vs Weaviate vs Pinecone
- Comparativa de Reranker: Los 8 mejores modelos comparados
- Modelos de incrustación multimodal: Apple vs Meta vs OpenAI
- RAG híbrido: Mejorando la precisión del RAG
- Gráfico RAG frente a vector RAG
Sé el primero en comentar
Tu dirección de correo electrónico no será publicada. Todos los campos son obligatorios.