antonio leandro

dados e armazenamento

Vector Database Management Techniques and Systems

paper · James Jie Pan, Jianguo Wang, Guoliang Li · · ~56 min de leitura do original

a tese

banco vetorial não é uma categoria nova de banco: é o problema de vizinho mais próximo aproximado, com décadas de literatura, embalado atrás de uma api — o que muda de produto para produto é o índice, não o armazenamento

o que fica

  1. A busca exata custa O(n) por consulta e não precisa de índice nenhum: todo índice de vetor existe para trocar recall por velocidade.
  2. As quatro famílias de ANNS atacam o mesmo problema por caminhos diferentes: hash e quantização encolhem o vetor, árvore poda o espaço, grafo caminha até o vizinho.
  3. Product quantization corta o vetor em m subvetores e guarda só o índice do centróide de cada um, então a busca passa a comparar códigos curtos em vez de vetores.
  4. HNSW empilha camadas de grafo com poucos pontos e arestas longas em cima, muitos pontos e arestas curtas embaixo, e desce usando o melhor nó de cada camada como entrada da seguinte.
  5. Sharding, particionamento, cache e replicação de um banco vetorial são os mesmos de qualquer banco distribuído; o que é específico da categoria é o índice.
  6. O survey não mede nada: descreve os algoritmos e lista os fatores que afetam desempenho, mas não compara recall nem latência entre eles.

o problema

Um banco relacional responde bem a “onde id = 42” e mal a “o que se parece com isto”. Embedding de texto, imagem, áudio e vídeo são vetores de dezenas a milhares de dimensões, e não existe coluna nesse vetor que faça sentido comparar por igualdade. Os dois índices que sustentam um DBMS tradicional, B-tree e hash table, degradam quando a dimensão sobe: o survey chama isso de catástrofe de dimensionalidade. Quando quase tudo está quase equidistante de quase tudo, podar ramos deixa de podar.

Resta a força bruta: varrer os n vetores, calcular a distância até a consulta, guardar o melhor. Custa O(n) por consulta e O(1) de espaço extra, e devolve o vizinho verdadeiro. Com bilhões de vetores e um orçamento de latência, não fecha. É daí que sai a troca que organiza a área inteira: aceitar erro na resposta em troca de tempo e memória. Busca aproximada (ANNS) no lugar da busca exata (NNS).

a ideia

O movimento do survey é de arrumação, não de invenção. Ele separa o que num banco vetorial é herdado do banco de dados comum e o que é próprio. Herdado: sharding por hash ou por faixa de chave, particionamento por faixa ou por lista, cache LRU ou particionado, replicação leaderless ou líder-seguidor, com os trade-offs de sempre — leaderless evita ponto único de falha e paga em consistência, líder-seguidor dá consistência forte e paga em disponibilidade. Próprio: o índice.

E o índice é um problema antigo com literatura própria. O survey classifica os algoritmos pelo princípio de projeto — como organizam os dados, como percorrem a estrutura, como estimam distância — e chega em quatro famílias: hash, árvore, grafo e quantização. A fronteira entre exato e aproximado, nessa leitura, não é de qualidade e sim de método: exato usa critérios determinísticos de poda; aproximado usa heurística e probabilidade.

como funciona

Árvore. KD-tree divide o espaço por hiperplanos perpendiculares a um eixo, com corte na mediana ou média daquela dimensão; a busca usa fila de prioridade ordenada pela distância mínima até cada nó. Ball-tree troca o hiperplano por hiperesfera e, segundo o survey, aguenta melhor dimensão alta. R-tree usa retângulos mínimos e serve a consulta espacial; M-tree usa raio de cobertura e aceita inserção e remoção. Do lado aproximado, best bin first é uma KD-tree que para depois de visitar um número fixo de bins, e Annoy monta uma floresta de árvores de projeção aleatória, coleta os pontos das folhas onde a consulta cai e só aí calcula distância exata sobre esses candidatos. Annoy usa arquivo mapeado em memória, o que deixa vários processos compartilharem o mesmo índice.

Hash. LSH projeta o vetor em código binário com uma família de funções onde a probabilidade de colisão cai com a distância; compara-se código, não vetor. Spectral hashing gera as funções por teoria espectral de grafos, minimizando variância de cada bit. Deep hashing aprende as funções com rede neural, balanceando perda de reconstrução e perda de quantização.

Grafo. NSW liga cada ponto aos vizinhos próximos e a alguns links longos, criando atalhos de mundo pequeno, e busca por roteamento guloso até mínimo local ou número máximo de saltos. HNSW empilha isso em camadas de densidade decrescente, com o parâmetro M limitando os vizinhos por nó.

Quantização. PQ divide o vetor em m subvetores de dimensão d/m, roda k-means em cada um e concatena os índices dos centróides. OPQ aplica rotação antes de quantizar para reduzir distorção. O-PQ atualiza centróide e código online, com taxa de aprendizado, para dado que chega em fluxo.

o que isso custou

O survey é honesto sobre a lacuna que o motivou: quase não existe artigo descrevendo arquitetura de banco vetorial de verdade, então ele revisa os algoritmos por baixo em vez de sistemas. O preço é que não há medição nenhuma. Nenhuma tabela de recall contra QPS, nenhuma comparação entre as famílias. Cada método vem com a mesma fórmula de encerramento — desempenho depende da dimensão, do número de parâmetros, da métrica — e com os mesmos desafios genéricos: ruído, outlier, escolher bem os parâmetros.

Os desafios declarados para a categoria são quatro: indexar bilhões de vetores em centenas ou milhares de dimensões, suportar tipos heterogêneos (denso, esparso, binário) com um índice adaptativo só, distribuir processamento com particionamento, balanceamento, tolerância a falha e consistência, e integrar com TensorFlow, PyTorch e Scikit-learn. Nenhum deles é resolvido aqui, só nomeado.

A parte sobre LLM é a mais frágil: as afirmações de que banco vetorial ajuda em treino distribuído e compressão de modelo aparecem sem experimento, e as aplicações — memória de longo prazo, busca semântica, recomendação — são listadas como potenciais.

onde isso aparece hoje

As duas peças que o survey trata como estado da arte são as que sustentam a infraestrutura de retrieval atual: Efficient and robust approximate nearest neighbor search using Hierarchical Navigable Small World graphs e Product Quantization for Nearest Neighbor Search. As duas convivem dentro da mesma biblioteca em The Faiss library, onde grafo e código comprimido se combinam em vez de competir.

O pipeline que o survey desenha — embutir a pergunta, achar os vizinhos, devolver o trecho para o modelo gerar — é o de Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks. E o sistema que preenche a lacuna arquitetural apontada aqui, com separação de leitura e escrita e consistência ajustável, é Manu: A Cloud Native Vector Database Management System.

lido na íntegra por pipeline de llm, revisado por antonio leandro antes de publicar ·