Servicios
Contáctanos

Comparativa de modelos de embedding de código abierto para RAG

Ekrem Sarı
Ekrem Sarı
actualizado el 3 de jul. de 2026

Evaluamos 14 modelos de embedding de código abierto, autohospedados en una sola H100, en más de 500 consultas de recuperación curadas manualmente que abarcan contratos legales, notas técnicas de soporte al cliente y resúmenes médicos. NVIDIA Llama-Embed-Nemotron-8B lidera en precisión. En cuanto a costo, el modelo EmbeddingGemma-300m de Google cuesta aproximadamente 4x menos que Nemotron a cambio de una pequeña pérdida de precisión.

Resultados de la comparativa de modelos de embedding de código abierto

Loading Chart

Métricas explicadas

nDCG@3: Ganancia acumulada descontada normalizada con corte en 3. Con un solo documento relevante por consulta, es 1 / log2(posición + 1) cuando el documento correcto aparece entre los 3 primeros, y 0 en caso contrario. La posición 1 puntúa 1.000, la posición 2 puntúa 0.631 y la posición 3 puntúa 0.500. Usamos nDCG@3 como métrica principal porque los flujos de producción de RAG alimentan los 3 a 5 fragmentos principales al LLM, y el sesgo de primacía hace que la posición 1 importe de manera desproporcionada.

nDCG@10: Misma fórmula con corte 10.

Recall@10: Fracción de consultas donde el documento correcto aparece entre los 10 primeros.

MRR@10: Rango recíproco medio con corte 10. Un acierto en la posición 1 puntúa 1.000, en la posición 2 puntúa 0.500 y en la posición 10 puntúa 0.100. Intención similar a nDCG@3 pero con una penalización más pronunciada por la posición.

Top-1 hit: Fracción de consultas donde el documento relevante es el primer resultado. 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

El ranking promedio oculta inversiones entre dominios. Harrier gana en CUAD pero queda séptimo en TechQA. SFR-2 es segundo en TechQA pero solo 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 entre 0.17 y 0.18 puntos absolutos de nDCG@3.

Los intervalos de confianza bootstrap al 95% por celda (modelo, dominio), incluido un empate cuádruple en MedRAG en la cima y un solapamiento Harrier-Nemotron en CUAD que la estimación puntual aplana, se reportan en la sección de metodología de la comparativa.

Costo por millón de tokens

El costo autohospedado se amortiza por GPU: la tarifa por hora dividida por los tokens procesados por hora. El pod que usamos fue un H100 80GB SXM5 en la nube comunitaria de RunPod a $2.99/hr. El tiempo de ejecución por modelo en la pasada de 551 consultas, 3 corpus (~46.2M tokens totales) produce las siguientes estimaciones de $/1M tokens:

La fórmula:

GPU $/hr = $2.99 (la tarifa del pod RunPod comunitario H100 80GB SXM5 que usamos). wall_seconds = tiempo total de ejecución de cada modelo en la pasada de 551 consultas, 3 corpus. total_tokens ≈ 46.22M (suma de 3 corpus + 551 consultas, heurística de división de caracteres ÷ 4).

Ejemplo práctico, Nemotron-8B: ($2.99 / 3600) × (1247.8 × 1,000,000 / 46,220,000) = $0.0224 por 1M tokens.

Cinco modelos lideran su escalón de costo (ninguna otra fila cuesta menos y puntúa más): Granite-278m-multilingual en la parte baja de la escalera de costos, luego Granite-small-r2, EmbeddingGemma-300m, jina-v5-text-small, y Nemotron-8B en la cima de la escalera de calidad. Los extremos abarcan 13x en costo ($0.0017/M a $0.0224/M) y 0.23 nDCG@3 absoluto (0.6952 a 0.9249).

Especialistas de dominio vs generalistas

PubMedBERT, ajustado con pares título-resumen de PubMed, es la obvia “herramienta adecuada” para la recuperación de RAG médico en PubMed. Obtiene nDCG@3 = 0.7084 en MedRAG, lo cual está por debajo de la línea base léxica BM25 (0.7862) en el mismo corpus. Los generalistas modernos de código abierto lo superan por entre 0.22 y 0.25 puntos absolutos en el dominio de sus datos de entrenamiento:

La razón del bajo rendimiento del especialista es la antigüedad y la receta. PubMedBERT es un BERT de 110M parámetros de 2022 con agrupación media simétrica y sin prefijo de instrucción. Los generalistas de 2024-2026 están construidos sobre arquitecturas más grandes, con prefijos asimétricos de consulta y documento, y objetivos de recuperación ajustados por instrucción. La brecha arquitectónica importa más que la coincidencia de dominio: un ajuste fino de hace 4 años no puede competir con un recuperador ajustado por instrucción de la generación actual, incluso en el propio corpus de entrenamiento del especialista.

