Intermedio 14 minEmbeddings

Los mejores modelos de embeddings FR

Respuesta directa

Para francés, BGE-M3 es el punto de partida más seguro: multilingüe, 8.192 tokens de contexto, licencia MIT, disponible en Ollama. Qwen3-Embedding y EmbeddingGemma son las alternativas recientes para probar. Los modelos centrados en inglés (nomic-embed-text, mxbai-embed-large, all-MiniLM) se deben evitar para francés. La elección final se valida con tus propios documentos.

Un modelo de embeddings convierte cada texto en un vector: es él quien decide que «CDD» y «contrato de duración determinada» son vecinos. Para el francés, el benchmark MTEB-French registra una diferencia de 22 puntos en recuperación entre BGE-M3 y all-MiniLM-L12-v2. Esta página clasifica los modelos abiertos que se pueden utilizar en local, cita las mediciones publicadas y sus limitaciones, y luego aborda lo que resulta caro en producción: prefijos, truncación, dimensiones, almacenamiento y reindexación.

Por Mohamed Meguedmi·Actualización 2026-09-29·Probado en Windows, macOS y Linux

#¿Qué es un modelo de embedding y por qué el francés lo complica?

Un modelo de embedding es una red neuronal que convierte un texto (una frase, un párrafo, un chunk) en un vector de números, de 384 a 4.096 dimensiones según el modelo. Dos textos con significados similares generan vectores próximos, cuya proximidad suele medirse mediante la similitud coseno. Esto permite a un RAG encontrar un pasaje sobre el «contrato de duración determinada» cuando el usuario escribe «CDD», sin ninguna palabra en común. El mismo modelo debe codificar las preguntas y los documentos, como recuerda la documentación de Ollama; cambiar de modelo obliga, por tanto, a reindexar todo el corpus. Para elegir, bastan tres preguntas: ¿se ha entrenado el modelo con textos en francés? ¿Su contexto abarca tus chunks? ¿Su licencia permite el uso que quieres darle?

