meetkai:functionary-pt (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 repositório). O tempo total de resposta é a soma de ambos.| 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 |
| Vazão de indexação (5.183 docs) | 182 docs/seg | 166 docs/seg |
search_time_ms no corpo da resposta) e exclui a sobrecarga de rede e a inferência de embedding. O tempo de resposta ponta a ponta inclui tudo o 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 conjunto de dados SciFact
Baixe o corpus, as consultas e os julgamentos de relevância do HuggingFace.Saída esperada
Saída esperada
Passo 2 — Calcular embeddings
Gere embeddings para todos os documentos e consultas usandomeetkai:functionary-pt.
Processe em lotes para lidar com o volume.
Saída esperada
Saída esperada
Passo 3 — Avaliar o Text Store
Indexe todos os 5.183 documentos e execute todas as 300 consultas. Meça a vazão 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 do lado do servidor, excluindo o tempo de ida e volta da rede e qualquer processamento upstream.
Medimos tanto esse tempo do lado do servidor quanto o tempo total ponta a ponta observado pelo cliente.
Saída esperada
Saída esperada
Passo 4 — Avaliar a API Tables
Indexe o mesmo corpus em um repositório 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 do lado do servidor.
Saída esperada
Saída esperada
Passo 5 — Calcular métricas de precisão
Avalie a qualidade da 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 é igual para ambos os backends — utiliza o mesmo modelo.
- Busca no BD é o tempo puro de banco de dados reportado pelo servidor (
search_time_ms/searchTimeMs). Aqui é onde Text Store e Tables diferem — Text Store executa busca híbrida (vetor + FTS), Tables executa busca vetorial pura. - Resposta ponta a ponta inclui ida e volta de rede, sobrecarga do gateway e busca no banco. A diferença entre ponta a ponta e busca no BD é a sobrecarga.
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 principal métrica. Penaliza documentos relevantes que aparecem em posições inferiores.
- Recall@10 mede quantos documentos relevantes aparecem entre os 10 primeiros — importante para pipelines RAG onde a geração depende da completude da recuperação.
- MRR@10 mede quão rapidamente o primeiro resultado relevante aparece — importante para buscas voltadas ao usuário.
- Text Store vs Tables: Text Store adiciona busca híbrida (vetor + palavra-chave) automaticamente. Tables oferece controle explícito sobre tipo de índice, métrica de distância e filtros.
Lendo a quebra de latência
Uma consulta de recuperação tem três componentes de latência:- Inferência de embedding — tempo para converter o texto da consulta em um vetor. Isso é inferência de modelo e é igual independentemente do backend de armazenamento.
- Busca no banco de dados — tempo que o mecanismo de busca leva para encontrar os vizinhos mais próximos. Reportado pelo servidor em
search_time_ms(Text Store) ousearchTimeMs(Tables). É o tempo puro de busca vetorial/híbrida sem sobrecarga de rede. - Resposta ponta a ponta — o que o cliente observa: ida e volta de rede + roteamento do gateway + busca no banco.
Comparação das tecnologias de armazenamento
| Text Store | Tables | |
|---|---|---|
| Configuração | Zero config — apenas nome + dimensão | Esquema explícito, tipos de campo, índices |
| Busca | Híbrida (vetor + texto livre) automática | Compor operações: vector_search, FTS, filtro |
| Melhor para | Prototipagem rápida de RAG, busca híbrida pronta | Esquemas customizados, 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 buscar texto para a referência completa das APIs Text Store e Tables.
- Arquivos e repositórios vetoriais para a API de repositório vetorial compatível com OpenAI.
- Avaliação GraphRAG para benchmarking de recuperação multi-hop.