Melhores modelos de embeddings FR
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.
#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.
#Os cinco critérios que realmente diferenciam os modelos
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.
| Modelo | Dimensões / contexto | Licença | Tamanho do modelo | O que as fontes dizem sobre o francês |
|---|---|---|---|---|
| BGE-M3 (BAAI) | 1 024 / 8 192 | MIT | 1,2 GB (Ollama) | Recuperação no MTEB-French: 0,65. Densa, esparsa e multivetorial. Recomendado como ponto de partida. |
| Qwen3-Embedding 0,6B / 4B / 8B | 1 024 / 2 560 / 4 096 ; 32 000 | Apache 2.0 | 639 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 048 | Gemma | 622 MB (Ollama) | Mais de 100 línguas. MTEB multilíngue v2: 61,15 segundo o Google. |
| multilingual-e5-large | 1 024 / 512 | MIT | 2,24 GB (float32) | Retrieval MTEB-French 0,59. Prefixos obrigatórios. |
| Solon-embeddings-large-0.1 | 1 024 / 512 | MIT | 2,24 GB (float32) | Modelo francês publicado pela Ordalie Technologies. Retrieval MTEB-French 0,63. |
| Granite Embedding 311M Multilingual R2 (IBM) | 768 / 32 768 | Apache 2.0 | 311 milhões de parâmetros | O 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.5 | 768 / 8 192 (2 048 no Ollama) | Apache 2.0 | 274 MB (Ollama) | Ficha marcada como sendo em inglês. Reservar para corpus em inglês. |
| mxbai-embed-large-v1 | contexto 512 | Apache 2.0 | 670 MB (Ollama) | Ficha marcada como sendo em inglês. Reservar para corpus em inglês. |
| all-MiniLM-L12-v2 | 384 | Apache 2.0 | 33 milhões de parâmetros | Recuperaçã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.
| Modelo | Recuperação média | Direito (BSARD) | Convenção Syntec | Alloprof |
|---|---|---|---|---|
| text-embedding-3-large (API OpenAI) | 0,73 | 0,73 | 0,87 | 0,60 |
| mistral-embed (API Mistral) | 0,68 | 0,68 | 0,79 | 0,57 |
| BGE-M3 | 0,65 | 0,60 | 0,85 | 0,49 |
| Solon-embeddings-large-0.1 | 0,63 | 0,58 | 0,85 | 0,47 |
| multilingual-e5-large | 0,59 | 0,59 | 0,81 | 0,38 |
| multilingual-e5-small | 0,52 | 0,52 | 0,76 | 0,27 |
| paraphrase-multilingual-MiniLM-L12-v2 | 0,44 | 0,38 | 0,66 | 0,27 |
| all-MiniLM-L12-v2 | 0,43 | 0,34 | 0,61 | 0,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.
#Qual modelo para qual uso: tabela de decisão
| Sua situação | Modelo para testar em primeiro lugar | Por quê | Ponto de atenção |
|---|---|---|---|
| Corpus em francês ou francês + inglês, máquina razoável | BGE-M3 | Recuperação em francês de 0,65, no nível dos melhores modelos abertos do estudo | 1,2 GB no Ollama; sem prefixo |
| Jurídico, administrativo, RH | BGE-M3, depois Solon para comparação | BGE-M3 iguala ou supera Solon nos três conjuntos de dados em francês do estudo | Um modelo sem um conjunto interno de testes jurídicos continua sendo uma aposta |
| Máquina modesta ou apenas CPU | EmbeddingGemma 300M, ou multilingual-e5-small | 622 MB no Ollama; desenvolvido pelo Google para notebooks e dispositivos móveis | Contexto de 2.048 tokens: blocos curtos |
| Placa de vídeo disponível, qualidade máxima | Qwen3-Embedding-4B ou 8B | 32.000 tokens, dimensões ajustáveis, mais de 100 idiomas | 2.560 e 4.096 dimensões: armazenamento e limites de índice |
| Chunks longos, documentos estruturados | BGE-M3, Qwen3-Embedding ou Granite R2 | 8.192 a 32.768 tokens de contexto | Um chunk muito longo dilui o sentido |
| Uso comercial, auditoria de licença | BGE-M3, multilingual-e5-large, Solon, Qwen3-Embedding, Granite R2 | MIT ou Apache 2.0 | Reler 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.
| Opção | Quando escolher | Limites |
|---|---|---|
| Modelo aberto genérico local (BGE-M3, Qwen3-Embedding) | Ponto de partida padrão; os textos permanecem na sua rede; licença MIT ou Apache | Vocabulário específico da área não aprendido; avaliar com seus documentos |
| Fine-tuning de um modelo aberto | Recall estagnado apesar da busca híbrida e do reranker; vários milhares de pares pergunta-trecho | Corpus 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 2024 | Os textos saem da sua rede; o modelo pode mudar no lado do fornecedor; custo recorrente |
#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).
| Modelo | Entradas | Licença | O que você precisa saber |
|---|---|---|---|
| Qwen3-VL-Embedding 2B / 8B | Texto, imagens, capturas de tela, vídeo | Apache 2.0 | 32 000 tokens; 2 048 e 4 096 dimensões; dimensões ajustáveis |
| jina-clip-v2 | Texto e imagens; 94 línguas | CC BY-NC 4.0 | Não comercial: descartar para um produto ou serviço pago sem autorização do editor |
| ColPali v1.3 | Páginas de documentos em formato de imagem, multivetores | MIT (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.
| Modelo | Antes da pergunta | Antes do documento |
|---|---|---|
| BGE-M3 | Nada | Nada |
| multilingual-e5-large | query: | passage: (obrigatório, mesmo em francês) |
| Solon-embeddings-large-0.1 | query : | Nada |
| nomic-embed-text v1.5 | search_query: | search_document: |
| mxbai-embed-large-v1 | Represente esta frase para busca de passagens relevantes: | Nada |
| Qwen3-Embedding | Instruct: {tarefa em uma frase}, quebra de linha, Query: {pergunta} | Nada |
| EmbeddingGemma | task: 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:
| Dimensões | Exemplo de modelo | Armazenamento |
|---|---|---|
| 256 | EmbeddingGemma ou Qwen3 reduzidos (Matryoshka) | 1,0 GB |
| 384 | all-MiniLM-L12-v2 | 1,5 GB |
| 768 | EmbeddingGemma, Granite R2, nomic | 3,1 GB |
| 1 024 | BGE-M3, multilingual-e5-large, Qwen3-0.6B | 4,1 GB |
| 2 560 | Qwen3-Embedding-4B | 10,2 GB |
| 4 096 | Qwen3-Embedding-8B | 16,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
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.
- 01Criar um conjunto de testes realReú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.
- 02Codificar com cada modelo candidatoCodifique 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.
- 03Medir o recall@5Para cada pergunta, verifique se o bloco correto está entre os cinco primeiros resultados. O script abaixo realiza esse cálculo.
- 04Decidir com base em um critério de custoMantenha 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: embeddings locais
- Estratégias de chunking: o tamanho dos chunks em relação ao contexto do modelo
- Busca híbrida BM25 + vetorial
- Adicionar um reranker antes de fazer o fine-tuning
- pgvector: limites de dimensões e índices
- Ragas: avalie seu RAG com números
- Fonte: ficha oficial do BGE-M3 (BAAI)
- Fonte: MTEB-French, estudo de Ciancone et al. (2024)
- Fonte: documentação dos embeddings do Ollama
- Fonte: ficha do Qwen3-Embedding
- Fonte: ficha de EmbeddingGemma (Google)
Qual o melhor modelo de embedding para o francês?+
É possível usar nomic-embed-text ou mxbai-embed-large em francês?+
Existe um modelo bge-m4?+
É necessário reindexar ao mudar de modelo de embedding?+
Um modelo de embedding multimodal substitui um modelo de texto?+
É necessário um embedding personalizado para empresa?+
Um comentário, um erro ou uma observação? Avise-nos; isso ajuda a melhorar o guia para todos.