Serviços
Contate-nos

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

Ekrem Sarı
Ekrem Sarı
atualizado em 3 jul. 2026

Avaliamos 14 modelos de embedding de código aberto, auto-hospedados em uma única H100, em mais de 500 consultas de recuperação curadas manualmente, abrangendo contratos legais, notas técnicas de suporte ao cliente e resumos médicos. NVIDIA Llama-Embed-Nemotron-8B lidera em precisão. Em custo, o EmbeddingGemma-300m do Google é aproximadamente 4x mais barato que o Nemotron, ao custo de uma pequena perda de precisão.

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

Loading Chart

Métricas explicadas

nDCG@3: Ganho cumulativo descontado normalizado no corte 3. Com um documento relevante por consulta, é 1 / log2(posição + 1) quando o documento alvo fica no top 3, 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 nDCG@3 como métrica principal porque pipelines de RAG em produção alimentam os 3 a 5 trechos principais ao LLM, e o viés de primazia faz a posição 1 importar desproporcionalmente.

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

Recall@10: Fração de consultas em que o documento alvo aparece no top 10.

MRR@10: Média da posição recíproca no corte 10. Alvo na posição 1 pontua 1,000, posição 2 pontua 0,500 e posição 10 pontua 0,100. Intenção semelhante ao nDCG@3, mas com penalidade de posição mais acentuada.

Acerto Top-1: Fração de consultas em que o documento relevante alvo é o único resultado no topo. 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 médio esconde 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 é quinto no MedRAG e nono no TechQA. nDCG@3 por domínio:

O BM25 é competitivo no MedRAG (0,7862, superando o PubMedBERT e o Granite multilíngue) e fraco no CUAD (0,5844, onde 11 dos 14 modelos densos o superam). Contratos legais contêm linguagem densa de entidades que recompensa a correspondência lexical. Em resumos médicos, os melhores 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.

Intervalos de confiança bootstrap de 95% por célula (modelo, domínio), incluindo um empate quádruplo no MedRAG no topo e uma sobreposição Harrier-Nemotron no CUAD que a estimativa pontual do ranking achata, sã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 RunPod community-cloud H100 80GB SXM5 a $2,99/hora. O tempo de relógio por modelo na passagem de 551 consultas e 3 corpora (~46,2M tokens no total) gera as seguintes estimativas de $/1M tokens:

A fórmula:

