Bases de Dados Vetoriais: Um Guia Técnico [pdf]

Bancos de dados vetoriais estão emergindo como infraestrutura central para busca semântica e geração aumentada por recuperação, mas os engenheiros ainda estão definindo quando vale adotá-los em vez de opções mais simples, como busca bruta em SQLite ou Postgres com pgvector. Os comentaristas trocam recursos e benchmarks, debatem cosseno versus distância euclidiana e vários esquemas de indexação (HNSW, IVF, ANNOY, PQ), e enfatizam que embeddings são produzidos por modelos externos de ML e não pelo banco de dados em si. Um tema recorrente é que necessidades práticas — escala de dados, latência, custo e busca híbrida lexical-vetorial — devem orientar a escolha entre bancos vetoriais “completos” e extensões ou bibliotecas mais leves.

Curso e Recursos Adicionais

  • A thread gira em torno de um guia em PDF derivado de uma aula gravada, com um curso em vídeo relacionado no Udemy (com desconto).
  • Os comentaristas compartilham muitos recursos complementares: surveys acadêmicos sobre vetores DBs, introduções gerais a embeddings e busca ANN, e documentação de fornecedores.

Similaridade do Cosseno vs Distância Euclidiana

  • Debate extenso sobre por que a similaridade do cosseno é comumente usada.
  • Pontos a favor: a magnitude muitas vezes não é semanticamente relevante; a normalização simplifica para produto interno; benefícios de eficiência.
  • Ceticismo: a magnitude pode importar em algumas tarefas; explicações sobre o cosseno frequentemente parecem vagas; alguns argumentam que o verdadeiro objetivo é maximizar o produto interno e que a normalização é בעיקר uma conveniência.
  • Outros trazem intuições de hiperplanos aleatórios e hashing sensível à localidade. Consenso: a prática favorece o cosseno, mas os trade-offs teóricos são nuanceados.

Busca Bruta vs ANN / Índices Vetoriais

  • Vários benchmarks sugerem que a busca bruta em centenas de milhares a milhões de vetores é surpreendentemente viável, especialmente quando em lote e quando a geração por LLM domina a latência.
  • Discussão sobre quando a varredura linear “quebra”: depende da contagem de vetores, dimensionalidade, RPS e RAM.
  • Estruturas ANN (HNSW, IVF, Annoy, LSH, etc.) tornam-se importantes em escalas maiores ou QPS mais altos, embora métodos baseados em grafos tenham custos de memória e de tempo de construção.

Bancos de Dados Vetoriais Dedicados vs Bancos Tradicionais

  • Muitos perguntam quando passar de SQLite/Postgres+pgvector para um banco de dados vetorial especializado (Pinecone, Qdrant, etc.).
  • Para O(100k) vetores e baixo tráfego, soluções simples no próprio banco ou em memória muitas vezes são “boas o suficiente”.
  • Alguns relatam escalar motores leves ou personalizados para dezenas de milhões de vetores; outros destacam o custo/complexidade de bancos de dados vetoriais hospedados e sugerem alternativas.
  • Há demanda por orientações mais claras sobre trade-offs (velocidade de indexação, latência de consulta, custo, operação).

Busca Híbrida e RAG

  • A maioria dos sistemas RAG hoje usa busca vetorial; alguns ainda dependem de busca por palavras-chave/texto.
  • Vários enfatizam a busca híbrida (vetorial + lexical) como cada vez mais padrão; bancos tradicionais adicionando suporte vetorial e bancos vetoriais adicionando recursos lexicais.

Embeddings, Seleção de Features e Semântica

  • Esclarecimento importante: bancos de dados vetoriais apenas armazenam e buscam vetores; os embeddings são produzidos externamente por modelos de ML.
  • Discussão substancial sobre “seleção de features” e julgamento humano:
    • Uma visão: deep learning moderno mais attention automatizam em grande parte a extração de features a partir de dados brutos para modalidades comuns; não é necessário design manual explícito de features.
    • Visão contrária: humanos ainda decidem representações (por exemplo, FFT para áudio), objetivos e o que “semelhança” deve significar; features ausentes podem produzir resultados “semelhantes” sistematicamente errados.
  • Observação de que embeddings não precisam ser puramente semânticos; eles podem codificar comportamento (por exemplo, sistemas de recomendação) ou tempo/contexto.

Casos de Uso e Alternativas

  • Bancos de dados vetoriais são usados principalmente para busca por similaridade/semântica, recuperação de itens relacionados e RAG.
  • Para tarefas visuais específicas (por exemplo, reconhecimento de cor de cabelo/pele), os respondentes argumentam que modelos de ML especializados (CNNs, detectores de faces, modelos multimodais) superam a busca ingênua por similaridade de imagens; bancos de dados vetoriais são um componente, não um substituto.

Opções Embarcadas / Leves

  • São mencionadas várias opções embarcadas ou simples: SQLite com funções customizadas, DuckDB, Chroma, extensões do SQLite, pequenas bibliotecas (Faiss, HNSWlib, usearch) e modos locais/embarcados de sistemas maiores.

Críticas ao Guia

  • Vários apontam erros em tabelas (linhas trocadas, tipos de índice invertidos).
  • Objeções a descrever bancos de dados vetoriais como “agrupados por significado” ou “otimizados para analytics”:
    • O agrupamento depende inteiramente do embedding e da tarefa.
    • Bancos de dados vetoriais são enquadrados como sistemas de busca/recuperação, mais parecidos com mecanismos de busca do que com data warehouses analíticos.
  • Alguns detalhes técnicos: por exemplo, PQ é caracterizado mais como compressão do que como uma estratégia de indexação; a orientação sobre quando usar tipos específicos de índice é contestada.