Intermediário 14 minEmbeddings

Melhores modelos de embeddings FR

Resposta direta

Para o francês, BGE-M3 é o ponto de partida mais seguro: multilíngue, 8.192 tokens de contexto, licença MIT, disponível no Ollama. Qwen3-Embedding e EmbeddingGemma são as alternativas recentes para testar. Os modelos centrados em inglês (nomic-embed-text, mxbai-embed-large, all-MiniLM) devem ser evitados para o francês. A escolha final é validada com seus próprios documentos.

Um modelo de embedding transforma cada texto em um vetor: é ele que decide que 'CDD' e 'contrato de duração determinada' são próximos. Para o francês, o benchmark MTEB-French registra 22 pontos de diferença na recuperação entre BGE-M3 e all-MiniLM-L12-v2. Esta página classifica modelos abertos utilizáveis localmente, cita as medições publicadas e suas limitações, e aborda o que é caro na produção: prefixos, truncamento, dimensões, armazenamento e reindexação.

Por Mohamed Meguedmi·Atualização 2026-09-29·Testado no Windows, macOS e Linux

#O que é um modelo de embedding e por que o francês o torna mais complexo

Um modelo de embedding é uma rede neural que converte um texto (uma frase, um parágrafo, um chunk) em um vetor de números, com 384 a 4.096 dimensões, dependendo do modelo. Dois textos com sentidos próximos geram vetores próximos, cuja proximidade costuma ser medida pela similaridade de cosseno. É isso que permite a um RAG encontrar um trecho sobre o “contrato de duração determinada” quando o usuário escreve “CDD”, sem nenhuma palavra em comum. O mesmo modelo deve codificar as perguntas e os documentos, como lembra a documentação do Ollama; mudar de modelo exige, portanto, reindexar todo o corpus. Para escolher, três perguntas bastam: o modelo foi treinado em francês, sua janela de contexto abrange seus chunks e sua licença permite o uso que você pretende fazer?

