Serviços
Contate-nos

Benchmark de Modelos de Embedding de Código Aberto para RAG

We benchmarked 14 open-source embedding models, across 500+ manually curated retrieval queries spanning legal contracts, customer support tech notes, and medical abstracts.

Ekrem Sarı
Ekrem Sarı
atualizado em 10 ago. 2026
Loading Chart

NVIDIA Llama-Embed-Nemotron-8B lidera em precisão. Em custo, o EmbeddingGemma-300m do Google tem custo cerca de 4x menor que o Nemotron, com uma pequena perda de precisão.

Resultados do benchmark de modelos de embedding de código aberto

Métricas explicadas

nDCG@3: Ganho cumulativo descontado normalizado no ponto de corte 3. Com um documento relevante por consulta, é 1 / log2(posição + 1) quando o documento gold aparece entre os 3 primeiros, e 0 caso contrário. A posição 1 pontua 1.000, a posição 2 pontua 0.631 e a posição 3 pontua 0.500. Usamos o nDCG@3 como a métrica principal porque os pipelines de RAG em produção alimentam os 3 a 5 principais trechos ao LLM, e o viés de primazia faz com que a posição 1 tenha peso desproporcional.

nDCG@10: Mesma fórmula com ponto de corte 10.

Recall@10: Fração de consultas em que o documento gold aparece entre os 10 primeiros.

MRR@10: Ranking recíproco médio no ponto de corte 10. O gold na posição 1 pontua 1.000, a posição 2 pontua 0.500 e a posição 10 pontua 0.100. Intenção semelhante ao nDCG@3, mas com penalidade de posição mais acentuada.

Acerto no Top-1: Fração de consultas em que o documento relevante gold é o único resultado principal. A métrica mais rigorosa e a mais próxima de um fluxo de trabalho de consulta sem LLM.

Resultados de nDCG@3 por domínio

O ranking AVG oculta inversões de domínio. O Harrier vence no CUAD, mas fica em sétimo no TechQA. O SFR-2 fica em segundo no TechQA, mas apenas em quarto no CUAD. O KaLM-12B fica em quinto no MedRAG e nono no TechQA. nDCG@3 por domínio:

Loading Chart

O BM25 é competitivo no MedRAG (0.7862, superando o PubMedBERT e o Granite multilíngue) e fraco no CUAD (0.5844, onde 11 de 14 modelos densos o superam). Contratos jurídicos contêm linguagem densa de entidades que favorece a correspondência lexical. Em resumos médicos, os principais modelos densos (Nemotron 0.9629, SFR-2 0.9620, jina-v5 0.9523) superam o BM25 por 0.17 a 0.18 pontos absolutos de nDCG@3.

Os intervalos de confiança bootstrap de 95% por célula (modelo, domínio), incluindo um empate quádruplo no topo do MedRAG e uma sobreposição Harrier-Nemotron no CUAD que a classificação por estimativa pontual achata, estão reportados na seção de metodologia do benchmark.

Custo por milhão de tokens

O custo auto-hospedado é amortizado pela GPU: a taxa horária dividida pelos tokens processados por hora. O pod que usamos foi um H100 80GB SXM5 da nuvem comunitária RunPod a $2,99/hr. O tempo de execução por modelo na passagem de 551 consultas e 3 corpora (~46.2M tokens no total) produz as seguintes estimativas de $/1M tokens:

A fórmula:

GPU $/hr = $2,99 (a taxa RunPod community H100 80GB SXM5 do pod que usamos). wall_seconds = tempo de execução total de cada modelo na passagem de 551 consultas e 3 corpora. total_tokens ≈ 46.22M (soma de 3 corpora + 551 consultas, heurística de contagem de caracteres ÷ 4).

Exemplo prático, Nemotron-8B: ($2,99 / 3600) × (1247.8 × 1.000.000 / 46.220.000) = $0,0224 por 1M tokens.

Cinco modelos lideram sua faixa de custo (nenhuma outra linha custa menos e pontua mais ao mesmo tempo): Granite-278m-multilingual na base da escala de custo, depois Granite-small-r2, EmbeddingGemma-300m, jina-v5-text-small e Nemotron-8B no topo da escala de qualidade. Os extremos variam 13x em custo (de $0,0017/M a $0,0224/M) e 0.23 nDCG@3 absolutos (de 0.6952 a 0.9249).

