Um banco de dados vetorial armazena documentos junto com seus embeddings e responde às consultas com uma busca de vizinhos mais próximos no espaço vetorial. Como a busca exata de vizinhos mais próximos é cara em grande escala, esses sistemas usam métodos aproximados, como o índice em grafo HNSW de Malkov e Yashunin (2018), e bibliotecas de busca aceleradas por GPU, como a FAISS (Johnson et al., 2017).
O resultado é uma recuperação semântica em menos de um segundo sobre milhões de trechos: a camada de armazenamento que torna viável a geração aumentada por recuperação (RAG).
Para que serve um banco de dados vetorial?
Um banco de dados tradicional encontra linhas que correspondem exatamente a um valor; um banco de dados vetorial encontra itens próximos em significado. Uma busca por "como redefino minha senha" pode retornar um artigo de ajuda chamado "Recuperar o acesso à conta", mesmo que os dois quase não tenham palavras em comum. Por isso, os bancos de dados vetoriais são a base de:
- Busca semântica em centrais de ajuda, wikis e arquivos de documentos
- Chatbots de RAG que respondem com base em documentos privados
- Recomendações — "mais itens como este" para produtos, artigos ou músicas
- Detecção de duplicatas e quase duplicatas
- Busca por similaridade de imagens e áudio
Como funciona um banco de dados vetorial
- 1Gerar embeddings e armazenar. Cada item é convertido em um embedding por um modelo de embeddings e armazenado com seu conteúdo original e seus metadados.
- 2Indexar. Os vetores são organizados em um índice aproximado, como o HNSW, que troca um pouco de precisão por grandes ganhos de velocidade.
- 3Consultar. A consulta é convertida em embedding com o mesmo modelo, e o banco de dados encontra os vetores mais próximos segundo uma medida de similaridade, como a similaridade de cosseno.
- 4Filtrar e retornar. A maioria dos sistemas combina a busca por similaridade com filtros de metadados (data, autor, permissões) e retorna os melhores resultados, muitas vezes repassados a um reranker.
Banco de dados vetorial vs. banco de dados tradicional
| Banco de dados tradicional | Banco de dados vetorial | |
|---|---|---|
| Corresponde a | Valores exatos e palavras-chave | Proximidade de significado |
| Consulta | SQL ou buscas por chave | Um embedding da pergunta |
| Índice | Árvore B ou índice invertido | Índice de vizinhos mais próximos aproximados (por exemplo, HNSW) |
| Resultado | Todas as linhas correspondentes | Os top-k itens mais semelhantes, em ordem de relevância |
As opções vão de bancos de dados vetoriais dedicados, como Pinecone, Weaviate, Milvus, Qdrant e Chroma, até extensões de busca vetorial para bancos de dados já existentes, como o pgvector para PostgreSQL. Para muitas equipes, adicionar busca vetorial a um banco de dados que já usam é mais simples do que operar um sistema separado.