BGE-M3: embeddings que realmente falam francês
BGE-M3 (BAAI, licença MIT) é um modelo de embedding que suporta mais de 100 idiomas, aceita até 8.192 tokens por trecho e gera três representações em uma única execução: densa (sentido global), lexical (termos exatos, no estilo BM25) e multivetorial (reclassificação no estilo ColBERT). Em um corpus em francês, é uma escolha mais segura do que os modelos voltados ao inglês presentes nos rankings públicos. Cabe em 1,2 GB via Ollama (bge-m3:567m) e funciona sem placa de vídeo.
A maioria dos modelos de embedding mais bem classificados é treinada predominantemente com textos em inglês. Quando usados em um corpus em francês, eles funcionam sem erros, mas recuperam informações com menos eficácia — a falha mais insidiosa que existe, pois nada a sinaliza. BGE-M3, publicado pelo laboratório chinês BAAI, é um dos poucos modelos realmente multilíngues e ainda tem uma particularidade útil: produz três tipos de representações de uma só vez, sem custo adicional.
#O problema francês
Um modelo de embedding aprende sua noção de similaridade com seu corpus de treinamento. Se esse corpus for composto em 90% por conteúdo em inglês, o modelo posiciona corretamente os textos em inglês uns em relação aos outros, mas faz isso com muito menos precisão para os textos em francês. Na prática, em um corpus documental em francês, isso resulta em trechos relevantes que não são recuperados e trechos fora do assunto que são recuperados — sem nenhuma mensagem de erro, sem avisos nos logs e muitas vezes sem que ninguém perceba até que um usuário relate uma resposta que não tem nada a ver com a pergunta.
É por isso que a pergunta “qual modelo de embedding” não tem a mesma resposta em todos os idiomas. Os rankings públicos (como o MTEB) são amplamente dominados por tarefas em inglês; eles não preveem o que acontecerá com seus documentos nem com seu vocabulário especializado. Foi precisamente para esse caso que o laboratório chinês BAAI (Beijing Academy of Artificial Intelligence) projetou o BGE-M3: o nome significa Multi-Functionality, Multi-Linguality, Multi-Granularity — três funções de busca, mais de 100 idiomas e entradas que vão de frases curtas a documentos longos, reunidas em um único modelo em vez de distribuídas entre várias ferramentas.
#O que o BGE-M3 traz
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
- Multilíngue desde a concepção
- O modelo suporta mais de 100 idiomas de trabalho, de acordo com sua ficha oficial; trata o francês corretamente e permite também fazer consultas em francês sobre um corpus em inglês.
- Contexto longo: 8.192 tokens
- Aceita sequências muito mais longas do que a maioria dos modelos de embedding (geralmente limitados a 512 tokens), o que permite mais liberdade na escolha do tamanho dos trechos indexados.
- Três representações ao mesmo tempo
- Densa, lexical e multivetorial, produzidas em uma única passagem, sem custo computacional adicional segundo a BAAI.
- Licença MIT
- Pode ser usado em empresas sem restrições específicas; verifique sempre a ficha do modelo ao integrá-lo, pois a licença pode mudar de uma versão para outra.
- Nenhuma instrução a ser adicionada
- Diferentemente de outros modelos BGE mais antigos, o BGE-M3 não exige mais a inclusão de uma instrução nas requisições: basta usá-lo diretamente, o que simplifica a integração.
#Denso, lexical, multivetorial: para que serve
| Representação | O que ela captura | O que ela oferece |
|---|---|---|
| Dense | O texto reduzido a um único vetor que captura seu significado global | Busca semântica clássica |
| Lexical (esparsa) | Peso por termo do vocabulário, nulo a não ser para palavras presentes no texto | Encontra referências, siglas e nomes próprios que a busca semântica deixa passar, à maneira do BM25 |
| Multi-vecteur | Vários vetores por texto, no estilo de ColBERT | Uma reclassificação mais precisa dos melhores candidatos |
A vantagem é poder fazer busca híbrida sem precisar rodar dois modelos separados: a ficha oficial recomenda explicitamente a combinação de busca híbrida + reclassificação, com base nos pesos lexicais obtidos “sem custo adicional” ao mesmo tempo que o embedding denso. A parte lexical compensa precisamente as falhas da parte densa, e a parte multivetorial serve para reclassificar os cerca de vinte candidatos selecionados. Nem todas as bases vetoriais conseguem aproveitar as três saídas, mas a saída densa sozinha já basta para um uso convencional — aliás, essa é a configuração mais simples de implementar para começar, antes de adicionar a camada lexical se a precisão ainda for insuficiente.
#Usá-lo localmente
A forma mais rápida de testar o BGE-M3 localmente é usar o Ollama, que distribui uma versão quantizada do modelo sob o nome bge-m3:567m — 567 milhões de parâmetros, com um download de aproximadamente 1,2 GB e uma janela de contexto de 8.000 tokens anunciada na ficha do modelo. Trata-se de um modelo baseado em XLM-RoBERTa-large, cujo comprimento de contexto foi inicialmente ampliado para 8.192 tokens por um pré-treinamento dedicado (RetroMAE), antes de um ajuste fino unificado para as três tarefas de recuperação em uma única etapa de treinamento, em vez de três modelos separados para manter.
Para um pipeline RAG completo, apenas a saída densa pode ser usada diretamente pela maioria dos bancos de dados vetoriais padrão (Qdrant, Milvus, pgvector) sem configuração específica; as saídas lexical e multivetorial exigem um mecanismo capaz de combiná-las, como documentam, por exemplo, as integrações Milvus e Vespa citadas pela BAAI.
Em uma cadeia RAG clássica com um LLM local, BGE-M3 substitui simplesmente o modelo de embedding padrão: cada trecho de documento é codificado uma vez durante a indexação, a pergunta do usuário é codificada em cada requisição, e então os melhores trechos encontrados são enviados para o LLM (Qwen, Mistral, Llama…) carregado no Ollama ou no LM Studio. A escolha do modelo de embedding e a escolha do modelo de geração são duas decisões independentes: nada obriga a usar um modelo da mesma família para as duas etapas, e isso raramente acontece na prática.
#Verificar em seus próprios documentos
A indicação “mais de 100 idiomas” em uma ficha de produto não é uma garantia de qualidade uniforme: indica cobertura, não uma pontuação por idioma. O BAAI avalia o BGE-M3 no MIRACL (busca multilíngue) e no MLDR, um conjunto de dados de recuperação de documentos longos que abrange 13 idiomas e que o laboratório publicou especificamente para esse modelo, com o pipeline de avaliação correspondente disponível em acesso livre. Essas avaliações mostram uma tendência geral, medida em corpus de pesquisa padronizados; elas não substituem um teste no seu próprio corpus, no seu próprio domínio, com seu próprio vocabulário técnico e suas próprias formulações de perguntas.
- 01Formar uma pequena amostra representativaVinte a trinta documentos reais do corpus-alvo, com sua diversidade habitual de extensão e vocabulário, e não uma seleção escolhida a dedo.
- 02Escrever perguntas como seus usuários as fariamDez a vinte perguntas reais, incluindo perguntas que usam sinônimos ou formulação diferente da do documento original.
- 03Comparar dois ou três modelos na mesma amostraBGE-M3 em comparação com um modelo reconhecido para inglês e, se possível, outro modelo multilíngue. Anotar quantas vezes o trecho correto aparece nos três primeiros resultados.
- 04Decidir antes da importação em massaO teste leva meio dia; mudar de modelo após a indexação de um corpus completo exige recodificar tudo, como mencionado acima.
#Quanto custa
É um modelo de embedding mais pesado que os pequenos modelos de língua inglesa em voga: seus 567 milhões de parâmetros e seu download de 1,2 GB fazem dele um modelo de porte médio para a categoria, longe dos modelos com algumas dezenas de milhões de parâmetros que dominam os rankings de velocidade pura. Ele codifica mais lentamente e ocupa mais memória. Isso é perceptível na indexação inicial de um grande corpus; em uma pergunta isolada, a diferença é imperceptível diante do tempo de geração do modelo de linguagem que vem em seguida.
Outra consequência: seus vetores densos têm dimensão de 1.024, então o índice ocupa mais espaço do que modelos com 384 ou 768 dimensões. Em um milhão de passagens, a aritmética já não é desprezível, e é o momento de considerar as opções de compressão da sua base vetorial.
| Modelo | Dimensão | Comprimento máximo | Abrangência |
|---|---|---|---|
| BAAI/bge-m3 | 1 024 | 8 192 tokens | Multilíngue, três métodos de recuperação unificados |
| BAAI/bge-large-en-v1.5 | 1 024 | 512 tokens | Apenas em inglês |
| BAAI/bge-base-en-v1.5 | 768 | 512 tokens | Apenas em inglês, mais leve |
| BAAI/bge-small-en-v1.5 | 384 | 512 tokens | Apenas em inglês, o mais leve |
O contraste é nítido: com a mesma dimensão (1 024), o BGE-M3 aceita dezesseis vezes mais tokens por passagem que o bge-large-en-v1.5 e cobre mais de 100 idiomas, enquanto toda a família “en” da BAAI se limita ao inglês. Esse é o preço a pagar, em tamanho de download e tempo de codificação, para não ter que escolher um modelo diferente para cada idioma do corpus, nem manter vários índices separados conforme o idioma dos documentos recebidos.
#Quando escolhê-lo, quando dispensá-lo
| Situação | Escolha |
|---|---|
| Corpus francês ou multilíngue | BGE-M3 ou outro modelo realmente multilingue |
| Perguntas em francês sobre documentos em inglês | Um modelo multilíngue, obrigatoriamente |
| Corpus exclusivamente em inglês, prioridade à velocidade | Um pequeno modelo anglofone especializado |
| Trechos longos (acima de 512 tokens) que não queremos subdividir mais | BGE-M3, por sua capacidade de entrada de 8.192 tokens |
| Máquina com recursos muito limitados | Um modelo mais leve, mesmo que isso implique uma perda de relevância em francês |
- O panorama dos modelos de embedding para o francês
- Executar um modelo de embedding localmente
- Reclassificar os candidatos para aumentar a precisão
- Armazenar esses vetores no PostgreSQL com pgvector
- Fonte: ficha oficial BGE-M3 no Hugging Face
- Fonte: bge-m3 na biblioteca Ollama
- Fonte: repositório e código oficial BGE-M3 (FlagEmbedding)
#FAQ
O BGE-M3 é bom em francês?+
É possível fazer perguntas em francês sobre documentos em inglês?+
É necessária uma placa de vídeo?+
Para que servem suas três saídas?+
Quantos tokens o BGE-M3 aceita por trecho?+
Posso trocar de modelo mais tarde?+
O BGE-M3 é melhor que os modelos da OpenAI para o francês?+
Um comentário, um erro ou uma observação? Avise-nos; isso ajuda a melhorar o guia para todos.