Especialistas de domínio vs generalistas

O PubMedBERT, fine-tuned em pares título-resumo do PubMed, é a óbvia “ferramenta certa” para recuperação de RAG médica no PubMed. Ele pontua nDCG@3 = 0.7084 no MedRAG, o que está abaixo da linha de base lexical BM25 (0.7862) no mesmo corpus. Generalistas modernos de código aberto o superam por 0.22 a 0.25 pontos absolutos em seu domínio de dados de treinamento:

A razão de o especialista ter desempenho inferior é idade e receita. O PubMedBERT é um BERT de 110M parâmetros de 2022, com mean pooling simétrico e sem prefixo de instrução. Os generalistas de 2024 a 2026 são construídos sobre backbones maiores, prefixos assimétricos de consulta e documento e objetivos de recuperação ajustados por instrução. A diferença arquitetural importa mais do que a correspondência de domínio: um fine-tune de 4 anos não consegue acompanhar um recuperador atual ajustado por instrução, mesmo no próprio corpus de treinamento do fine-tune.

A regra para o comprador é testar um especialista de domínio contra um generalista moderno em consultas representativas antes de implantá-lo. A suposição de que “o especialista vencerá em seu domínio” já não é segura para modelos de embedding de código aberto em 2026.

Deixe nossa equipe automatizar um dos seus processos de negócio com agentes de IA, gratuitamente.
Automatizar um processo

Descobertas do benchmark de embedding de código aberto

A liderança do Nemotron-8B no TechQA está estatisticamente separada do segundo lugar

AVG nDCG@3 do Nemotron-8B = 0.9249. Por domínio, ele fica em 0.8602 no CUAD, 0.9515 no TechQA e 0.9629 no MedRAG. O resultado no TechQA (0.9515 0.923, 0.977) não se sobrepõe ao segundo colocado SFR-Embedding-2_R (0.9109 0.869, 0.949). Os ICs de bootstrap são claramente separáveis. A base 8B Llama-3.1, ajustada por instrução para recuperação com prefixo do lado da consulta Instruct: …\nQuery: … e prefixo simétrico do lado do documento, gera uma vantagem absoluta de 0.04 em nDCG@3 sobre a linha seguinte em cargas de trabalho de suporte a documentos longos.

Os dois domínios em que o Nemotron vence de forma absoluta (TechQA, MedRAG) são os corpora de documentos longos onde a assimetria de prefixo de instrução mais importa. O CUAD é o único domínio em que ele não lidera: o Harrier-oss-v1-0.6b da Microsoft (0.8720) supera o Nemotron (0.8602) em contratos jurídicos apesar de ser 13x menor, embora os ICs se sobreponham e a liderança não esteja estatisticamente separada neste tamanho de amostra.

Um modelo Harrier de 0.6B da Microsoft supera todos os modelos abertos com menos de 7B parâmetros

O Microsoft Harrier-oss-v1-0.6b (lançado em 2026-04 com base Qwen3-0.6B e licença MIT) fica com AVG nDCG@3 = 0.8911, quarto no geral. Ele supera o KaLM-Gemma3 de 12B da Tencent (0.8057, licença comunitária Tencent), o SFR-Embedding-2_R de 7B da Salesforce no CUAD (0.8421 vs Harrier 0.8720) e o EmbeddingGemma-300m do Google (0.8706). Em uma comparação de mesma arquitetura, o Harrier-0.6b (0.8911) fica 0.074 nDCG@3 acima do Qwen3-Embedding-0.6B (0.8168), construído sobre a base Qwen3-0.6B idêntica. O corpus de treinamento e a receita de instrução geraram a diferença, não a contagem de parâmetros.

Para compradores, o Harrier é a linha de código aberto mais bem classificada que é fornecida com uma licença adequada para uso comercial sem restrições. O SFR-2 (CC-BY-NC), o Nemotron (NSCL-v1) e o jina-v5 (CC-BY-NC) o superam na escala AVG, mas os três são somente para pesquisa ou não comerciais.

Um embedder especializado em medicina perde para o BM25