El francés añade sus propias dificultades: acentos, elisiones (« l'employeur »), siglas jurídicas, anglicismos técnicos mezclados con el texto. La diferencia entre modelos es clara. En el benchmark MTEB-French, la puntuación de recuperación va de 0,43 para all-MiniLM-L12-v2 a 0,65 para BGE-M3, lo que representa una diferencia de 22 puntos en el mismo conjunto de preguntas.

i
Dimensión ≠ calidad
Un vector más largo no es más preciso por naturaleza. En la clasificación multilingüe MTEB, EmbeddingGemma pasa de 61,15 a 60,71 al reducir sus vectores de 768 a 512 dimensiones, y Google también indica tamaños de 256 y 128 dimensiones. El espacio de almacenamiento ahorrado es proporcional, pero la pérdida de calidad no lo es.

#Los cinco criterios que realmente diferencian a los modelos

El kit RAG Local

Tus documentos, tu IA: un RAG local fiable sobre tus PDF, notas y correos — sin enviar nada a la nube.

  • Espacio en línea de por vida
  • PDF + archivos
  • Reembolsado 30 j
Idiomas de entrenamiento
BGE-M3 y Qwen3-Embedding anuncian más de 100 idiomas; multilingual-e5-large, 94. Las fichas de nomic-embed-text-v1.5 y de mxbai-embed-large-v1, modelos muy descargados en Ollama, llevan la etiqueta English.
Contexto máximo
512 tokens para multilingual-e5-large, Solon y mxbai-embed-large; 2 048 para EmbeddingGemma; 8 192 para BGE-M3; 32 000 para Qwen3-Embedding y Granite R2. Un chunk más largo se trunca, no se rechaza.
Dimensiones y almacenamiento
De 384 a 4.096 dimensiones, es decir, 4 bytes por dimensión y por vector en float32 (cálculo más abajo).
Licencia
MIT para BGE-M3, multilingual-e5-large y Solon; Apache 2.0 para Qwen3-Embedding, Granite R2, nomic y mxbai; condiciones Gemma para EmbeddingGemma; CC BY-NC 4.0 (no comercial) para jina-clip-v2.
Prefijos e instrucciones
Algunos modelos requieren un prefijo delante de cada texto (« query: » y « passage: » para E5, incluso en francés). Olvidarlo empeora la recuperación de información sin generar ningún error.

#Clasificación 2026 para el francés: nueve modelos comparados

Este ranking es editorial, no un test interno: combina cobertura en francés, benchmarks publicados y disponibilidad local. Los pesos provienen de la biblioteca Ollama cuando el modelo está presente, de lo contrario provienen del float32 estimado por el estudio MTEB-French.

Modelos de embedding para el francés: características publicadas por sus desarrolladores
ModeloDimensiones / contextoLicenciaTamaño del modeloLo que dicen las fuentes sobre el francés
BGE-M3 (BAAI)1 024 / 8 192MIT1,2 GB (Ollama)Recuperación en MTEB-French: 0,65. Representaciones densas, dispersas y multivector. Punto de partida recomendado.
Qwen3-Embedding 0,6B / 4B / 8B1 024 / 2 560 / 4 096 ; 32 000Apache 2.0639 MB / 2,5 GB / 4,7 GB (Ollama)Más de 100 idiomas. MTEB multilingüe según Qwen: 64,33 / 69,45 / 70,58.
EmbeddingGemma 300M (Google)768 (512, 256, 128) / 2 048Gemma622 MB (Ollama)Más de 100 idiomas. MTEB multilingüe v2: 61,15 según Google.
multilingual-e5-large1 024 / 512MIT2,24 GB (float32)Retrieval MTEB-French 0,59. Prefijos obligatorios.
Solon-embeddings-large-0.11 024 / 512MIT2,24 GB (float32)Modelo francés publicado por Ordalie Technologies. Retrieval MTEB-French 0,63.
Granite Embedding 311M Multilingual R2 (IBM)768 / 32 768Apache 2.0311 M parámetrosFrancés entre los 52 idiomas reforzados. 65,2 en recuperación MTEB multilingüe según IBM; no se ha consultado ninguna medición independiente para el francés.
nomic-embed-text v1.5768 / 8 192 (2 048 en Ollama)Apache 2.0274 MB (Ollama)Ficha etiquetada como modelo en inglés. Reservar para corpus en inglés.
mxbai-embed-large-v1contexto 512Apache 2.0670 MB (Ollama)Ficha etiquetada como modelo en inglés. Reservar para corpus en inglés.
all-MiniLM-L12-v2384Apache 2.033 M de parámetrosRecuperación MTEB-French 0,43. Prototipo solo para CPU.

BGE-M3 sigue siendo la mejor opción por defecto: su rendimiento en recuperación de información en francés está publicado, su contexto de 8 192 tokens evita la mayoría de las divisiones forzadas y también proporciona los pesos léxicos útiles para una búsqueda híbrida. Qwen3-Embedding es el candidato cuando se dispone de una tarjeta gráfica: su versión 8B encabezaba la clasificación multilingüe MTEB cuando se lanzó, el 5 de junio de 2025, según Qwen, pero sus 4 096 dimensiones aumentan las necesidades de almacenamiento. EmbeddingGemma está pensado para máquinas modestas.

Solon, a menudo presentado como el especialista en francés jurídico y administrativo, no gana en ninguno de los tres conjuntos de datos de recuperación del estudio MTEB-French: empata con BGE-M3 en el convenio colectivo Syntec y queda por detrás en los artículos de ley (BSARD) y las preguntas escolares (Alloprof).

#Lo que dicen los benchmarks franceses, y lo que no dicen

La referencia publicada es MTEB-French (Ciancone et al., mayo de 2024): 18 conjuntos de datos, 8 categorías de tareas, 51 modelos comparados. Los autores concluyen que los grandes modelos multilingües preentrenados para la similitud entre frases ofrecen resultados excepcionalmente buenos. Estos son los resultados de recuperación (NDCG@10) en tres conjuntos: artículos de leyes en francés (BSARD), convenio colectivo Syntec y preguntas escolares de Alloprof.

MTEB-French: recuperación (NDCG@10) por conjunto de datos, estudio de 2024
ModeloRecuperación mediaDerecho (BSARD)Convenio SyntecAlloprof
text-embedding-3-large (API OpenAI)0,730,730,870,60
mistral-embed (API Mistral)0,680,680,790,57
BGE-M30,650,600,850,49
Solon-embeddings-large-0.10,630,580,850,47
multilingual-e5-large0,590,590,810,38
multilingual-e5-small0,520,520,760,27
paraphrase-multilingual-MiniLM-L12-v20,440,380,660,27
all-MiniLM-L12-v20,430,340,610,33

Tres limitaciones impiden convertirlo en una clasificación definitiva. El estudio data de 2024: no incluye ni Qwen3-Embedding (junio de 2025), ni EmbeddingGemma (septiembre de 2025), ni Granite R2, y para esta página no se ha consultado ninguna medición comparable en francés de estos modelos. Los corpus (artículos de leyes, un convenio colectivo, preguntas escolares) no se parecen necesariamente a los tuyos. Por último, las puntuaciones multilingües publicadas por los desarrolladores son autodeclaradas y agrupan todas las lenguas.

!
Ninguna de estas cifras corresponde a tus propios resultados
Estas tablas proceden de un estudio publicado y de las fichas de los proveedores, no de una prueba propia. Indican dónde buscar, no qué modelo dará mejores resultados en tu caso. Para decidir entre dos modelos de rendimiento similar, el método de la última sección utiliza tus propios datos.

#Qué modelo para qué caso: tabla de decisión

Elegir un modelo de embedding para francés
Tu situaciónModelo que probar primeroPor quéAspecto a tener en cuenta
Corpus en francés o en francés + inglés, equipo de prestaciones razonablesBGE-M3Puntuación de recuperación de información en francés de 0,65, al nivel de los mejores modelos abiertos del estudio1,2 GB en Ollama; sin prefijo
Jurídico, administrativo, RRHHBGE-M3, luego Solon para compararBGE-M3 iguala o supera a Solon en los tres conjuntos de datos en francés del estudioUn modelo sin un conjunto interno de pruebas jurídicas sigue siendo una apuesta
Máquina modesta o solo CPUEmbeddingGemma 300M, o multilingual-e5-small622 MB en Ollama; diseñado por Google para portátiles y móvilesContexto de 2.048 tokens: fragmentos cortos
Tarjeta gráfica disponible, calidad máximaQwen3-Embedding-4B o 8B32 000 tokens, dimensiones ajustables, más de 100 idiomas2 560 y 4 096 dimensiones: almacenamiento y límites de índice
Fragmentos largos, documentos estructuradosBGE-M3, Qwen3-Embedding o Granite R28.192 a 32.768 tokens de contextoUn chunk muy largo diluye el sentido
Uso comercial, auditoría de licenciaBGE-M3, multilingual-e5-large, Solon, Qwen3-Embedding, Granite R2MIT o Apache 2.0Revisa las condiciones de Gemma; jina-clip-v2 es solo para uso no comercial

#Embedding empresarial personalizado: modelo abierto, fine-tuning o API

«A medida» no quiere decir entrenar tu propio modelo desde el principio. El orden que evita perder tiempo: un modelo abierto genérico, una segmentación cuidadosa, una búsqueda híbrida y un reranker; luego, una medición del recall con tus preguntas reales; luego, solo si los fallos persisten y se deben al vocabulario del sector (referencias internas, siglas propias), un fine-tuning.

Philipp Schmid realizó en junio de 2024 un ajuste fino del modelo bge-base-en-v1.5 con 6 300 pares pregunta-pasaje extraídos de documentos financieros: la puntuación de recuperación mejoró aproximadamente un 7,4 % en su conjunto de prueba, con un entrenamiento de tres minutos en una tarjeta gráfica de consumo. Es un caso en inglés, sobre un único corpus, con pares generados por un LLM: un orden de magnitud, no una promesa. BAAI también documenta el ajuste fino de BGE-M3.

Tres formas de obtener un embedding adecuado para una empresa
OpciónCuándo elegirlaLímites
Modelo abierto genérico en local (BGE-M3, Qwen3-Embedding)Punto de partida por defecto; los textos permanecen en tu red; licencia MIT o ApacheVocabulario del sector no aprendido; evaluar con tus documentos
Fine-tuning de un modelo abiertoRecall estancado pese a la búsqueda híbrida y al reranker; varios miles de pares pregunta-pasajeCorpus que hay que volver a codificar; modelo que hay que versionar como un programa; riesgo de sobreajuste
API de embeddings (Mistral, OpenAI)Sin GPU, volumen moderado; text-embedding-3-large y mistral-embed encabezan el estudio MTEB-French de 2024Los textos salen de tu red; el modelo puede cambiar por parte del proveedor; costo recurrente
→
La prueba adecuada antes de realizar un ajuste fino
Si el fragmento correcto aparece entre los veinte primeros resultados, pero no entre los cinco primeros, ese es un caso de uso para un reranker: de hecho, BAAI recomienda una búsqueda híbrida seguida de reranking. El fine-tuning de embeddings se centra en los fragmentos que nunca aparecen en los resultados.

#Embedding multimodal: buscar en imágenes y páginas de documentos

Un modelo de embeddings multimodal coloca texto e imágenes en el mismo espacio vectorial. Así, se puede recuperar una foto a partir de una frase o una página de PDF escaneada sin necesidad de OCR. Los modelos de la biblioteca Ollama consultados en esta página (BGE-M3, Qwen3-Embedding, EmbeddingGemma, nomic-embed-text, mxbai-embed-large) aceptan únicamente texto: los modelos multimodales a continuación se usan a través de Hugging Face (Sentence-Transformers o Transformers).

Modelos de embedding multimodales abiertos
ModeloEntradasLicenciaA tener en cuenta
Qwen3-VL-Embedding 2B / 8BTexto, imágenes, capturas de pantalla, videoApache 2.032 000 tokens; 2 048 y 4 096 dimensiones; dimensiones ajustables
jina-clip-v2Texto e imágenes; 94 idiomasCC BY-NC 4.0No comercial: descartar para un producto o servicio de pago sin autorización del editor
ColPali v1.3Páginas de documentos en imagen, multivectoresMIT (ficha)Ficha con el inglés indicado como idioma; varios vectores por página cambian el almacenamiento

Un modelo multimodal no es mejor en texto puro. En las tablas publicadas por Qwen, Qwen3-VL-Embedding-2B obtiene 63,87 en MTEB multilingüe, frente a 64,33 de Qwen3-Embedding-0.6B, un modelo de texto más de tres veces más pequeño. Para los PDF cuyo contenido útil es texto, conviértelos en texto limpio (Docling o un OCR) y mantén un embedding de texto. Reserva el multimodal para corpus visuales: esquemas, planos, capturas, diapositivas.

#Gestionar tus embeddings: prefijos, truncamiento, almacenamiento y reindexación

El rendimiento de un RAG suele empeorar más por estos detalles que por la elección del modelo. Primer detalle: cada familia de modelos espera un formato de entrada diferente para las preguntas y para los documentos.

Prefijos esperados por modelo (preguntas y documentos)
ModeloAntes de la preguntaAntes del documento
BGE-M3NadaNada
multilingual-e5-largequery: passage: (obligatorio, incluso en francés)
Solon-embeddings-large-0.1query : Nada
nomic-embed-text v1.5search_query: search_document:
mxbai-embed-large-v1Representa esta frase para buscar pasajes relevantes: Nada
Qwen3-EmbeddingInstruct: {tarea en una frase}, salto de línea, Query: {pregunta}Nada
EmbeddingGemmatask: search result | query: {question}title: {título o none} | text: {contenido}

Con Ollama, el ejemplo oficial de mxbai-embed-large coloca el prefijo directamente en el texto enviado: añádelo tú mismo en tu código. Qwen indica que las instrucciones aportan, por lo general, una mejora de entre el 1 y el 5 %, y recomienda escribirlas en inglés incluso para un corpus multilingüe.

#La trampa de Ollama: el truncamiento silencioso

El punto de acceso /api/embed de Ollama tiene un parámetro truncate cuyo valor predeterminado es true: una entrada que supera la ventana de contexto del modelo se recorta sin generar ningún error. Con mxbai-embed-large (512 tokens en Ollama), un fragmento de 700 tokens se indexa sin su parte final y nadie se da cuenta. El contexto de Ollama también puede diferir del indicado en la ficha original: 2K para nomic-embed-text, frente a los 8 192 anunciados por Nomic. Establece truncate en false durante las pruebas: es mejor un error que un texto truncado.

#Dimensiones, almacenamiento y límites de índice

El almacenamiento se calcula simplemente: número de chunks × dimensiones × 4 bytes en float32, sin índice. Para un millón de chunks, los vectores solos ocupan:

Un millón de chunks en float32, vectores solamente (cálculo)
DimensionesEjemplo de modeloAlmacenamiento
256EmbeddingGemma o Qwen3 reducidos (Matryoshka)1,0 GB
384all-MiniLM-L12-v21,5 GB
768EmbeddingGemma, Granite R2, nomic3,1 GB
1 024BGE-M3, multilingual-e5-large, Qwen3-0.6B4,1 GB
2 560Qwen3-Embedding-4B10,2 GB
4 096Qwen3-Embedding-8B16,4 GB

Las bases de datos también imponen límites. Con pgvector, un índice se aplica a vectores de hasta 2.000 dimensiones, o 4.000 en media precisión (halfvec): las 4.096 dimensiones de Qwen3-Embedding-8B superan incluso este límite. La solución es truncar los vectores, algo que permiten los modelos entrenados con Matryoshka (Qwen3-Embedding, EmbeddingGemma, nomic v1.5), y luego renormalizarlos, como especifica Google para EmbeddingGemma. La API /api/embed de Ollama acepta un parámetro dimensions, que debes reservar para estos modelos.

#Versionar y reindexar

Metadatos que hay que conservar
Nombre exacto del modelo, revisión, dimensión, plantilla de prefijo, parámetros de chunking, fecha de indexación. Sin estos metadatos, nadie sabe por qué ha cambiado la recuperación.
Cambio de modelo
Vuelve a codificar todo el corpus en una nueva colección, evalúala y después pasa a utilizarla. Nunca mezcles dos modelos en la misma colección.
Normalización
Ollama devuelve vectores normalizados en L2: utiliza la misma métrica (coseno o producto escalar) en todas partes.

#Usar un modelo en la práctica y probarlo en tus documentos

Ollama: descargar BGE-M3 y generar un embedding
ollama pull bge-m3

curl http://localhost:11434/api/embed -d '{
  "model": "bge-m3",
  "input": "Le contrat débute le 1er mai."
}'
Ollama en Python: dos textos similares, un texto diferente
import numpy as np
import ollama