GPU $/hora = $2,99 (a taxa RunPod community H100 80GB SXM5 do pod que usamos). wall_seconds = tempo total de relógio de cada modelo na passagem de 551 consultas e 3 corpora. total_tokens ≈ 46,22M (soma de 3 corpora + 551 consultas, heurística de divisão 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 seu nível de custo (nenhuma outra linha custa menos e pontua mais): Granite-278m-multilingual na base da escada de custo, depois Granite-small-r2, EmbeddingGemma-300m, jina-v5-text-small e Nemotron-8B no topo da escada de qualidade. Os extremos abrangem 13x em custo ($0,0017/M a $0,0224/M) e 0,23 de nDCG@3 absoluto (0,6952 a 0,9249).

Especialistas de domínio vs generalistas

O PubMedBERT, ajustado em pares de título-resumo do PubMed, é a "ferramenta certa" óbvia para recuperação de RAG médico no PubMed. Ele pontua nDCG@3 = 0,7084 no MedRAG, o que fica 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 pela qual o especialista tem desempenho inferior é idade e receita. O PubMedBERT é um BERT de 110M de parâmetros de 2022, com mean pooling simétrico e sem prefixo de instrução. Os generalistas de 2024-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 lacuna arquitetural importa mais do que a correspondência de domínio: um ajuste fino de 4 anos não consegue acompanhar um recuperador ajustado por instrução da geração atual, mesmo no próprio corpus de treinamento do ajuste fino.

A regra do 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" não é mais 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

Nemotron-8B nDCG@3 MÉDIO = 0,9249. Por domínio, ele atinge 0,8602 no CUAD, 0,9515 no TechQA e 0,9629 no MedRAG. O resultado do 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 bootstrap são claramente separados. A base 8B Llama-3.1, ajustada por instrução para recuperação com um prefixo de consulta Instruct: …\nQuery: … e um prefixo simétrico do lado do documento, impulsiona uma vantagem de 0,04 de nDCG@3 absoluto sobre a próxima linha em cargas de trabalho de suporte a documentos longos.

Os dois domínios onde 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 onde ele não lidera: o Harrier-oss-v1-0.6b da Microsoft (0,8720) supera o Nemotron (0,8602) em contratos legais, apesar de ser 13x menor, embora os ICs se sobreponham e a liderança não seja estatisticamente separada neste tamanho de amostra.

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

O Microsoft Harrier-oss-v1-0.6b (lançado em 04/2026 com base Qwen3-0.6B e licença MIT) atinge nDCG@3 MÉDIO = 0,8911, quarto lugar geral. Ele supera o 12B Tencent KaLM-Gemma3 (0,8057, licença comunitária da Tencent), o 7B Salesforce SFR-Embedding-2_R 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 de nDCG@3 acima do Qwen3-Embedding-0.6B (0,8168), construído sobre a idêntica base Qwen3-0.6B. 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 vem com uma licença adequada para uso comercial sem restrições. SFR-2 (CC-BY-NC), Nemotron (NSCL-v1) e jina-v5 (CC-BY-NC) o superam na escada MÉDIA, mas todos os três são apenas para pesquisa ou não comerciais.

Um embedder especialista médico perde para o BM25

O PubMedBERT-base-embeddings da NeuML foi ajustado em pares de título-resumo do PubMed. É a "ferramenta certa" óbvia para um benchmark de RAG médico no PubMed. Ele pontua nDCG@3 = 0,7084 no MedRAG, o que é 0,078 absoluto abaixo da linha de base lexical BM25 (0,7862) no mesmo corpus. Os melhores generalistas de código aberto no MedRAG ficam muito 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 deve mudar como um comprador escolhe um especialista de domínio. O PubMedBERT é um BERT de 110M de 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 a mais.

A conclusão prática não é escolher um embedder especialista apenas pelo nome. Faça benchmark dele em suas próprias consultas antes de se comprometer.

Snowflake Arctic oscila 0,32 de nDCG@3 entre domínios

O snowflake-arctic-embed-l-v2.0 da Snowflake (568M, Apache-2.0, derivado bge-m3-retromae, multilíngue) pontua nDCG@3 = 0,5846 em contratos legais CUAD e 0,9053 em resumos médicos MedRAG. O mesmo modelo, mesma receita, mesmo formato de consulta, com uma oscilação de 0,32 ponto entre dois domínios. Outros modelos na lista oscilam menos: SFR-2 varia de 0,8421 a 0,9620 (diferença 0,12), Nemotron varia de 0,8602 a 0,9629 (diferença 0,10), 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 no BEIR, MIRACL e CLEF; contratos legais 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

Os modelos de embedding de código aberto são executados em dois backends neste benchmark: sentence-transformers (12 modelos) e vLLM (4 modelos). A divisão não é sobre qualidade; é sobre eficiência de 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 estilo Instruct (Instruct: Given a question, retrieve passages...\nQuery: <text>) enquanto o lado do documento é simples. O tipo de pooling varia: modelos derivados do BERT usam pooling CLS; 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 para qual combinação de prefixo e pooling é a 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
  • encode_query / encode_document integrados: EmbeddingGemma, KaLM-Gemma3, Nemotron-8B
  • task / prompt_name (parâmetro sentence-transformers): jina-v5, Snowflake Arctic, Harrier
  • Sem prefixo (simétrico): trio Granite, Conan, PubMedBERT, GIST

Tipo de pooling por arquitetura base:

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

Usar a receita errada degrada silenciosamente a qualidade da recuperação sem travar. 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 configuração incorreta, não um resultado).

Veja mais dos nossos benchmarks e insights baseados em dados na Pesquisa 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 legais CUAD (246 consultas, 509 contratos), notas técnicas de suporte ao cliente TechQA (151 consultas, 28000 notas técnicas da IBM), resumos de saúde MedRAG-PubMed (154 consultas, 50000 resumos). Total de 551 consultas.