O PubMedBERT-base-embeddings da NeuML foi fine-tuned em pares título-resumo do PubMed. É a óbvia “ferramenta certa” para um benchmark de RAG médico no PubMed. Pontua nDCG@3 = 0.7084 no MedRAG, o que está 0.078 absoluto abaixo da linha de base lexical BM25 (0.7862) no mesmo corpus. Os principais generalistas de código aberto no MedRAG ficam bem acima 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 é a inversão que deveria mudar como um comprador escolhe um especialista de domínio. O PubMedBERT é um BERT de 110M parâmetros de 2022, com mean pooling simétrico e sem prefixo de instrução. O campo generalista de 2024 a 2026 é construído sobre backbones maiores, prefixos assimétricos de consulta e documento e objetivos de recuperação ajustados por instrução. Em consultas do MedRAG que já incluem vocabulário médico, a correspondência lexical do BM25 é naturalmente forte, e a especialização do PubMedBERT não acrescenta nada além disso.

A conclusão prática é não escolher um embedder especialista apenas pelo nome. Avalie-o em suas próprias consultas antes de se comprometer.

O Snowflake Arctic oscila 0.32 nDCG@3 entre domínios

O snowflake-arctic-embed-l-v2.0 da Snowflake (568M, Apache-2.0, derivado do bge-m3-retromae, multilíngue) pontua nDCG@3 = 0.5846 em contratos jurídicos do CUAD e 0.9053 em resumos médicos do MedRAG. O mesmo modelo, a mesma receita, o mesmo formato de consulta, com uma oscilação de 0.32 ponto entre dois domínios. Outros modelos na lista oscilam menos: o SFR-2 varia de 0.8421 a 0.9620 (diferença 0.12), o Nemotron varia de 0.8602 a 0.9629 (diferença 0.10), o Harrier varia de 0.8408 a 0.9605 (diferença 0.12).

O mecanismo é a composição dos dados de treinamento. O Arctic foi ajustado em BEIR, MIRACL e CLEF; contratos jurídicos não estão representados. Para uma carga de trabalho de recuperação vertical, os dados de treinamento do domínio importam mais do que a contagem de parâmetros ou o comprimento do contexto.

Como funciona a inferência de embedding de código aberto

Modelos de embedding de código aberto rodam em dois backends neste benchmark: sentence-transformers (12 modelos) e vLLM (4 modelos). A divisão não tem a ver com qualidade; tem a ver com eficiência em tempo de execução em modelos de 8B ou maiores, onde o loop de inferência Python padrão do sentence-transformers é lento demais para ser viável.

A receita por modelo importa mais do que a escolha do backend. Modelos de recuperação modernos usam prefixos assimétricos: o lado da consulta é envolvido em um prompt no estilo Instruct (Instruct: Given a question, retrieve passages...\nQuery: <text>) enquanto o lado do documento fica simples. O tipo de pooling varia: modelos derivados de BERT usam CLS pooling; modelos derivados de LLM (Llama, Mistral, Qwen3, base Gemma3) usam pooling do último token; modelos multilíngues frequentemente usam mean pooling. O cartão HuggingFace de cada modelo é a fonte da verdade sobre qual combinação de prefixo e pooling é correta.

Camada de backend:

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

Padrões de prefixo assimétrico observados:

  • Instruct + Query/Document: SFR-2, KaLM-Gemma3, Nemotron-8B, Qwen3-Embedding
  • Built-in encode_query / encode_document: EmbeddingGemma, KaLM-Gemma3, Nemotron-8B
  • task / prompt_name (parâmetro do sentence-transformers): jina-v5, Snowflake Arctic, Harrier
  • Sem prefixo (simétrico): trio Granite, Conan, PubMedBERT, GIST

Tipo de pooling por arquitetura base:

  • CLS pooling: trio Granite r2, Snowflake Arctic
  • Pooling do último token: Nemotron, KaLM-Gemma3, SFR-2, jina-v5, Qwen3-Embedding, Harrier
  • Pooling médio: EmbeddingGemma, Granite-multilingual, Conan, PubMedBERT, GIST

Usar a receita errada degrada silenciosamente a qualidade da recuperação sem gerar falhas. Qualquer benchmark de embedders de código aberto deve incluir um piso de sanidade (Recall@10 abaixo de 0.5 em todos os domínios para qualquer modelo é um sinal de alerta de má configuração, não um resultado).

Não perca os nossos benchmarks e insights baseados em dados. O botão abre o Google; selecionar a AIMultiple confirma que deseja ver a AIMultiple com mais frequência nos resultados de pesquisa do Google.
GoogleAdicionar como fonte preferencial

