Como Avaliar um Banco de Dados Vetorial?
Este artigo foi publicado originalmente na InfoWorld e é republicado aqui com permissão.
No mundo atual orientado por dados, o crescimento exponencial de dados não estruturados é um fenômeno que exige nossa atenção. A ascensão da IA e dos Modelos de Linguagem de Grande Porte (LLMs) reacendeu mais uma vez essa explosão de dados, direcionando nosso foco para uma tecnologia revolucionária: bancos de dados vetoriais. Como uma infraestrutura vital na era da IA, os bancos de dados vetoriais são ferramentas poderosas para armazenar, indexar e pesquisar dados não estruturados.
Com a atenção do mundo firmemente voltada para os bancos de dados vetoriais, surge uma pergunta urgente: como selecionar o mais adequado para as necessidades do seu negócio? Quais são os principais fatores a considerar ao comparar e avaliar bancos de dados vetoriais? Este post se aprofundará nessas questões e fornecerá insights a partir das perspectivas de escalabilidade, funcionalidade e desempenho, ajudando você a tomar decisões informadas neste cenário dinâmico.
O que é um banco de dados vetorial?
Sistemas convencionais de bancos de dados relacionais gerenciam dados em tabelas estruturadas com formatos predefinidos e se destacam na execução de operações de busca precisas. Em contraste, bancos de dados vetoriais são especializados em armazenar e recuperar dados não estruturados, como imagens, áudio, vídeos e texto, por meio de representações numéricas de alta dimensionalidade conhecidas como embeddings vetoriais.
Bancos de dados vetoriais são famosos por buscas de similaridade, empregando técnicas como o algoritmo Approximate Nearest Neighbor (ANN). Esse algoritmo organiza os dados de acordo com relações espaciais e identifica rapidamente o ponto de dados mais próximo de uma determinada consulta em conjuntos de dados extensos.
Desenvolvedores usam bancos de dados vetoriais na criação de sistemas de recomendação, chatbots e aplicações para pesquisar imagens, vídeos e áudio semelhantes. Com a ascensão do ChatGPT, os bancos de dados vetoriais tornaram-se benéficos para lidar com os problemas de alucinação de grandes modelos de linguagem.
Bancos de dados vetoriais vs. outras tecnologias de busca vetorial
Diversas tecnologias estão disponíveis para busca vetorial além dos bancos de dados vetoriais. Em 2017, a Meta tornou o FAISS open source, reduzindo significativamente os custos e as barreiras associados à busca vetorial. Em 2019, a Zilliz lançou o Milvus, um banco de dados vetorial open source desenvolvido especificamente para esse fim, liderando o caminho na indústria. Desde então, muitas outras empresas de bancos de dados vetoriais surgiram. A tendência dos bancos de dados vetoriais decolou em 2022 com a entrada de muitos produtos tradicionais de busca, como Elasticsearch e Redis, e o uso generalizado de LLMs como o ChatGPT.
Quais são suas diferenças agora que existem tantos produtos de busca vetorial? Eu os categorizo aproximadamente nos seguintes tipos:
Bibliotecas de busca vetorial. São coleções de algoritmos sem funcionalidades básicas de banco de dados, como inserir, excluir, atualizar, consultar, persistência de dados e escalabilidade. FAISS é um exemplo principal.
Bancos de dados vetoriais leves. Eles são construídos sobre bibliotecas de busca vetorial, tornando-os leves na implantação, mas com baixa escalabilidade e desempenho. Chroma é um exemplo disso.
Plugins de busca vetorial. São complementos de busca vetorial que dependem de bancos de dados tradicionais. No entanto, sua arquitetura é voltada para cargas de trabalho convencionais, o que pode impactar negativamente seu desempenho e escalabilidade. Elasticsearch e Pgvector são exemplos principais.
Bancos de dados vetoriais desenvolvidos para esse fim. Esses bancos de dados são desenvolvidos especificamente para busca vetorial e oferecem vantagens significativas em relação a outras tecnologias de busca vetorial. Por exemplo, bancos de dados vetoriais dedicados fornecem recursos mais amigáveis ao usuário, como computação e armazenamento distribuídos, recuperação de desastres e persistência de dados. Milvus é um exemplo principal.
Como avaliar um banco de dados vetorial?
Ao avaliar um banco de dados vetorial, escalabilidade, funcionalidade e desempenho são as três métricas mais cruciais.
Escalabilidade
A escalabilidade é essencial para determinar se um banco de dados vetorial consegue lidar efetivamente com dados que crescem exponencialmente. Ao avaliar a escalabilidade, devemos considerar a escalabilidade horizontal/vertical, o balanceamento de carga e múltiplas replicações.
Escalabilidade Horizontal/Vertical
Diferentes bancos de dados vetoriais empregam diversas técnicas de escalonamento para acomodar as demandas de crescimento dos negócios. Por exemplo, Pinecone e Qdrant optam pelo escalonamento vertical, enquanto Milvus adota o escalonamento horizontal. A escalabilidade horizontal oferece maior flexibilidade e desempenho do que o escalonamento vertical, com menos limites superiores.
Balanceamento de Carga
O agendamento é crucial para um sistema distribuído. Sua velocidade, granularidade e precisão influenciam diretamente o gerenciamento de carga e o desempenho do sistema, reduzindo a escalabilidade se não for corretamente otimizado.
Suporte a Múltiplas Réplicas
Múltiplas réplicas permitem respostas diferenciais a várias consultas, aprimorando as consultas por segundo (QPS) do sistema e sua escalabilidade geral.
Diferentes bancos de dados vetoriais atendem a diferentes tipos de usuários, portanto suas estratégias de escalabilidade diferem. Milvus, por exemplo, concentra-se em cenários com volumes de dados em rápido aumento e usa uma arquitetura horizontalmente escalável com separação entre armazenamento e computação. Pinecone e Qdrant, por outro lado, são projetados para usuários com volume de dados e demandas de escalabilidade moderados. Enquanto isso, LanceDB e Chroma priorizam implantações leves em vez da escalabilidade.
Funcionalidade
Classifico a funcionalidade dos bancos de dados vetoriais em duas categorias principais: recursos orientados a banco de dados e orientados a vetores.
Recursos Orientados a Vetores
Bancos de dados vetoriais beneficiam muitos casos de uso, como geração aumentada por recuperação (RAG), sistemas de recomendação e busca por similaridade semântica usando vários índices. Portanto, a capacidade de oferecer suporte a múltiplos tipos de índice é um fator crítico na avaliação de um banco de dados vetorial.
Atualmente, a maioria dos bancos de dados vetoriais oferece suporte a índices HNSW (Hierarchical Navigable Small World), com alguns também acomodando índices IVF (Inverted File). Esses índices são adequados para operações em memória e são mais indicados para ambientes com recursos abundantes. No entanto, alguns bancos de dados vetoriais escolhem soluções baseadas em mmap para situações com recursos de hardware limitados. Embora sejam mais fáceis de implementar, as soluções baseadas em mmap vêm ao custo do desempenho.
Milvus, um dos bancos de dados vetoriais mais antigos, oferece suporte a 11 tipos de índice, incluindo índices baseados em disco e baseados em GPU. Essa abordagem garante adaptabilidade a uma ampla variedade de cenários de aplicação.
Recursos Orientados a Bancos de Dados
Muitos recursos benéficos para bancos de dados tradicionais também se aplicam a bancos de dados vetoriais, como Change Data Capture (CDC), suporte a multilocação, grupos de recursos e controle de acesso baseado em funções (RBAC). O Milvus e alguns bancos de dados tradicionais equipados com plugins vetoriais oferecem suporte eficaz a esses recursos orientados a bancos de dados.
Desempenho
O desempenho é a métrica mais crítica para avaliar um banco de dados vetorial. Ao contrário dos bancos de dados convencionais, os bancos de dados vetoriais realizam buscas aproximadas, o que significa que os k principais resultados recuperados não podem garantir 100% de precisão. Portanto, além de métricas tradicionais como Consultas por Segundo (QPS) e Latência, a "taxa de recall" é outra métrica de desempenho essencial para bancos de dados vetoriais que quantifica a precisão da recuperação.
Recomendo duas ferramentas de benchmarking open-source amplamente reconhecidas para avaliar diferentes métricas: ANN-Benchmark e VectorDBBench.
ANN-Benchmark
A indexação vetorial é um aspecto crítico e intensivo em recursos de um banco de dados vetorial. Seu desempenho afeta diretamente o desempenho geral do banco de dados. ANN-Benchmark é uma ferramenta de benchmarking líder para avaliar o desempenho de diversos algoritmos de índice vetorial em uma variedade de conjuntos de dados reais.
O gráfico abaixo demonstra os resultados do teste de recall/consultas por segundo de vários algoritmos com base no conjunto de dados GIST1M (1M de vetores com 960 dimensões). Ele plota a taxa de recall no eixo x em relação ao QPS no eixo y, ilustrando o desempenho de cada algoritmo em diferentes níveis de precisão de recuperação.
De acordo com os resultados mostrados no gráfico acima, as bibliotecas Milvus, Zilliz e HNSW alcançaram os três melhores resultados ao processar 1.000.000 de vetores com 960 dimensões. Para mais resultados de benchmarking, consulte o site do ANN-Benchmark.
VectorDBBench
Embora o ANN-Benchmark seja incrivelmente útil para selecionar e comparar diferentes algoritmos de busca vetorial, ele não fornece uma visão abrangente dos bancos de dados vetoriais. Também devemos considerar fatores como consumo de recursos, capacidade de carregamento de dados e estabilidade do sistema. Além disso, o ANN-Benchmark deixa de fora muitos cenários comuns, como busca vetorial filtrada.
VectorDBBench é uma ferramenta de benchmarking open-source que pode abordar as limitações mencionadas acima e é projetada para bancos de dados vetoriais open-source como Milvus e Weaviate e serviços totalmente gerenciados como Zilliz Cloud e Pinecone. Como muitos serviços de busca vetorial totalmente gerenciados não expõem seus parâmetros para ajuste pelo usuário, o VectorDBBench exibe QPS e taxas de recall separadamente.
Os gráficos abaixo demonstram os resultados dos testes de QPS e da taxa de recall de vários bancos de dados vetoriais populares ao processar 500.000 vetores com 1.536 dimensões e 1.000.000 de vetores com 768 dimensões, respectivamente.
Com base nos resultados nos gráficos acima, bancos de dados vetoriais criados especificamente, como Milvus e Zilliz, demonstraram desempenho excepcional tanto em QPS quanto em taxas de recall. Esses resultados indicam que bancos de dados vetoriais criados especificamente podem processar rapidamente grandes volumes de dados e recuperar resultados mais precisos. Em contraste, complementos de busca vetorial baseados em bancos de dados tradicionais apresentaram desempenho inferior.
Para mais resultados de benchmarking, consulte o site do VectorDBBench.
Conclusão
No domínio dinâmico dos bancos de dados vetoriais, diversos produtos apresentam ênfases e pontos fortes únicos. Não existe um banco de dados vetorial "melhor" universal; a escolha depende das suas necessidades. Portanto, avaliar a escalabilidade, a funcionalidade, o desempenho e a compatibilidade de um banco de dados vetorial com seus casos de uso específicos é vital.
Continue lendo

Vector Lakebase: End the AI Data Silo
Learn how Vector Lakebase unifies vector search, data lakes, and AI data operations so teams can serve RAG and agents without copy-and-sync pipelines.

From Vector Database to Vector Lakebase
Zilliz offers a fully managed Vector Lakebase powered by Milvus, unifying real-time vector search, lake-scale discovery, and Al data operations.

Migrating from S3 Vectors to Zilliz Cloud: Unlocking the Power of Tiered Storage
Learn how Zilliz Cloud bridges cost and performance with tiered storage and enterprise-grade features, and how to migrate data from AWS S3 Vectors to Zilliz Cloud.



