Busca Vetorial

O que é DiskANN? Pesquisa de Vetores em Escala de Bilhões Explicada

9 MIN DE LEITURA

A geração aumentada por recuperação (RAG), a busca semântica e os agentes de IA dependem de uma única coisa: a capacidade de encontrar rapidamente os vetores mais relevantes em um grande conjunto de dados. À medida que os conjuntos de dados de incorporação (embeddings) crescem de milhões para bilhões de registros, os índices vetoriais puramente em memória tornam-se financeiramente insustentáveis. O DiskANN resolve esse problema armazenando índices vetoriais em SSD em vez de RAM, permitindo buscas em escala web em hardware comum.

O que é DiskANN?

DiskANN é um algoritmo de busca vetorial baseado em grafos desenvolvido pela Microsoft Research que foi publicado pela primeira vez no NeurIPS 2019. Ele realiza buscas de vizinhos mais próximos aproximados (ANN) em conjuntos de dados vetoriais em escala de bilhões, usando SSD como seu principal meio de armazenamento e mantendo apenas uma representação compactada do índice na RAM.

Antes do DiskANN, algoritmos como HNSW e FAISS exigiam que todo o índice de vetores residisse na DRAM. Com um bilhão de vetores, isso exige centenas de gigabytes de RAM e uma infraestrutura que é cara de provisionar e escalar. O DiskANN quebra essa restrição ao transferir a maior parte do índice para o disco, mantendo características de recuperação e latência competitivas com abordagens em memória. Ele é construído sobre o algoritmo Vamana, um novo método de construção de gráficos que produz um grafo direcionado de camada única bem adequado para travessia eficiente baseada em disco.

Principais benchmarks do original Artigo do NeurIPS 2019:

  • 1B+ vetores indexados em uma única máquina com 64GB de RAM
  • 5-10x mais vetores por máquina vs. soluções exclusivamente em DRAM com latência equivalente
  • < 5 ms latência de consulta com recall 95%+ no benchmark SIFT-1B

O DiskANN é agora a base da infraestrutura de busca vetorial na Microsoft (usado no Bing e no Microsoft 365) e foi adotado por Couchbase, Azure Cosmos DB, Azure Database for PostgreSQL, pgvectorscale do TimescaleDB e outros bancos de dados.

Como o DiskANN funciona

O DiskANN combina duas técnicas: o grafo Vamana para a estrutura e navegação do índice, e a quantização de produto (PQ) para a compressão de vetores em memória.

Construindo o grafo Vamana: O Vamana constrói um grafo direcionado de camada única onde cada nó representa um vetor. Ele inicializa com conexões aleatórias e, em seguida, refina através de poda em duas passagens. A primeira passagem remove arestas de curto alcance redundantes, e a segunda adiciona arestas de longo alcance que permitem ao algoritmo de busca saltar rapidamente para a região correta do grafo sem travessia dispendiosa de múltiplos saltos. Ao contrário da hierarquia de múltiplas camadas do HNSW, a estrutura de camada única do DiskANN o torna prático em disco.

A divisão de RAM/SSD: Os vetores compactados por PQ (por exemplo, 32 bytes versus 512 bytes para um vetor float32 de 128 dimensões) são armazenados em cache na RAM para cálculos rápidos de distância aproximada. O índice do grafo Vamana completo e os vetores de precisão total ficam no SSD e são lidos apenas para a reclassificação final.

Execução da consulta: A busca é executada em duas fases. Primeiro, o algoritmo usa vetores compactados por PQ na RAM para navegar pelo grafo e identificar um conjunto de candidatos — sem necessidade de leituras em disco. Em seguida, ele busca vetores de precisão total no SSD para esse conjunto de candidatos e calcula as distâncias exatas. Esse design de duas fases é o que preserva a recuperação (recall) alta, mantendo os requisitos de RAM baixos.

FreshDiskANN: A implementação original do Vamana gera um índice estático. O FreshDiskANN, um projeto subsequente da Microsoft Research, amplia o DiskANN para oferecer suporte a inserções, exclusões e atualizações simultâneas em tempo real, sem a necessidade de reconstruções completas do índice. Ele mantém uma taxa de recuperação superior a 95%, o que o torna prático para conjuntos de dados em streaming, como sistemas de recomendação e repositórios de documentos em tempo real.

DiskANN vs. HNSW vs. IVF

DiskANN, HNSW e IVF são os três principais tipos de índices ANN em produção hoje.