textes = [
    "Le contrat débute le 1er mai.",
    "Date de début : 01/05.",
    "La voiture est rouge.",
]
vecteurs = np.array(ollama.embed(model="bge-m3", input=textes)["embeddings"])

# Les vecteurs d'Ollama sont normalisés : le produit scalaire vaut le cosinus
print(vecteurs[0] @ vecteurs[1])
print(vecteurs[0] @ vecteurs[2])

Fíjate solo en el orden de las dos puntuaciones: la primera debe superar claramente a la segunda. Para comparar seriamente dos o tres candidatos, el siguiente procedimiento sustituye todas las clasificaciones publicadas.

  1. 01
    Crear un conjunto de pruebas real
    Reúne entre 50 y 100 preguntas planteadas por usuarios reales (soporte, tickets, preguntas frecuentes) y anota para cada una el chunk que contiene la respuesta. Las preguntas inventadas por un LLM hacen que los resultados parezcan mejores de lo que son.
  2. 02
    Codificar con cada modelo candidato
    Codifica los chunks y después las preguntas, respetando la tabla de prefijos y manteniendo la misma longitud de chunk y la misma dimensión de almacenamiento para todos los candidatos.
  3. 03
    Medir el recall@5
    Para cada pregunta, verifica si el chunk adecuado aparece entre los cinco primeros resultados. El script a continuación realiza este cálculo.
  4. 04
    Tomar una decisión con un criterio de costo
    Quédate con el modelo más ligero cuyo recall@5 se mantenga a uno o dos puntos del mejor: un modelo ocho veces más grande supone un mayor coste de almacenamiento y de tiempo en cada reindexación.
