meetkai:qwen3-embedding-8b (4.096 dimensões).
Resumo dos resultados
Uma consulta de recuperação passa por duas etapas: inferência de embedding (convertendo o texto da consulta em um vetor) e busca no banco de dados (encontrando os vetores mais próximos no store). O tempo total de resposta é a soma de ambas.| Métrica | Text Store | Tables |
|---|---|---|
| NDCG@10 | 72.4 | 71.8 |
| Recall@10 | 83.1 | 82.6 |
| MRR@10 | 68.9 | 68.3 |
| Latência | Text Store | Tables |
|---|---|---|
| Inferência de embedding (por consulta) | 12 ms | 12 ms |
| Busca no banco p50 (lado do servidor) | 8 ms | 6 ms |
| Busca no banco p95 (lado do servidor) | 14 ms | 11 ms |
| Resposta ponta a ponta p50 (rede + embed + busca) | 45 ms | 38 ms |
| Resposta ponta a ponta p95 (rede + embed + busca) | 82 ms | 71 ms |
| Throughput de indexação (5.183 docs) | 182 docs/seg | 166 docs/seg |
search_time_ms no corpo da resposta) e exclui overhead de rede e inferência de embedding. O tempo de resposta ponta a ponta inclui tudo que um cliente mediria.
O restante deste guia mostra como esses números são produzidos, passo a passo.
Configuração
Instale as dependências e carregue as variáveis de ambiente.Passo 1 — Carregar o dataset SciFact
Baixe o corpus, as consultas e os julgamentos de relevância do HuggingFace.Saída esperada
Saída esperada
Passo 2 — Computar embeddings
Gere embeddings para todos os documentos e consultas usandomeetkai:qwen3-embedding-8b.
Processe em lotes para lidar com o volume.
Saída esperada
Saída esperada
Passo 3 — Benchmark do Text Store
Indexe todos os 5.183 documentos e depois execute todas as 300 consultas. Meça o throughput de indexação e a latência de busca.Indexar documentos
Saída esperada
Saída esperada
Executar consultas e medir latência
Cada requisição de busca retorna um camposearch_time_ms — a duração da busca no banco de dados do lado do servidor, excluindo a ida e volta pela rede e qualquer processamento upstream.
Medimos tanto esse tempo do lado do servidor quanto o tempo de resposta ponta a ponta completo observado pelo cliente.
Saída esperada
Saída esperada
Passo 4 — Benchmark da API Tables
Indexe o mesmo corpus em um store Tables com esquema explícito e índice vetorial, depois execute as mesmas consultas.Criar tabela e indexar documentos
Saída esperada
Saída esperada
Executar consultas com busca vetorial
A API Tables também retornasearchTimeMs — a duração da busca no banco de dados do lado do servidor.
Saída esperada
Saída esperada
Passo 5 — Calcular métricas de precisão
Avalie a qualidade de recuperação usando métricas padrão do BEIR: NDCG@10, Recall@10 e MRR@10.Imprimir resultados
Saída esperada
Saída esperada
- Inferência de embedding é a mesma para ambos os backends — executa o mesmo modelo.
- Busca no banco é o tempo puro do banco de dados reportado pelo servidor (
search_time_ms/searchTimeMs). Aqui é onde Text Store e Tables diferem — Text Store executa busca híbrida (vetorial + FTS), Tables executa busca vetorial pura. - Resposta ponta a ponta inclui ida e volta pela rede, overhead do gateway e busca no banco de dados. A diferença entre ponta a ponta e busca no banco é o overhead.
Passo 6 — Limpeza
Interpretando os resultados
Contexto de precisão
O leaderboard do BEIR reporta NDCG@10 no SciFact como referência:| Modelo | NDCG@10 |
|---|---|
| BM25 (baseline lexical) | ~66.5 |
| text-embedding-ada-002 | ~70–73 |
| text-embedding-3-large | ~74–76 |
| Estado da arte (2024) | ~78–80 |
O que observar
- NDCG@10 é a métrica principal. Ela penaliza documentos relevantes que aparecem em posições mais baixas do ranking.
- Recall@10 mede quantos documentos relevantes aparecem no top 10 — importante para pipelines de RAG onde a geração downstream depende da completude da recuperação.
- MRR@10 mede quão rapidamente o primeiro resultado relevante aparece — importante para busca voltada ao usuário.
- Text Store vs Tables: Text Store adiciona busca híbrida (vetorial + palavras-chave) automaticamente. Tables oferece controle explícito sobre tipo de índice, métrica de distância e filtros.
Interpretando o detalhamento de latência
Uma consulta de recuperação tem três componentes de latência:- Inferência de embedding — o tempo para converter o texto da consulta em um vetor. Isso é inferência de modelo e é igual independentemente do backend de armazenamento usado.
- Busca no banco de dados — o tempo que o motor de busca gasta encontrando vizinhos mais próximos. Reportado pelo servidor em
search_time_ms(Text Store) ousearchTimeMs(Tables). Este é o tempo puro de busca vetorial/híbrida sem overhead de rede. - Resposta ponta a ponta — o que o cliente observa: ida e volta pela rede + roteamento do gateway + busca no banco de dados.
Comparação de tecnologias de armazenamento
| Text Store | Tables | |
|---|---|---|
| Configuração | Zero config — apenas nome + dimensão | Esquema explícito, tipos de campo, índices |
| Busca | Híbrida (vetorial + texto completo) automática | Composição de operações: vector_search, FTS, filter |
| Ideal para | Prototipagem rápida de RAG, busca híbrida pronta para uso | Esquemas personalizados, busca filtrada, estratégias multi-índice |
| Tipos de índice | Automático | IVF_FLAT, IVF_PQ, IVF_HNSW_PQ, IVF_HNSW_SQ |
Veja também
- Indexar e pesquisar texto para a referência completa das APIs Text Store e Tables.
- Arquivos e vector stores para a API de vector store compatível com OpenAI.
- Avaliação de GraphRAG para benchmark de recuperação multi-hop.