DiskANN (Vamana)HNSWFIV
Armazenamento primárioSSD + pequeno cache de RAMRAM (índice completo na memória)RAM ou armazenamento de objetos
Escala prática máximaBilhões de vetores100-200M vetores (limitado por RAM)Centenas de milhões
Latência de consultaBaixa (5-15 ms típica)Muito baixa (1-5 ms)Baixo-médio
Uso de memóriaBaixa (comprimida por PQ na RAM)Alto (vetores completos na DRAM)Médio
Atualizações em tempo realVia FreshDiskANNSuportado nativamenteReconstrução cara
Pesquisa filtradaPor Filtered-DiskANNVia pós-filtragemForte (variantes de FIV)
Melhor paraRAG em escala de bilhões, agentes, recomendações em hardware de baixo custoConjuntos de dados menores onde a latência ultrabaixa é crítica e há RAM disponívelPesquisa filtrada com altos índices de filtragem (>85%)

Se o seu conjunto de dados couber na RAM (menos de ~100 milhões de vetores), o HNSW geralmente oferece a menor latência. Quando você estiver indexando centenas de milhões de vetores, ou quando o custo da RAM for uma restrição, o DiskANN é a opção mais prática. Para cargas de trabalho em que 85%+ do conjunto de dados é filtrado antes da pesquisa, as variantes do IVF podem apresentar desempenho superior a ambas.

Desempenho e benchmarks

Resultados originais do NeurIPS 2019 (Microsoft Research): No conjunto de dados SIFT-1B (1 bilhão de vetores de 128 dimensões), o DiskANN atingiu 5.000 QPS com 95%+ recall@1 e latência média inferior a 5 ms em uma única máquina com 64 GB de RAM e um SSD NVMe. Isso representa de 5 a 10 vezes mais vetores por máquina do que as soluções baseadas em DRAM com desempenho equivalente.

Benchmark do Couchbase Hyperscale Vector Index (outubro de 2025): O Hyperscale Vector Index da Couchbase baseado em Vamana/DiskANN, introduzido no Couchbase 8.0, foi avaliado de forma independente usando o VectorDBBench em um conjunto de dados de 1 bilhão de vetores:

  • 700+ QPS com latência inferior a um segundo na recuperação 93%
  • 350x mais rápido do que o MongoDB Atlas, que apresentou 2 QPS com mais de 40 segundos de latência média em uma consulta de 89%, em condições idênticas

Casos de uso do DiskANN

RAG: Sistemas RAG corporativos que abrangem bilhões de trechos de documentos precisam de recuperação de alto *recall* sem infraestrutura pesada em RAM. O DiskANN é bem adequado para cargas de trabalho onde o conteúdo do *prompt* é imprevisível e a ampla cobertura semântica é essencial.

Agentes de IA e memória contextual: Sistemas baseados em agentes acumulam histórico de interações, preferências e contexto de tarefas como vetores ao longo do tempo. O DiskANN permite que os agentes busquem em um corpus de memória ilimitado e em crescimento, sem que a memória RAM se torne um gargalo.

Pesquisa semântica e recomendações: Plataformas de busca de comércio eletrônico, mídia e corporativas que operam com centenas de milhões a bilhões de itens se beneficiam da taxa de transferência e da precisão de recuperação do DiskANN, especialmente quando combinadas com a pré-filtragem de metadados por meio do Filtered-DiskANN.

IA com foco em privacidade e local (on-premises): Quando os dados não podem sair de um ambiente controlado, a capacidade do DiskANN de rodar em hardware SSD local torna aplicações de IA geradora com preservação de privacidade mais prático do que abordagens que exigem clusters hospedados na nuvem e com uso intensivo de RAM.

DiskANN em bancos de dados e plataformas

Índice de Vetores de Hiperescala do Couchbase: O Couchbase 8.0 introduziu o Hyperscale Vector Index (HVI), uma implementação híbrida de Vamana + IVF disponível em Couchbase Capella e implantações auto-gerenciadas. Ele opera em discos particionados para processamento distribuído e foi projetado especificamente para cargas de trabalho de RAG que exigem ampla cobertura semântica.

Azure Cosmos DB e Azure Database for PostgreSQL da Microsoft: O Azure Cosmos DB usa o DiskANN para habilitar a busca vetorial em sua API NoSQL. O Azure Database for PostgreSQL o oferece como uma alternativa baseada no Vamana aos algoritmos HNSW e IVFFlat do pgvector.

Milvus e Zilliz: O Milvus é um banco de dados vetorial de código aberto que oferece suporte ao DiskANN como um tipo de índice em disco (DISKANN) para coleções de bilhões de escalas, com o grafo Vamana em disco e vetores comprimidos por PQ na RAM. O Zilliz Cloud é a versão corporativa totalmente gerenciada do Milvus.

pgvectorscale (TimescaleDB): pgvectorscale é uma extensão do PostgreSQL desenvolvida pela Timescale que implementa o StreamingDiskANN. Ela é otimizada para séries temporais continuamente atualizadas e conjuntos de dados de streaming.

Como otimizar o DiskANN

