Por que você não pode confiar nos benchmarks de bancos de dados vetoriais
Autoria: Better Stack · Assistir no YouTube
Vídeo de autoria do canal indicado, não da IANIA; todos os direitos pertencem ao criador. Transcrição, resumo e tradução gerados automaticamente; o conteúdo no idioma original é preservado na versão em idioma original.
Idioma original: inglês
Vídeo original: Why You Can’t Trust Vector Database Benchmarks · Canal: Better Stack · 02:04 · Assistir no YouTube
Tópicos: Avaliação e benchmarks de IA, Dados, bancos de dados e embeddings, RAG, busca e recuperação de informação
Comparar bancos de dados vetoriais é difícil porque os benchmarks públicos muitas vezes usam atalhos e podem apresentar resultados incompletos. Para medir recall com precisão, é necessário conhecer os vizinhos mais próximos exatos, algo que exige um volume enorme de cálculos em conjuntos de dados grandes. O vídeo apresenta um teste com uma parte de um conjunto de 10 bilhões de vetores criado pela Qdrant e compara Qdrant, Milvus, Elasticsearch e PGVector. A conclusão é que os números dos benchmarks não contam toda a história: é importante testar as opções por conta própria e avaliar os resultados com ceticismo.
Pontos-chave
Seção intitulada “Pontos-chave”- Benchmarks publicados por fornecedores podem favorecer seus próprios produtos, mas isso não significa necessariamente que os fornecedores estejam mentindo.
- Medir recall exige saber quais são os vizinhos mais próximos verdadeiros de cada consulta.
- Calcular os vizinhos exatos em um conjunto de 10 bilhões de vetores e 120 mil consultas envolve mais de um quadrilhão de cálculos de distância.
- A Qdrant produziu um conjunto de dados de 10 bilhões de vetores usando uma grande quantidade de GPU compute.
- O teste apresentado usou apenas uma parte do conjunto de dados, que ocupa 24 terabytes.
- No teste, o Elasticsearch não ultrapassou 95% de precisão, enquanto Qdrant e Milvus chegaram a 98%.
- O Elasticsearch foi o mais rápido para obter resultados aproximados; a Qdrant combinou rapidez com os resultados mais precisos entre os mecanismos testados.
- A existência de um conjunto grande o bastante permite comparar bancos de dados vetoriais com maior precisão, mas ainda é importante testar cada opção por conta própria.
Capítulos
Seção intitulada “Capítulos”| Início | Capítulo | Resumo |
|---|---|---|
| 00:00 | Por que benchmarks de busca vetorial são difíceis | Benchmarks de fornecedores apresentam resultados próprios, e medir busca vetorial de forma confiável é um desafio. |
| 00:30 | O custo de calcular o recall exato | Para avaliar o recall, é preciso conhecer os vizinhos verdadeiros, o que exige cálculos em escala extraordinária. |
| 01:02 | Comparação entre quatro mecanismos | Um teste com uma parte do conjunto de dados compara Qdrant, Milvus, Elasticsearch e PGVector em precisão e velocidade. |
| 01:33 | Teste os resultados por conta própria | O vídeo destaca o valor do conjunto de dados, alerta contra aceitar benchmarks de fornecedores sem ceticismo e recomenda testes próprios. |
Citações
Seção intitulada “Citações”Fazer benchmarking de busca vetorial, honestamente, é genuinamente difícil. — 00:00
Alguém precisa ter calculado primeiro os vizinhos mais próximos verdadeiros — não aproximadamente, mas exatamente. — 00:30
O Elasticsearch não passa de 95% de precisão, por mais que você force. — 01:02
Devemos testar por conta própria para chegar à verdade dos fatos. — 01:33
Conceitos e entidades
Seção intitulada “Conceitos e entidades”- vector database (conceito): Banco de dados usado para armazenar e pesquisar vetores, comparado no vídeo por meio de benchmarks.
- recall (conceito): Métrica que indica quantos dos vizinhos mais próximos verdadeiros de uma consulta o mecanismo retorna.
- benchmark (conceito): Teste usado para comparar o desempenho de sistemas, cuja realização confiável para busca vetorial é descrita como difícil.
- Qdrant (ferramenta): Mecanismo de banco de dados vetorial que criou o conjunto de dados de 10 bilhões de vetores e participou da comparação.
- Milvus (ferramenta): Mecanismo de banco de dados vetorial que chegou a 98% de precisão no teste apresentado.
- Elasticsearch (ferramenta): Mecanismo testado que, segundo o vídeo, não passou de 95% de precisão.
- pgvector (ferramenta): Mecanismo incluído na comparação com Qdrant, Milvus e Elasticsearch.
Tradução completa (pt-BR)
Seção intitulada “Tradução completa (pt-BR)”00:00 Se você está procurando um banco de dados vetorial confiável para o seu projeto, escolher um é muito difícil. E isso acontece porque cada fornecedor tem uma página de benchmark, e todos mostram que estão vencendo seus próprios benchmarks. Isso não significa necessariamente que todos estejam mentindo, mas sim que, sinceramente, fazer benchmarks de busca vetorial é realmente difícil. E quase todos os benchmarks públicos tomam alguns atalhos e produzem resultados incompletos. Vamos analisar a revocação, por exemplo. A revocação mede o seguinte: entre os vizinhos mais próximos reais de uma determinada consulta, quantos o mecanismo realmente me retorna? Então, para medir
00:30 a revocação, você precisa saber qual é a resposta correta, o que significa que alguém precisa ter calculado primeiro os verdadeiros vizinhos mais próximos — não aproximadamente, mas exatamente. Mas, com 10 bilhões de vetores e 120 mil consultas, são mais de um quatrilhão de cálculos de distância, 10 elevado à 15ª potência. E é exatamente por isso que ninguém tinha feito isso antes. Mas a Qdrant foi lá e fez o trabalho caro. Ela gastou muito processamento de GPU para produzir esse enorme conjunto de dados de 10 bilhões de vetores. Então, testei essa cadeia de ferramentas por conta própria, embora apenas com uma parte do conjunto de dados inteiro
01:02 porque 10 bilhões de vetores ocupam 24 terabytes, e meu laptop simplesmente não tem tanto espaço. Então, testei quatro mecanismos: Qdrant, Milvus, Elasticsearch e PGVector. Mas veja até onde cada mecanismo chega. O Elasticsearch não consegue passar de 95% de precisão, por mais que você tente. Já Qdrant e Milvus chegam a 98%. Portanto, eles são bons em coisas diferentes. O Elasticsearch é a maneira mais rápida de obter uma resposta aproximadamente correta, mas Qdrant é o único do grupo que é rápido e ainda fornece os resultados mais precisos. Então, a principal conclusão aqui não são os números que mostrei na
01:33 demonstração, mas sim o próprio conceito: agora temos um conjunto de dados grande o bastante para comparar com precisão bancos de dados vetoriais entre si. E isso também é um bom lembrete de por que devemos ser céticos em relação aos benchmarks publicados pelos fornecedores, porque, como acabamos de ver neste vídeo, fazer benchmarks de bancos de dados vetoriais é realmente uma tarefa extremamente difícil. Então, não estou culpando os próprios fornecedores; estou apenas constatando a realidade: nada é preto no branco, e todos devemos testá-los por conta própria para descobrir a verdade. Essas são as minhas opiniões sobre o assunto, mas quais são as suas? Adoraria ouvir suas
02:04 ideias, então compartilhe-as na seção de comentários abaixo.
Transcrição original
[00:00] If you’re looking for a reliable vector database for your project, choosing one is so hard. And that is because every vendor has a benchmark page, and every vendor shows they’re winning their own benchmarks. That’s not necessarily because they’re all lying, but it’s because benchmarking vector search, honestly, is genuinely difficult. And almost every public benchmark takes some shortcuts and produces half-baked results. Let’s look at recall, for example. Recall measures the following: Of the true nearest neighbors to a certain query, how many does the engine actually give me back? So, to measure
[00:30] recall, you have to know what the right answer is, which means somebody has to have computed the true nearest neighbors first, not approximately, but exactly. But at 10 billion vectors with 120,000 queries, this is over a quadrillion distance computations, 10 to the 15th. And that is precisely why nobody had done it before. But Qdrant went and did the expensive thing. They burnt through a lot of GPU compute to produce this massive data set of 10 billion vectors. So, I tested this tool chain myself, albeit on just a slice of the whole data
[01:02] set, because 10 billion vectors is 24 terabytes, and my laptop just doesn’t have that much space. So, I ran it against four engines, Qdrant, Milvus, Elasticsearch, and PGVector. But look at where each engine stops. So, Elasticsearch can’t get past 95% accuracy, no matter how hard you push it. But Qdrant and Milvus both reach 98%. So, they’re good at different things. Elasticsearch is the fastest way to be roughly right, but Qdrant is the only one of the bunch that is quick and still gives you the most precise results. So, the big takeaway here is not the numbers that I showed you in the
[01:33] demo, but rather the concept itself that we now have a large enough data set that can be used to accurately benchmark vector databases against each other. And this is also a good reminder of why we should be skeptical of vendor-published benchmarks, because as we just saw in this video, benchmarking vector databases is genuinely a super difficult task. So, I’m not blaming vendors themselves, I’m just stating the reality that nothing is black and white, and we should all test them for ourselves to get to the actual ground truth. So, those are my thoughts on this topic, but what are yours? I’d love to hear your
[02:04] insights, so please share them in the comment section down below.