A pesquisa em escala é um desafio. Por mais poderosa que seja a pesquisa vetorial, pode ser difícil saber como ponderar corretamente fatores-chave como precisão, custo e throughput para cargas de trabalho maiores. Recentemente, lançamos o MongoDB Benchmark for Atlas Vector Search, que apresenta estratégias essenciais de otimização de desempenho para pesquisa vetorial, fornecendo um guia abrangente para alcançar resultados ideais com conjuntos de dados em grande escala. O principal objetivo do nosso guia é reduzir significativamente o atrito na sua primeira avaliação em grande escala (>10 milhões de vetores) do Atlas Vector Search.
Com este novo guia, nosso objetivo é fornecer mais contexto sobre como usar o benchmark, explorar o conjunto de dados (incluindo os fatores considerados) e resumir e contextualizar os resultados. Vamos dar uma olhada mais de perto!
Uma observação sobre os dados de benchmarking
Toda boa apresentação inclui o slide de "safe harbor" necessário, e a arte e a ciência do benchmarking não são diferentes. Embarcar em uma carga de trabalho vetorial de grande escala pode apresentar obstáculos significativos decorrentes da falta de informações precisas e do atrito inerente aos benchmarks iniciais. Além disso, o cenário de pesquisa vetorial e modelos de embedding está evoluindo rapidamente, e as informações podem se tornar obsoletas rapidamente, levando os usuários a caminhos ineficientes ou incorretos. Sem uma orientação clara e atualizada, os usuários podem ter dificuldades para prever o comportamento do sistema, otimizar configurações e alocar recursos com confiança.
Também vale notar que inúmeros fatores (quantização, dimensionalidade, filtragem, configuração do nó de pesquisa, simultaneidade, fragmentação e outros) interagem de maneiras complexas. Entender essas interações e seu impacto específico em uma determinada carga de trabalho requer insights precisos e profundos. Sem isso, os usuários podem otimizar um aspecto apenas para degradar inadvertidamente outro.
Esse vácuo informacional, combinado com a considerável sobrecarga de configuração, o ajuste complexo de parâmetros e o custo da experimentação envolvidos na execução do primeiro benchmark, cria uma barreira substancial para validar e dimensionar uma solução. No entanto, acreditamos que esses benchmarks dão aos nossos clientes mais confiança em seus POCs e um ponto de partida para começar (em vez de não ter nenhuma bússola para se orientar).
Com esses fatores em mente, vamos dar uma olhada no conjunto de dados.
Uma olhada no conjunto de dados
O núcleo desta análise de desempenho gira em torno de testes conduzidos em subconjuntos do conjunto de dados Amazon Reviews 2023, que continha 48 milhões de descrições de itens em 33 categorias de produtos. O conjunto de dados foi escolhido por fornecer um cenário realista de e-commerce em larga escala, além de dados ricos, incluindo avaliações de usuários (classificações, texto e votos de utilidade), metadados dos itens (preço e imagens) e nomes e descrições detalhados dos itens, ideais para pesquisa. Para os testes de dimensão variável, foram usados subconjuntos de 5,5 milhões de itens, incorporados (embedded) com o modelo voyage-3-large para produzir vetores de 2.048 dimensões. Em seguida, foram criadas views para dividir esses vetores em versões de 1024, 512 e 256 dimensões, a fim de testar diferentes dimensionalidades. Para o teste em larga escala e alta dimensionalidade, foi usado um subconjunto de 15,3 milhões de itens, também incorporados (embedded) com o modelo voyage-3-large para produzir vetores de 2.048 dimensões.
Uma das principais conclusões do relatório é que, na maior dimensionalidade (15,3 milhões de vetores usando embeddings voyage-3-large de 2.048 dimensões), o Atlas Vector Search com quantização escalar ou binária mantém entre 90% e 95% de precisão, com menos de 50 ms de latência de consulta. Vale ressaltar que a quantização binária pode apresentar maior latência quando o número de candidatos solicitados está na casa das centenas, devido ao custo adicional da reavaliação (rescoring) com vetores de fidelidade total. Ainda assim, ela pode ser preferível para muitas cargas de trabalho em larga escala devido ao custo-benefício.

Metodologia: benchmark com o conjunto de dados Amazon Reviews
Agora que falamos um pouco sobre os dados em si e as informações incluídas, vamos destacar alguns dos principais fatores que impactam o desempenho do Atlas Vector Search e como configuramos nosso benchmark para testá-los. Também é importante entender por que essas variáveis são críticas: nem todo cliente estará otimizando sua pesquisa para o mesmo objetivo. Com isso em mente, também tentaremos identificar as interações e os trade-offs entre essas variáveis.
Embora esta lista não seja exaustiva (veja o relatório completo para mais detalhes), vamos revisar alguns dos principais fatores de desempenho:
Recall: o recall (uma medida da precisão da pesquisa) é significativamente afetado pela quantização e pela dimensionalidade do vetor. O relatório destaca que, embora a quantização escalar geralmente apresente maior recall inicialmente, a quantização binária pode alcançar níveis semelhantes de recall ao aumentar o parâmetro numCandidates, embora isso normalmente resulte em maior latência devido a uma etapa adicional de reavaliação. Além disso, vetores de maior dimensionalidade (1024d e 2048d) mantêm consistentemente um recall superior, especialmente em conjuntos de dados maiores e com quantização, em comparação com vetores de menor dimensionalidade (256d e 512d), que têm dificuldade para ultrapassar 70% a 80% de recall.
Dimensionamento e custos: a tabela do benchmark detalha os recursos necessários (RAM e armazenamento) e os custos associados para diferentes camadas de nós de pesquisa com base em três casos de teste diferentes envolvendo diferentes tamanhos de conjunto de dados, dimensões de vetor e métodos de quantização (escalar ou binário). O guia apresenta um exemplo de conjunto de dados de amostra, mostrando que os requisitos de recursos aumentam linearmente e como a quantização reduz substancialmente os requisitos de memória.
Concorrência e taxa de transferência: a taxa de transferência é avaliada com várias solicitações executadas simultaneamente. A quantização escalar geralmente alcança mais consultas por segundo (QPS) em vários valores de limite devido ao menor trabalho por query e sem rescoring. Gargalos de concorrência são frequentemente observados, indicando que pode ocorrer maior latência. A expansão do número de nós de pesquisa ou o aumento das vCPUs disponíveis é recomendado para resolver esses gargalos e alcançar QPS mais altas.

Como otimizar o desempenho da sua pesquisa vetorial
Este relatório de benchmark examina minuciosamente o desempenho do MongoDB Atlas Vector Search em várias configurações e grandes conjuntos de dados, especificamente o conjunto de dados Amazon Reviews 2023. Ele explora o impacto de fatores como quantização (escalar e binária), dimensionalidade vetorial, filtragem, configurações de nós de pesquisa, compactação de binData, simultaneidade/concorrência e fragmentação no recall, latência e taxa de transferência.
Embora não exista uma “bala de prata” porque a definição de “sucesso” de cada pessoa na pesquisa é diferente, queríamos destacar algumas das várias alavancas a serem consideradas e métodos para obter o máximo da sua própria implantação. Nosso objetivo é fornecer algumas considerações fundamentais sobre como avaliar e melhorar seu próprio desempenho de pesquisa vetorial e ajudá-lo a pesar e contextualizar adequadamente os principais fatores. Está pronto para otimizar sua experiência de pesquisa vetorial?
Explore este guia em nossa documentação.
Experimente executar o nosso repositório do GitHub.