Os principais parâmetros do DiskANN governam a relação de compromisso entre latência de revocação e vazão:

  • GrauMáximo: Número máximo de arestas de saída por nó do gráfico. Valores mais altos melhoram o recall, mas aumentam o tamanho do índice e as leituras de SSD. Padrão: 56.
  • TamanhoDaListaDePesquisa: Tamanho da lista de candidatos durante a busca. Aumente para 150-200 para cargas de trabalho de alto *recall* (RAG, memória de agentes); mantenha em 100 para vazão máxima. Padrão: 100.
  • PQCodeBudgetGBRatio: Fração do tamanho do conjunto de dados a ser armazenada em cache como vetores compactados por PQ na RAM. Aumente para 0,2 se a margem de RAM permitir e a latência for crítica. Padrão: 0,125.
  • ProporçãoDaLarguraDoFeixe: Leituras SSD paralelas por etapa de consulta. Ajuste para cima (6.0-8.0) para maximizar o QPS em cargas de trabalho de alto rendimento. Padrão: 4.0.

For hardware sizing, budget roughly 750GB-1TB of NVMe SSD for a 1B 128-dimensional float32 dataset (512GB for full-precision vectors + ~224GB for graph edges), and 64-128GB of RAM for the PQ cache. DiskANN is not CPU-bound; 8-16 cores are sufficient for most deployments.

Principais conclusões

DiskANN addresses the fundamental economic problem of in-memory ANN indexing by using inexpensive SSDs rather than expensive RAM. By combining the Vamana graph construction algorithm with product quantization, it achieves recall and latency competitive with in-memory approaches at a fraction of the infrastructure cost.

  1. DiskANN is a graph-based ANN algorithm from Microsoft Research (NeurIPS 2019) that is built on the Vamana directed graph construction algorithm.
  2. It stores the full index and full-precision vectors on SSD, caching only PQ-compressed vectors in RAM for fast approximate routing.
  3. It indexes 1B+ vectors on a single machine with 64GB RAM, achieving 95%+ recall@1 with sub-5 ms latency on the SIFT-1B benchmark.
  4. DiskANN indexes 5-10x more vectors per machine than DRAM-only algorithms at equivalent latency, directly reducing infrastructure cost.
  5. It’s the right choice when datasets exceed 100-200M vectors or when RAM cost is a constraint. HNSW is preferable for smaller latency-critical workloads.
  6. FreshDiskANN extends DiskANN to support real-time inserts, deletes, and updates without full index rebuilds.
  7. Couchbase’s Hyperscale Vector Index delivers 700+ QPS at 93% recall at billion-vector scale. This is 350x faster than MongoDB Atlas in independent VectorDBBench testing.

Recursos relacionados

Perguntas Frequentes

What is the Vamana algorithm, and how does it differ from HNSW? Vamana builds a single-layer directed graph, while HNSW builds a multi-layer hierarchy. HNSW’s structure requires the entire index to be in RAM for efficient pointer traversal. Vamana’s single-layer design, with explicit long-range edges added during construction, enables the same fast navigation from disk without the RAM dependency.

How does product quantization work in DiskANN, and why is it necessary? PQ compresses each vector into a compact code (typically 16-32x smaller) by dividing it into sub-vectors and mapping each to a learned centroid. DiskANN stores these codes in RAM for fast approximate routing, then fetches full-precision vectors from SSD only for final reranking, keeping the in-memory footprint tractable even at billion-vector scale.

What are DiskANN’s limitations, and when is it not the best choice? DiskANN is less suitable for small datasets (under ~10M vectors), where HNSW offers lower latency with less overhead. It’s also less suitable for workloads with very high filter ratios (85-98%), where IVF variants outperform graph-based indexes. Query latency is also highly sensitive to disk speed, and SATA SSDs will significantly underperform NVMe.

How do I estimate hardware requirements for a DiskANN deployment? For a 1B 128-dimensional float32 dataset, budget roughly 750GB-1TB of NVMe SSD (512GB for vectors plus ~224GB for graph edges) and 64-128GB of RAM for the PQ cache. DiskANN is I/O-bound rather than CPU-bound, so 8-16 cores are sufficient for most production deployments.Which databases support DiskANN? DiskANN is available in Couchbase 8.0 (Hyperscale Vector Index, benchmarked at 700+ QPS at billion-vector scale), Azure Cosmos DB, Azure Database for PostgreSQL, Milvus/Zilliz Cloud, and TimescaleDB’s pgvectorscale. Microsoft also uses DiskANN in Bing and Microsoft 365, making it the most widely deployed billion-scale vector search algorithm in enterprise infrastructure today.

Compartilhe este artigo

Autor

Deixe um comentário

Pronto para começar com o Couchbase Capella?

Começar a construir

Confira nosso portal para desenvolvedores para explorar o NoSQL, navegar por recursos e começar com tutoriais.

Use o Capella free

Coloque a mão na massa com o Couchbase em apenas alguns cliques. O Capella DBaaS é a maneira mais fácil e rápida de começar.

Entre em contato

Quer saber mais sobre as ofertas do Couchbase? Deixe-nos ajudar.