Metodologia do benchmark de modelos de embedding de código aberto

Três domínios de recuperação foram avaliados: contratos jurídicos do CUAD (246 consultas, 509 contratos), notas técnicas de suporte ao cliente do TechQA (151 consultas, 28000 notas técnicas IBM), resumos de saúde do MedRAG-PubMed (154 consultas, 50000 resumos). Total de 551 consultas.

A metodologia de construção do dataset é compartilhada com nosso benchmark de modelos de embedding em inglês: geração de consultas por consenso de 3-LLM do Protocolo A (pool rotativo de redatores, avaliador fixo, dois validadores não redatores por tentativa), fixação do corpus por hash SHA-256, whitelists de tokens de entidades banidas por domínio para evitar atalhos lexicais do BM25, concordância interavaliadores κ de Cohen relatada por par de validadores, classificações de linha de base BM25 sintetizadas a partir do campo bm25_rank_at_target já presente em cada JSON de consulta (equivalente ao Pyserini). Métrica primária nDCG@3 (realista para RAG, o que os sistemas de RAG em produção consomem); métricas secundárias nDCG@10, Recall@10, Recall@100, MRR@10, Top-1 hit.

Especificações específicas de código aberto:

  • GPU: 1 x NVIDIA H100 80GB SXM5 via nuvem comunitária RunPod
  • Modelo de 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: caminho primário do cartão HF. ST para 12 modelos, vLLM para Nemotron-8B, KaLM-Gemma3-12B, jina-v5-text-small.
  • Segmentação por modelo: truncamento em nível de caractere em max_seq_length x 4 caracteres por token; depois o tokenizador do modelo trunca até seu comprimento máximo real de sequência.
  • Recuperação assimétrica: todo modelo que a suporta recebe o prefixo de consulta e documento documentado no cartão HF. Sem prefixo é o padrão documentado para alguns.
  • Normalização L2: aplicada uniformemente após o pooling. Alguns modelos fazem isso internamente. Nós renormalizamos para garantir paridade em toda a lista.
  • Chave de cache de embedding: inclui prefixo + tarefa + prompt_name + max_seq + backend, para que uma troca de prefixo durante a execução não possa carregar embeddings obsoletos silenciosamente.
  • Protocolo estatístico: 10K reamostragens bootstrap por célula (modelo, domínio, métrica), IC percentil de 95%, seed=2026.

Modelos testados

Ordenado pela classificação AVG nDCG@3. Coluna de backend: ST = sentence-transformers, vLLM = vLLM 0.19.

Resultados dos intervalos de confiança bootstrap de 95%

O leaderboard completo acima é de execução única por célula (modelo, domínio). A variância de inicialização do modelo entre sessões não é medida. Para capturar a variância no nível de consulta dentro da execução, reamostramos o vetor de classificação por consulta para cada célula (modelo, domínio) 10.000 vezes com reposição (método percentil, seed=2026, tamanhos amostrais CUAD n=246, TechQA n=151, MedRAG n=154). IC bootstrap de 95% por domínio no nDCG@3:

Os ICs mudam quais inversões os dados suportam. No CUAD, o Harrier (0.8720, [0.836, 0.906]) e o Nemotron (0.8602, [0.821, 0.897]) se sobrepõem, portanto a liderança do Harrier no CUAD não é claramente separável neste tamanho de amostra. No TechQA, o Nemotron (0.9515, [0.923, 0.977]) e o SFR-2 (0.9109, [0.869, 0.949]) não se sobrepõem, portanto a liderança do Nemotron no TechQA está estatisticamente separada. No MedRAG, os quatro primeiros (Nemotron 0.9629, SFR-2 0.9620, Harrier 0.9605, jina-v5 0.9523) estão dentro dos ICs uns dos outros e formam um empate estatístico quádruplo. A inversão PubMedBERT-abaixo-do-BM25 no MedRAG (0.7084 [0.641, 0.772] vs BM25 0.7862) está na margem de sobreposição. A tendência central coloca claramente o especialista abaixo do BM25, mas uma passagem de 3 execuções entre sessões é necessária para resolvê-la como separada em vez de sobreposta.

Limitações