La regla para el comprador es probar un especialista de dominio contra un generalista moderno en consultas representativas antes de desplegarlo. La suposición de que “el especialista ganará en su dominio” ya no es segura para los modelos de embedding de código abierto en 2026.

Deja que nuestro equipo automatice uno de tus procesos de negocio con agentes de IA, sin coste alguno.
Automatizar un proceso

Hallazgos de la comparativa de embeddings de código abierto

El liderazgo de Nemotron-8B en TechQA está estadísticamente separado del segundo lugar

Nemotron-8B nDCG@3 PROM = 0.9249. Por dominio alcanza 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, SFR-Embedding-2_R (0.9109 0.869, 0.949). Los intervalos de confianza bootstrap se separan limpiamente. La base 8B Llama-3.1, ajustada por instrucción para recuperación 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 documentos largos.

Los dos dominios donde Nemotron gana de forma directa (TechQA, MedRAG) son los corpus de documentos largos donde la asimetría del prefijo de instrucción importa más. 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 13x más pequeño, aunque los intervalos de confianza se solapan y el liderazgo no está estadísticamente separado con este tamaño de muestra.

Un modelo Harrier de 0.6B de Microsoft supera a todos los modelos abiertos de menos de 7B parámetros

Microsoft Harrier-oss-v1-0.6b (publicado en 04 de 2026 con una base Qwen3-0.6B y licencia MIT) alcanza un nDCG@3 PROM = 0.8911, cuarto en la general. Supera al 12B KaLM-Gemma3 de Tencent (0.8057, licencia comunitaria de Tencent), al SFR-Embedding-2_R de 7B de Salesforce en CUAD (0.8421 vs Harrier 0.8720), y al EmbeddingGemma-300m de Google (0.8706). En una comparación de misma arquitectura, 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. El corpus de entrenamiento y la receta de instrucción marcaron la diferencia, no el número de parámetros.

Para los compradores, Harrier es la fila de código abierto mejor clasificada que se distribuye con una licencia apta para uso comercial sin restricciones. SFR-2 (CC-BY-NC), Nemotron (NSCL-v1) y jina-v5 (CC-BY-NC) lo superan en la escalera PROM, pero los tres son solo para investigación o uso no comercial.

Un embedder especialista médico pierde frente a BM25

PubMedBERT-base-embeddings de NeuML fue ajustado con pares título-resumen de PubMed. Es la obvia “herramienta adecuada” para una evaluación de RAG médico en PubMed. Obtiene nDCG@3 = 0.7084 en MedRAG, lo que es 0.078 absoluto por debajo de la línea base léxica BM25 (0.7862) en el mismo corpus. Los mejores generalistas de código abierto en MedRAG están 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 un especialista de dominio. PubMedBERT es un BERT de 110M parámetros de 2022, con agrupación media simétrica y sin prefijo de instrucción. El campo generalista de 2024 a 2026 está construido sobre arquitecturas más grandes, prefijos asimétricos de consulta y documento, y objetivos de recuperación ajustados por instrucción. En consultas de MedRAG que ya incluyen vocabulario médico, la coincidencia léxica de BM25 es naturalmente fuerte, y la especialización de PubMedBERT no aporta nada adicional.

La conclusión práctica no es elegir un embedder especialista solo por su nombre. Compárelo en sus propias consultas antes de comprometerse.

Snowflake Arctic oscila 0.32 nDCG@3 entre dominios

snowflake-arctic-embed-l-v2.0 de Snowflake (568M, Apache-2.0, derivado bge-m3-retromae, multilingüe) obtiene nDCG@3 = 0.5846 en contratos legales CUAD y 0.9053 en resúmenes médicos MedRAG. El mismo modelo, misma receta, mismo formato de consulta, con una oscilación de 0.32 puntos entre dos dominios. Otros modelos en la selección oscilan menos: SFR-2 abarca de 0.8421 a 0.9620 (brecha 0.12), Nemotron de 0.8602 a 0.9629 (brecha 0.10), Harrier de 0.8408 a 0.9605 (brecha 0.12).

El mecanismo es la composición de los datos de entrenamiento. Arctic fue ajustado con BEIR, MIRACL y CLEF; los contratos legales no están representados. Para una carga de trabajo de recuperación vertical, los datos de entrenamiento del dominio importan más que el número de parámetros o la longitud de contexto.