A metodologia de construção do conjunto de dados é compartilhada com nosso benchmark de modelos de embedding em inglês anterior: Protocolo-A de geração de consultas por consenso de 3 LLMs (pool rotativo de redatores, avaliador fixo, dois validadores não redatores por tentativa), fixação de corpus por hash SHA-256, listas de permissão de tokens banidos por entidade por domínio para evitar atalhos lexicais do BM25, concordância entre avaliadores κ de Cohen reportada por par de validadores, ranks da linha de base BM25 sintetizados 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 sistemas de RAG em produção consomem); métricas secundárias nDCG@10, Recall@10, Recall@100, MRR@10, acerto Top-1.

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

  • GPU: 1 x NVIDIA H100 80GB SXM5 via RunPod community cloud
  • 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 de modelo 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, então o tokenizador do modelo trunca para seu comprimento máximo de sequência real.
  • 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. Renormalizamos para garantir paridade em toda a lista.
  • Chave de cache de embedding: inclui prefixo + task + prompt_name + max_seq + backend, para que uma troca de prefixo no meio da execução não possa carregar silenciosamente embeddings obsoletos.
  • Protocolo estatístico: 10K reamostragens bootstrap por célula (modelo, domínio, métrica), IC de 95% percentil, seed=2026.

Modelos testados

Ordenado por rank de nDCG@3 MÉDIO. Coluna backend: ST = sentence-transformers, vLLM = vLLM 0.19.

Resultados dos intervalos de confiança bootstrap de 95%

O quadro de líderes 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 em nível de consulta dentro da execução, reamostramos o vetor de rank por consulta para cada célula (modelo, domínio) 10.000 vezes com reposição (método percentil, seed=2026, tamanhos de amostra CUAD n=246, TechQA n=151, MedRAG n=154). IC bootstrap de 95% por domínio no nDCG@3:

Os ICs de fato mudam quais inversões os dados suportam. No CUAD, Harrier (0,8720, [0,836, 0,906]) e Nemotron (0,8602, [0,821, 0,897]) se sobrepõem, então a liderança do Harrier no CUAD não é claramente separada neste tamanho de amostra. No TechQA, Nemotron (0,9515, [0,923, 0,977]) e SFR-2 (0,9109, [0,869, 0,949]) não se sobrepõem, então a liderança do Nemotron no TechQA é 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 da sobreposição. A tendência central claramente coloca 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 em 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 entre meias-noites está planejada para a v2.1. Os vínculos mais próximos revelados pela tabela de IC (por exemplo, o empate quádruplo no MedRAG no topo, a sobreposição Harrier-Nemotron no CUAD, a inversão marginal PubMedBERT-vs-BM25) se beneficiariam mais da passagem de múltiplas execuções.

Fator de confusão do comprimento do contexto por modelo. Modelos com janelas de contexto de 512 tokens (Granite-278m-multilingual, 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 MedRAG (resumos longos).

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

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

Conclusão

O NVIDIA Llama-Embed-Nemotron-8B lidera com nDCG@3 MÉDIO = 0,9249 com vitórias estatisticamente separadas no TechQA e MedRAG. A escolha de código aberto mais bem classificada sob uma licença irrestrita (MIT) é o Microsoft Harrier-oss-v1-0.6b com MÉDIA de 0,8911. O Google EmbeddingGemma-300m roda a um custo aproximadamente 4x menor por 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 3 Julho 2026, em: https://aimultiple.com/open-source-embedding-models [Recurso on-line]

Sarı, E. (2026, 3 Julho). 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  = jul,
  howpublished    = {\url{https://aimultiple.com/open-source-embedding-models}},
  note   = {AIMultiple. Acessado em 3 Julho 2026}
}
Baixar todos os dados

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

Última atualização: 7 Julho 2026
Baixar
Ekrem Sarı
Ekrem Sarı
Pesquisador de IA
Ekrem é pesquisador de IA na AIMultiple, com foco em automação inteligente, GPUs, agentes de IA e frameworks RAG.
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