O francês adiciona suas próprias dificuldades: acentos, elisões (« l'employeur »), siglas jurídicas, anglicismos técnicos misturados ao texto. A diferença entre os modelos é clara. No benchmark MTEB-French, a pontuação de recuperação vai de 0,43 para all-MiniLM-L12-v2 a 0,65 para BGE-M3, ou seja, 22 pontos de diferença no mesmo conjunto de perguntas.

i
Dimensão ≠ qualidade
Um vetor mais longo não é, por natureza, mais preciso. Na classificação multilíngue MTEB, o EmbeddingGemma passa de 61,15 para 60,71 ao reduzir seus vetores de 768 para 512 dimensões, e o Google também indica tamanhos de 256 e 128 dimensões. A economia de armazenamento é proporcional; a perda de qualidade não é.

#Os cinco critérios que realmente diferenciam os modelos

O kit RAG Local

Seus documentos, sua IA: um RAG local confiável para seus PDFs, notas e e-mails — sem enviar nada para a nuvem.

  • Espaço online vitalício
  • PDF + arquivos
  • Atualizações vitalícias
Idiomas de treinamento
BGE-M3 e Qwen3-Embedding anunciam mais de 100 idiomas, multilingual-e5-large 94. As fichas dos modelos nomic-embed-text-v1.5 e mxbai-embed-large-v1, ambos muito baixados no Ollama, estão marcadas como English.
Contexto máximo
512 tokens para multilingual-e5-large, Solon e mxbai-embed-large; 2.048 para EmbeddingGemma; 8.192 para BGE-M3; 32.000 para Qwen3-Embedding e Granite R2. Um chunk mais longo é truncado, não rejeitado.
Dimensões e armazenamento
De 384 a 4.096 dimensões, ou seja, 4 bytes por dimensão e por vetor em float32 (cálculo mais abaixo).
Licença
MIT para BGE-M3, multilingual-e5-large e Solon; Apache 2.0 para Qwen3-Embedding, Granite R2, nomic e mxbai; condições Gemma para EmbeddingGemma; CC BY-NC 4.0 (não comercial) para jina-clip-v2.
Prefixos e instruções
Alguns modelos exigem um prefixo antes de cada texto (« query: » e « passage: » para o E5, mesmo em francês). Esquecê-lo prejudica a recuperação de informações sem gerar erro.

#Classificação 2026 para o francês: nove modelos comparados

Este ranking é editorial, não um teste interno: combina cobertura em francês, benchmarks publicados e disponibilidade local. Os pesos vêm da biblioteca Ollama quando o modelo está lá, caso contrário, do float32 estimado pelo estudo MTEB-French.

Modelos de embedding para o francês: características publicadas pelos responsáveis pelos modelos
ModeloDimensões / contextoLicençaTamanho do modeloO que as fontes dizem sobre o francês
BGE-M3 (BAAI)1 024 / 8 192MIT1,2 GB (Ollama)Recuperação no MTEB-French: 0,65. Densa, esparsa e multivetorial. Recomendado como ponto de partida.
Qwen3-Embedding 0,6B / 4B / 8B1 024 / 2 560 / 4 096 ; 32 000Apache 2.0639 MB / 2,5 GB / 4,7 GB (Ollama)Mais de 100 línguas. MTEB multilíngue segundo Qwen: 64,33 / 69,45 / 70,58.
EmbeddingGemma 300M (Google)768 (512, 256, 128) / 2 048Gemma622 MB (Ollama)Mais de 100 línguas. MTEB multilíngue v2: 61,15 segundo o Google.
multilingual-e5-large1 024 / 512MIT2,24 GB (float32)Retrieval MTEB-French 0,59. Prefixos obrigatórios.
Solon-embeddings-large-0.11 024 / 512MIT2,24 GB (float32)Modelo francês publicado pela Ordalie Technologies. Retrieval MTEB-French 0,63.
Granite Embedding 311M Multilingual R2 (IBM)768 / 32 768Apache 2.0311 milhões de parâmetrosO francês está entre os 52 idiomas com suporte aprimorado. 65,2 em recuperação no MTEB multilíngue, segundo a IBM; nenhuma avaliação independente em francês foi consultada.
nomic-embed-text v1.5768 / 8 192 (2 048 no Ollama)Apache 2.0274 MB (Ollama)Ficha marcada como sendo em inglês. Reservar para corpus em inglês.
mxbai-embed-large-v1contexto 512Apache 2.0670 MB (Ollama)Ficha marcada como sendo em inglês. Reservar para corpus em inglês.
all-MiniLM-L12-v2384Apache 2.033 milhões de parâmetrosRecuperação MTEB-French 0,43. Protótipo exclusivo para CPU.

BGE-M3 continua sendo a melhor opção padrão: seus resultados de recuperação de informações em francês estão publicados, seu contexto de 8.192 tokens evita a maioria das divisões forçadas e ele também fornece os pesos lexicais úteis para uma busca híbrida. Qwen3-Embedding é o candidato quando há uma placa de vídeo disponível: sua versão 8B liderava o ranking multilíngue MTEB no lançamento, em 5 de junho de 2025, segundo a Qwen, mas suas 4.096 dimensões pesam no armazenamento. EmbeddingGemma é voltado para máquinas modestas.

Solon, frequentemente apresentado como especialista em francês jurídico e administrativo, não vence em nenhum dos três conjuntos de dados de recuperação do estudo MTEB-French: ele empata com o BGE-M3 na convenção coletiva Syntec e fica atrás nos artigos de lei (BSARD) e nas perguntas escolares (Alloprof).

#O que os benchmarks em francês dizem, e o que eles não dizem

A referência publicada é o MTEB-French (Ciancone et al., maio de 2024): 18 conjuntos de dados, 8 categorias de tarefas, 51 modelos comparados. Os autores concluem que os grandes modelos multilíngues pré-treinados para similaridade entre frases apresentam desempenho excepcional. A seguir, os resultados de recuperação (NDCG@10) em três conjuntos: artigos de lei em francês (BSARD), convenção coletiva Syntec e perguntas escolares do Alloprof.

MTEB-French: recuperação (NDCG@10) por conjunto de dados, estudo de 2024
ModeloRecuperação médiaDireito (BSARD)Convenção 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

Três limitações impedem que isso seja considerado uma classificação definitiva. O estudo é de 2024: não inclui Qwen3-Embedding (junho de 2025), nem EmbeddingGemma (setembro de 2025), nem Granite R2, e nenhuma medição comparável em francês desses modelos foi consultada para esta página. Os corpora (artigos de lei, convenção coletiva, perguntas escolares) não são necessariamente semelhantes aos seus. Por fim, as pontuações multilíngues publicadas pelos desenvolvedores são autodeclaradas e combinam todas as línguas.

!
Nenhum desses números é o seu
Essas tabelas vêm de um estudo publicado e das fichas dos fornecedores, não de um teste interno. Elas indicam onde procurar, não qual modelo terá o melhor desempenho no seu caso. Para decidir entre dois modelos com resultados próximos, o método da última seção utiliza seus próprios dados.

#Qual modelo para qual uso: tabela de decisão

Escolher um modelo de embedding para francês
Sua situaçãoModelo para testar em primeiro lugarPor quêPonto de atenção
Corpus em francês ou francês + inglês, máquina razoávelBGE-M3Recuperação em francês de 0,65, no nível dos melhores modelos abertos do estudo1,2 GB no Ollama; sem prefixo
Jurídico, administrativo, RHBGE-M3, depois Solon para comparaçãoBGE-M3 iguala ou supera Solon nos três conjuntos de dados em francês do estudoUm modelo sem um conjunto interno de testes jurídicos continua sendo uma aposta
Máquina modesta ou apenas CPUEmbeddingGemma 300M, ou multilingual-e5-small622 MB no Ollama; desenvolvido pelo Google para notebooks e dispositivos móveisContexto de 2.048 tokens: blocos curtos
Placa de vídeo disponível, qualidade máximaQwen3-Embedding-4B ou 8B32.000 tokens, dimensões ajustáveis, mais de 100 idiomas2.560 e 4.096 dimensões: armazenamento e limites de índice
Chunks longos, documentos estruturadosBGE-M3, Qwen3-Embedding ou Granite R28.192 a 32.768 tokens de contextoUm chunk muito longo dilui o sentido
Uso comercial, auditoria de licençaBGE-M3, multilingual-e5-large, Solon, Qwen3-Embedding, Granite R2MIT ou Apache 2.0Reler os termos do Gemma; jina-clip-v2 é de uso não comercial

#Embeddings personalizados para empresas: modelo aberto, fine-tuning ou API

“Personalizado” não quer dizer treinar seu próprio modelo desde o início. A sequência que evita desperdício de tempo: um modelo aberto genérico, um chunking cuidadoso, uma busca híbrida e um reranker; depois, a medição do recall com suas perguntas reais; depois, apenas se as falhas persistirem e estiverem relacionadas ao vocabulário da área de atuação (referências internas, siglas próprias), um fine-tuning.

Philipp Schmid fez o ajuste fino do modelo bge-base-en-v1.5 em junho de 2024 com 6.300 pares pergunta-trecho extraídos de documentos financeiros: a pontuação de recuperação aumentou aproximadamente 7,4% no seu conjunto de teste, com um treinamento de três minutos em uma placa de vídeo voltada ao consumidor. É um caso em inglês, em um único corpus, com pares gerados por um LLM: uma ordem de grandeza, não uma promessa. A BAAI também documenta o ajuste fino do BGE-M3.

Três formas de obter um embedding adequado para uma empresa
OpçãoQuando escolherLimites
Modelo aberto genérico local (BGE-M3, Qwen3-Embedding)Ponto de partida padrão; os textos permanecem na sua rede; licença MIT ou ApacheVocabulário específico da área não aprendido; avaliar com seus documentos
Fine-tuning de um modelo abertoRecall estagnado apesar da busca híbrida e do reranker; vários milhares de pares pergunta-trechoCorpus a ser reencodificado; modelo a ser versionado como software; risco de sobreajuste
API de embeddings (Mistral, OpenAI)Sem GPU, volume moderado; text-embedding-3-large e mistral-embed lideram o estudo MTEB-French de 2024Os textos saem da sua rede; o modelo pode mudar no lado do fornecedor; custo recorrente
→
O teste certo antes de fazer fine-tuning
Se o trecho correto está entre os vinte primeiros resultados, mas não nos cinco primeiros, trata-se do uso de um reranker: a BAAI recomenda, de fato, pesquisa híbrida seguida de reranking. O fine-tuning de embeddings visa trechos que nunca aparecem nos resultados.

#Embedding multimodal: buscar em imagens e páginas de documentos

Um modelo de embedding multimodal coloca texto e imagens no mesmo espaço vetorial. Assim, é possível recuperar uma foto a partir de uma frase ou uma página de PDF escaneada sem precisar fazer OCR. Os modelos da biblioteca Ollama consultados para esta página (BGE-M3, Qwen3-Embedding, EmbeddingGemma, nomic-embed-text, mxbai-embed-large) aceitam apenas texto: os modelos multimodais abaixo são usados via Hugging Face (Sentence-Transformers ou Transformers).

Modelos de embedding multimodais abertos
ModeloEntradasLicençaO que você precisa saber
Qwen3-VL-Embedding 2B / 8BTexto, imagens, capturas de tela, vídeoApache 2.032 000 tokens; 2 048 e 4 096 dimensões; dimensões ajustáveis
jina-clip-v2Texto e imagens; 94 línguasCC BY-NC 4.0Não comercial: descartar para um produto ou serviço pago sem autorização do editor
ColPali v1.3Páginas de documentos em formato de imagem, multivetoresMIT (ficha)Ficha marcada como inglês; múltiplos vetores por página alteram o armazenamento

Um modelo multimodal não é melhor em texto puro. Nas tabelas publicadas pela Qwen, Qwen3-VL-Embedding-2B obtém 63,87 no MTEB multilíngue, contra 64,33 para Qwen3-Embedding-0.6B, um modelo de texto mais de três vezes menor. Para PDFs cujo conteúdo útil é texto, converta-os em texto limpo (Docling ou OCR) e mantenha um embedding de texto. Reserve o multimodal para corpora visuais: diagramas, plantas, capturas de tela, slides.

#Gerenciar seus embeddings: prefixos, truncamento, armazenamento e reindexação

Um RAG frequentemente perde qualidade mais por esses detalhes do que pela escolha do modelo. Primeiro detalhe: cada família de modelos espera um formato de entrada diferente para perguntas e para documentos.

Prefixos esperados por modelo (perguntas e documentos)
ModeloAntes da perguntaAntes do documento
BGE-M3NadaNada
multilingual-e5-largequery: passage: (obrigatório, mesmo em francês)
Solon-embeddings-large-0.1query : Nada
nomic-embed-text v1.5search_query: search_document:
mxbai-embed-large-v1Represente esta frase para busca de passagens relevantes: Nada
Qwen3-EmbeddingInstruct: {tarefa em uma frase}, quebra de linha, Query: {pergunta}Nada
EmbeddingGemmatask: search result | query: {question}title: {titre ou none} | text: {contenu}

Com Ollama, o exemplo oficial do mxbai-embed-large coloca o prefixo diretamente no texto enviado: adicione-o você mesmo no seu código. Qwen indica que as instruções geralmente proporcionam uma melhoria de 1 a 5% e recomenda escrevê-las em inglês mesmo para um corpus multilíngue.

#A armadilha do Ollama: o truncamento silencioso

O ponto de acesso /api/embed do Ollama possui um parâmetro truncate cujo valor padrão é true: uma entrada que ultrapassa a janela de contexto do modelo é cortada sem erro. Com o mxbai-embed-large (512 tokens no Ollama), um chunk de 700 tokens é indexado sem sua parte final, e ninguém percebe isso. O contexto do Ollama também pode diferir do indicado na ficha original: 2K para nomic-embed-text, contra 8 192 anunciados pela Nomic. Defina truncate como false durante os testes: um erro é melhor do que um texto truncado.

#Dimensões, armazenamento e limites de índice

O cálculo do armazenamento é simples: número de chunks × dimensões × 4 bytes em float32, sem contar o índice. Para um milhão de chunks, apenas os vetores ocupam:

Um milhão de chunks em float32, apenas os vetores (cálculo)
DimensõesExemplo de modeloArmazenamento
256EmbeddingGemma ou Qwen3 reduzidos (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

Os bancos de dados também impõem limites. Com o pgvector, um índice abrange vetores com até 2.000 dimensões, ou 4.000 em meia precisão (halfvec): as 4.096 dimensões do Qwen3-Embedding-8B ultrapassam até mesmo esse limite. A solução é truncar os vetores, algo possível nos modelos treinados com Matryoshka (Qwen3-Embedding, EmbeddingGemma, nomic v1.5), e depois renormalizá-los, conforme explicado pelo Google para o EmbeddingGemma. A API /api/embed do Ollama aceita um parâmetro chamado dimensions, que deve ser usado apenas com esses modelos.

#Versionar e reindexar

Metadados a conservar
Nome exato do modelo, revisão, dimensão, modelo de prefixo, parâmetros de chunking, data de indexação. Sem esses metadados, ninguém sabe por que o retrieval mudou.
Mudança de modelo
Recodifique todo o corpus em uma nova coleção, avalie-a e depois passe a usar essa coleção. Nunca misture dois modelos na mesma coleção.
Normalização
Ollama retorna vetores normalizados em L2: use a mesma métrica (cosseno ou produto escalar) em todos os lugares.

#Usar um modelo na prática e testá-lo em seus documentos

Ollama : baixar BGE-M3 e gerar um embedding
ollama pull bge-m3

curl http://localhost:11434/api/embed -d '{
  "model": "bge-m3",
  "input": "Le contrat débute le 1er mai."
}'
Ollama em Python: dois textos próximos, um texto distante
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])