Cómo funciona la inferencia de embeddings de código abierto

Los modelos de embedding de código abierto se ejecutan en dos backends en esta comparativa: sentence-transformers (12 modelos) y vLLM (4 modelos). La división no se trata de calidad; se trata de eficiencia en tiempo de ejecución en modelos de 8B y mayores, donde el bucle de inferencia Python por defecto de sentence-transformers es demasiado lento para ser viable.

La receta por modelo importa más que la elección del backend. Los modelos modernos de recuperación usan prefijos asimétricos: el lado de la consulta se envuelve en un prompt de tipo 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, base Gemma3) usan agrupación del último token; los modelos multilingües a menudo usan agrupación media. La tarjeta de HuggingFace de cada modelo es la fuente de verdad sobre qué combinación de prefijo y agrupación es la correcta.

Nivel de backend:

  • vLLM: Nemotron-8B, KaLM-Gemma3-12B, jina-v5-text-small
  • sentence-transformers: Qwen3-0.6B, EmbeddingGemma-300m, trío Granite, SFR-2, Conan-v1, PubMedBERT, GIST, Snowflake Arctic, Microsoft Harrier

Patrones de prefijos asimétricos observados:

  • Instruct + Query/Document: SFR-2, KaLM-Gemma3, Nemotron-8B, Qwen3-Embedding
  • encode_query / encode_document incorporados: EmbeddingGemma, KaLM-Gemma3, Nemotron-8B
  • task / prompt_name (parámetro de sentence-transformers): jina-v5, Snowflake Arctic, Harrier
  • Sin prefijo (simétrico): trío Granite, Conan, PubMedBERT, GIST

Tipo de agrupación por arquitectura base:

  • Agrupación CLS: trío Granite r2, Snowflake Arctic
  • Agrupación del último token: Nemotron, KaLM-Gemma3, SFR-2, jina-v5, Qwen3-Embedding, Harrier
  • Agrupación media: EmbeddingGemma, Granite-multilingual, Conan, PubMedBERT, GIST

Usar la receta incorrecta degrada silenciosamente la calidad de recuperación sin fallar. Cualquier comparativa de embedders de código abierto debería incluir un umbral mínimo de control (Recall@10 por debajo de 0.5 en todos los dominios para cualquier modelo es una bandera roja de mala configuración, no un resultado).

No te pierdas nuestros análisis comparativos e insights basados en datos. El botón abre Google; seleccionar AIMultiple confirma que deseas ver AIMultiple con más frecuencia en los resultados de búsqueda de Google.
GoogleAñadir como fuente preferida

Metodología de la comparativa de modelos de embedding de código abierto

Se evaluaron tres dominios de recuperación: contratos legales CUAD (246 consultas, 509 contratos), notas técnicas de soporte al cliente TechQA (151 consultas, 28000 notas técnicas de IBM), resúmenes médicos MedRAG-PubMed (154 consultas, 50000 resúmenes). Total 551 consultas.

La metodología de construcción del dataset se comparte con nuestra anterior comparativa de modelos de embedding en inglés: Protocolo-A de generación de consultas por consenso de 3 LLM (grupo rotativo de redactores, evaluador fijo, dos validadores no redactores por intento), fijación de corpus por hash SHA-256, listas blancas de tokens prohibidos por entidad de dominio para evitar atajos léxicos de BM25, acuerdo interanotador κ de Cohen reportado por par de validadores, rangos de línea base BM25 sintetizados a partir del campo bm25_rank_at_target ya presente en cada JSON de consulta (equivalente a Pyserini). Métrica principal nDCG@3 (realista para RAG, lo que consumen los sistemas de producción de RAG); métricas secundarias nDCG@10, Recall@10, Recall@100, MRR@10, Top-1 hit.

Especificaciones propias de código abierto:

  • GPU: 1 x NVIDIA H100 80GB SXM5 a través de RunPod cloud comunitaria
  • Plantilla del pod: runpod/pytorch:1.0.2-cu1281-torch280-ubuntu2404
  • Stack: 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 4 caracteres por token, luego el tokenizador del modelo trunca a su longitud máxima de secuencia real.
  • Recuperación asimétrica: cada modelo que lo soporta recibe el prefijo de consulta y documento documentado en la tarjeta HF. Sin prefijo es el valor predeterminado documentado para algunos.
  • Normalización L2: aplicada uniformemente después de la agrupación. Algunos modelos lo hacen internamente. Re-normalizamos para garantizar paridad en toda la selección.
  • Clave de caché de embedding: incluye prefijo + task + prompt_name + max_seq + backend, de modo que un cambio de prefijo a mitad de ejecución no pueda cargar silenciosamente embeddings obsoletos.
  • Protocolo estadístico: 10K remuestreos bootstrap por celda (modelo, dominio, métrica), IC percentil 95%, semilla=2026.