Sentence-Transformers: recall@5 en tus datos
import numpy as np
from sentence_transformers import SentenceTransformer

modele = SentenceTransformer("BAAI/bge-m3")

chunks = [...]      # vos chunks (liste de textes)
questions = [...]   # 50 à 100 vraies questions
cible = [...]       # pour chaque question, l'index du bon chunk

C = modele.encode(chunks, normalize_embeddings=True)
Q = modele.encode(questions, normalize_embeddings=True)

top5 = np.argsort(-(Q @ C.T), axis=1)[:, :5]
recall5 = np.mean([cible[i] in top5[i] for i in range(len(questions))])
print(f"recall@5 = {recall5:.0%}")
→
Guarda los vectores de forma persistente
Volver a codificar todo el corpus en cada inicio es la operación más lenta de un RAG para principiantes. Almacena los vectores en una base de datos (Chroma, Qdrant, pgvector, FAISS) y vuelve a codificar solo los nuevos chunks.
FAQ
¿Cuál es el mejor modelo de embedding para el francés?+
BGE-M3 es el mejor punto de partida: sus resultados de recuperación en francés están publicados (0,65 en MTEB-French), admite 8.192 tokens, su licencia es MIT y Ollama lo ofrece. Qwen3-Embedding y EmbeddingGemma son más recientes y no están incluidos en este estudio. Pruébalos con cincuenta preguntas de tu corpus antes de decidir.
¿Se puede usar nomic-embed-text o mxbai-embed-large en francés?+
Sus fichas en Hugging Face tienen la etiqueta «inglés» y no están incluidos en el estudio MTEB-French. Funcionan técnicamente con textos en francés, pero nada garantiza la calidad. En Ollama, nomic-embed-text solo expone 2.048 tokens de contexto, frente a los 8.192 anunciados por Nomic. Entre los dos, nomic ofrece más contexto (2.048 tokens en Ollama frente a 512); mxbai solo requiere un prefijo para las consultas. Prefiere BGE-M3.
¿Existe un modelo bge-m4?+
El repositorio oficial de FlagEmbedding no menciona ningún bge-m4. El modelo multilingüe de la familia se llama BGE-M3, y M3 designa tres cualidades: multifuncional (denso, disperso, multivectorial), multilingüe (más de 100 idiomas) y de múltiples granularidades (hasta 8.192 tokens). Si un sitio ofrece un bge-m4, verifica su origen antes de descargarlo.
¿Se debe reindexar cuando se cambia de modelo de embedding?+
Sí, completamente. Los vectores de dos modelos viven en espacios diferentes y a menudo ni siquiera tienen la misma dimensión. Crea una nueva colección, vuelve a codificar todos los chunks con el nuevo modelo y su plantilla de prefijos, mide el recall y luego pasa a la nueva colección. Nunca mezcles dos modelos en una misma colección.
¿Un modelo de embeddings multimodal reemplaza a un modelo de texto?+
No, salvo si el contenido es visual. En las tablas de Qwen, Qwen3-VL-Embedding-2B (63,87) sigue por debajo de Qwen3-Embedding-0.6B (64,33) en texto puro. Para los PDF textuales, conviértelos en texto y mantén un embedding de texto. El multimodal sirve para esquemas, capturas y diapositivas; atención, jina-clip-v2 es de uso no comercial.
¿Se necesita un embedding a medida para una empresa?+
Raramente al inicio. Un modelo abierto genérico, un chunking cuidadoso, una búsqueda híbrida y un reranker resuelven la mayoría de los casos. El fine-tuning se justifica cuando el recall sigue estancado debido al vocabulario propio del sector y dispones de varios miles de pares pregunta-pasaje, con una reindexación completa posterior.
¿Esta guía te ha ayudado?

¿Un comentario, un error, una precisión? Avísanos, eso mejora la guía para todos.