Considere apenas a ordem das duas pontuações: a primeira deve ser claramente superior à segunda. Para comparar seriamente dois ou três candidatos, o procedimento a seguir substitui todos os rankings publicados.

  1. 01
    Criar um conjunto de testes real
    Reúna 50 a 100 perguntas feitas por usuários reais (suporte, tickets, perguntas frequentes) e anote para cada uma o chunk que contém a resposta. Perguntas inventadas por um LLM fazem os resultados parecerem melhores do que são.
  2. 02
    Codificar com cada modelo candidato
    Codifique os chunks e depois as perguntas, respeitando a tabela de prefixos e mantendo o mesmo comprimento de chunk e a mesma dimensão de armazenamento para todos os candidatos.
  3. 03
    Medir o recall@5
    Para cada pergunta, verifique se o bloco correto está entre os cinco primeiros resultados. O script abaixo realiza esse cálculo.
  4. 04
    Decidir com base em um critério de custo
    Mantenha o modelo mais leve cujo recall@5 permaneça a um ou dois pontos do melhor: um modelo oito vezes maior acarreta aumento no armazenamento e no tempo em cada reindexação.
Sentence-Transformers: recall@5 em seus dados
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%}")
→
Persista os vetores
Codificar novamente todo o corpus a cada inicialização é a etapa mais lenta de um RAG de iniciante. Armazene os vetores em uma base (Chroma, Qdrant, pgvector, FAISS) e codifique novamente apenas os novos chunks.
FAQ
Qual o melhor modelo de embedding para o francês?+
BGE-M3 é o melhor ponto de partida: seu desempenho em recuperação de informação em francês foi publicado (0,65 no MTEB-French), ele suporta 8.192 tokens, sua licença é MIT e o Ollama o oferece. Qwen3-Embedding e EmbeddingGemma são mais recentes e não estão incluídos nesse estudo. Teste-os com cinquenta perguntas do seu corpus antes de decidir.
É possível usar nomic-embed-text ou mxbai-embed-large em francês?+
As fichas desses modelos no Hugging Face indicam o inglês como idioma, e eles não estão presentes no estudo MTEB-French. Eles funcionam tecnicamente em francês, mas nada garante a qualidade. No Ollama, o nomic-embed-text disponibiliza apenas 2.048 tokens de contexto, contra os 8.192 anunciados pela Nomic. Entre os dois, o nomic oferece mais contexto (2.048 tokens no Ollama contra 512); o mxbai exige um prefixo somente para as consultas. Prefira BGE-M3.
Existe um modelo bge-m4?+
O repositório oficial FlagEmbedding não menciona nenhum bge-m4. O modelo multilíngue da família se chama BGE-M3, e M3 indica três qualidades: multifuncionalidade (densa, esparsa e multivetorial), suporte multilíngue (mais de 100 idiomas) e múltiplas granularidades (até 8.192 tokens). Se um site oferecer um bge-m4, verifique sua origem antes de baixar.
É necessário reindexar ao mudar de modelo de embedding?+
Sim, totalmente. Os vetores de dois modelos estão em espaços diferentes e muitas vezes nem sequer têm a mesma dimensão. Crie uma nova coleção, recodifique todos os chunks com o novo modelo e seu padrão de prefixos, meça o recall e depois faça a transição. Nunca misture dois modelos em uma mesma coleção.
Um modelo de embedding multimodal substitui um modelo de texto?+
Não, a menos que o conteúdo seja visual. Nas tabelas da Qwen, Qwen3-VL-Embedding-2B (63,87) fica abaixo de Qwen3-Embedding-0.6B (64,33) em texto puro. Para PDFs textuais, converta para texto e mantenha um embedding de texto. O multimodal serve para diagramas, capturas de tela e slides; atenção, jina-clip-v2 é de uso não comercial.
É necessário um embedding personalizado para empresa?+
Raramente no início. Um modelo aberto genérico, um chunking cuidadoso, uma busca híbrida e um reranker resolvem a maioria dos casos. O fine-tuning se justifica quando o recall continua estagnado por causa do vocabulário da área de atuação e você dispõe de vários milhares de pares pergunta-passagem, com reindexação completa em seguida.
Este guia ajudou você?

Um comentário, um erro ou uma observação? Avise-nos; isso ajuda a melhorar o guia para todos.