Execução única por célula (modelo, domínio). A tabela de IC bootstrap acima captura a variância no nível de consulta dentro da execução (10K reamostragens, método percentil, seed=2026), mas a variância de inicialização do modelo entre sessões não é medida. Uma passagem de 3 execuções ao longo de sessões diferentes está planejada para a v2.1. Os empates mais próximos revelados pela tabela de IC (por exemplo, o empate quádruplo no topo do MedRAG, a sobreposição Harrier-Nemotron no CUAD, a inversão marginal PubMedBERT vs BM25) se beneficiariam mais da passagem com múltiplas execuções.

Confusão do comprimento de contexto por modelo. Modelos com janelas de contexto de 512 tokens (Granite-278m-multilíngue, PubMedBERT, Conan, GIST) veem apenas os primeiros ~2K caracteres de cada documento. Modelos com contexto de 8K ou 32K (Nemotron, KaLM-12B, jina-v5, Harrier, Granite r2 english) veem o documento completo. Isso favorece modelos de contexto longo no TechQA (notas técnicas longas) e no MedRAG (resumos longos).

Risco de contaminação por dados de treinamento no MedRAG. Vários dos modelos avaliados foram treinados em dados derivados do PubMed (PubMedBERT por definição, possivelmente Granite-278m-multilíngue, possivelmente base Qwen3). Parte do ganho de nDCG@3 no MedRAG pode refletir sobreposição de dados de treinamento, e não qualidade de recuperação.

O Conan-v1 é treinado em chinês. Incluí-lo em domínios somente em inglês é um ponto de dados instrutivo sobre incompatibilidade de idioma, em vez de uma comparação justa sobre qualidade de recuperação em inglês. Esperamos desempenho inferior em relação a pares treinados em inglês, e é isso que os dados mostram.

Conclusão

NVIDIA Llama-Embed-Nemotron-8B lidera com AVG nDCG@3 = 0.9249 e vitórias estatisticamente separadas no TechQA e no MedRAG. A escolha de código aberto mais bem classificada sob uma licença irrestrita (MIT) é o Microsoft Harrier-oss-v1-0.6b com AVG 0.8911. O Google EmbeddingGemma-300m roda com custo aproximadamente 4x menor, com uma pequena perda de precisão.

Leitura adicional

Explore outros benchmarks de RAG, como:

Cite este benchmark

Escolha o formato adequado ao local onde você vai publicar. Colar a versão com link no seu CMS preserva o backlink.

Ekrem Sarı (2026) - "Benchmark de Modelos de Embedding de Código Aberto para RAG". Publicado on-line em AIMultiple.com. Acessado em 10 Agosto 2026, em: https://aimultiple.com/open-source-embedding-models [Recurso on-line]

Sarı, E. (2026, 10 Agosto). Benchmark de Modelos de Embedding de Código Aberto para RAG. AIMultiple. https://aimultiple.com/open-source-embedding-models

@misc{sari2026,
  author = {Sarı, Ekrem},
  title  = {{Benchmark de Modelos de Embedding de Código Aberto para RAG}},
  year   = {2026},
  month  = aug,
  howpublished    = {\url{https://aimultiple.com/open-source-embedding-models}},
  note   = {AIMultiple. Acessado em 10 Agosto 2026}
}
Baixar todos os dados

Resultados e carimbos de data/hora de 44 pontos de dados. Baixe os dados utilizados neste artigo como um arquivo ZIP contendo 3 arquivos CSV e um README.

Última atualização: 17 Agosto 2026
Baixar

Registro de alterações

4 atualizações
  1. 2026

    O benchmark Top-K de 16 modelos sobre avaliações da Amazon foi substituído por um de 14 modelos com nDCG@3 e custos em CUAD, TechQA e MedRAG.

  2. Adicionada Licença e uso comercial à visão geral dos modelos de incorporação de código aberto.

  3. O benchmark foi expandido para incluir cinco modelos adicionais de código aberto.

  4. Hardware, tamanho do lote e precisão atualizados na configuração de avaliação.

Ekrem Sarı
Ekrem Sarı
Pesquisador de IA
Ekrem é Pesquisador de IA e Cientista de Dados na AIMultiple. Ele projeta e executa benchmarks práticos para sistemas de IA e LLM.
Ver perfil completo

Seja o primeiro a comentar

Seu endereço de e-mail não será publicado. Todos os campos são obrigatórios. Os comentários são deixados em seu idioma original.

0/450