Modelos evaluados

Ordenados por rango PROM de nDCG@3. Columna Backend: ST = sentence-transformers, vLLM = vLLM 0.19.

Resultados de intervalos de confianza bootstrap al 95%

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 percentil, semilla=2026, tamaños de muestra CUAD n=246, TechQA n=151, MedRAG n=154). IC bootstrap al 95% por dominio en nDCG@3:

Los IC sí cambian qué inversiones respaldan los datos. En CUAD, Harrier (0.8720, [0.836, 0.906]) y Nemotron (0.8602, [0.821, 0.897]) se solapan, por lo que el liderazgo de Harrier en CUAD no se separa limpiamente con 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 solapan, por lo que el liderazgo de Nemotron en TechQA está estadísticamente separado. 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] vs BM25 0.7862) está en el margen del solapamiento. La tendencia central claramente sitúa al especialista por debajo de BM25, pero se necesita una pasada de 3 ejecuciones entre sesiones para resolverlo como separado en lugar de solapado.

Limitaciones

Una sola ejecución por celda (modelo, dominio). La tabla de IC bootstrap anterior captura la varianza a nivel de consulta dentro de la ejecución (10K remuestreos, método percentil, semilla=2026), pero no se mide la varianza de inicialización del modelo entre sesiones. Está prevista una pasada de 3 ejecuciones en días distintos para la v2.1. Los empates más estrechos revelados por la tabla de IC (p. ej., el empate cuádruple en MedRAG en la cima, el solapamiento Harrier-Nemotron en CUAD, la inversión marginal PubMedBERT vs BM25) se beneficiarían más de la pasada múltiple.

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 ~2K caracteres de cada documento. Los modelos con contexto de 8K o 32K (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 datos de entrenamiento en MedRAG. Varios de los modelos evaluados fueron entrenados con datos derivados de PubMed (PubMedBERT por definición, posiblemente Granite-278m-multilingual, posiblemente la base Qwen3). Parte del incremento en nDCG@3 en MedRAG podría reflejar solapamiento de datos de entrenamiento en lugar de calidad de recuperación.

Conan-v1 está entrenado en chino. Incluirlo en dominios solo en inglés es un dato instructivo sobre el desajuste de idioma más que una comparación justa de calidad de recuperación en inglés. Esperamos un rendimiento inferior frente a pares entrenados en inglés y eso es lo que muestran los datos.

Conclusión

NVIDIA Llama-Embed-Nemotron-8B lidera con nDCG@3 PROM = 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 con PROM 0.8911. Google EmbeddingGemma-300m se ejecuta a un costo aproximadamente 4x menor por una pequeña pérdida de precisión.

Lecturas adicionales

Explore otras comparativas de RAG, como:

Cita este benchmark

Elige el formato que se ajuste al lugar donde vas a publicar. Pegar la versión con enlace en tu CMS conserva el enlace de retroceso.

Ekrem Sarı (2026) - "Comparativa de modelos de embedding de código abierto para RAG". Publicado en línea en AIMultiple.com. Recuperado el 3 de Julio de 2026, de: https://aimultiple.com/open-source-embedding-models [Recurso en línea]

Sarı, E. (2026, 3 de Julio). Comparativa de modelos de embedding de código abierto para RAG. AIMultiple. https://aimultiple.com/open-source-embedding-models

@misc{sari2026,
  author = {Sarı, Ekrem},
  title  = {{Comparativa de modelos de embedding de código abierto para RAG}},
  year   = {2026},
  month  = jul,
  howpublished    = {\url{https://aimultiple.com/open-source-embedding-models}},
  note   = {AIMultiple. Recuperado el 3 de Julio de 2026}
}
Descargar todos los datos

Resultados y marcas de tiempo de 15 puntos de datos. Descargue los datos utilizados en este artículo como un archivo ZIP que contiene un archivo CSV y un README.

Última actualización: 7 de Julio de 2026
Descargar
Ekrem Sarı
Ekrem Sarı
Investigador de IA
Ekrem es investigador de IA en AIMultiple, donde se centra en la automatización inteligente, las GPU, los agentes de IA y los marcos de trabajo RAG.
Ver perfil completo

Sé el primero en comentar

Tu dirección de correo electrónico no será publicada. Todos los campos son obligatorios. Los comentarios se dejan en su idioma original.

0/450