Pesquisa de vetores

Pesquisa ANN filtrada com índices vetoriais compostos (Parte 4)

Esta postagem é a quarta parte de uma série de várias partes que explora a indexação de vetores compostos no Couchbase. Se você perdeu as postagens anteriores, não deixe de se atualizar em Parte 1, Parte 2 e Parte 3.

A série abrangerá:

  1. Por que os índices vetoriais compostos são importantes, incluindo conceitos, terminologia e motivação do desenvolvedor. Um sistema inteligente de recomendação de compras será usado como exemplo.
  2. Como os índices de vetor composto são implementados no Serviço de Indexação do Couchbase.
  3. Como o pushdown ORDER BY funciona para consultas de vetor composto.
  4. Comportamento de desempenho no mundo real e resultados de benchmarking.

Parte 4: Análise de desempenho de índices vetoriais compostos

Os aplicativos agênticos e as cargas de trabalho de IA exigem cada vez mais uma pesquisa vetorial eficiente. Os sistemas tradicionais de pesquisa de vizinho mais próximo aproximado (ANN) podem ter dificuldades em escala, com desafios como consumo de memória, tempos de criação de índices e mecanismos de atualização em tempo real.

Os Composite Vector Indexes (CVI) foram projetados para cargas de trabalho ANN filtradas, em que os predicados escalares reduzem o conjunto de candidatos antes da pesquisa vetorial aproximada. Para cargas de trabalho puramente vetoriais em uma escala muito grande, o Couchbase também fornece Hyperscale Vector Indexes. Para conhecer as práticas recomendadas, consulte nossa documentação aqui.

Esta postagem se concentra no comportamento de desempenho dos Composite Vector Indexes para cargas de trabalho ANN filtradas. Com base nos conceitos e no modelo de execução apresentados nas Partes 1 a 3, analisamos agora como a taxa de transferência e a latência do p95 mudam à medida que a seletividade escalar varia em conjuntos de dados de grande escala.

Nesta postagem, a seletividade % refere-se à quantidade do conjunto de dados que permanece relevante depois que a parte escalar da consulta restringe o espaço de pesquisa. Uma seletividade mais baixa significa que uma fatia mais estreita do conjunto de dados se qualifica, o que, por sua vez, reduz a quantidade de trabalho vetorial que o sistema deve realizar.

Desempenho de construção

Em um benchmark de construção interna, o CVI conseguiu criar um índice em 1 bilhão de vetores de 128 dimensões em 7 horas. Isso demonstra a arquitetura de indexação e o uso de hardware moderno. 

O desempenho da construção foi medido na seguinte infraestrutura:

Processador: AMD-EPYC-7643 de 32 núcleos

Memória: 128 GB DE RAM

Armazenamento: SSD empresarial Samsung PM1743 de 15,36 TB

Conjunto de dados: Dados de referência SIFT

Isso mostra que a indexação de bilhões de vetores para cargas de trabalho de produção é prática.

Desempenho da consulta: Velocidade e precisão combinadas

O CVI oferece desempenho de consulta com alta recuperação. Usando o conjunto de dados 100M SIFT com quantização SQ8 e um campo escalar principal, o CVI alcançou 75% recall@10 em várias porcentagens de seletividade, com características medidas de rendimento e latência.

O rendimento melhora à medida que a seletividade diminui

As curvas de taxa de transferência e latência contam a mesma história de dois ângulos. Restrições escalares mais estreitas reduzem a quantidade de trabalho que flui pelo caminho de execução, o que melhora a taxa de transferência do sistema e o comportamento da cauda. Para aplicativos que naturalmente incluem restrições rígidas, como categoria, marca, locatário, região, idioma ou limite de conformidade, esse comportamento é exatamente o ponto em que os Composite Vector Indexes se tornam atraentes.

Configuração de teste

Definição

Consulta

O escalar é preenchido nos dados conforme necessário para a seletividade e é ajustado para obter a recuperação esperada.

Por que as curvas são assim

O desempenho do CVI é influenciado por vários recursos arquitetônicos:

  1. Varredura com reconhecimento de pedidos
    • O CVI usa um pipeline de varredura com reconhecimento de ordem que aproveita predicados escalares combinados com pesquisa de similaridade de vetores, permitindo padrões de acesso eficientes e minimizando as operações de E/S.
  2. Arquitetura de processamento paralelo
    • O sistema usa paralelismo entre os centroides, permitindo que vários operadores de varredura operem simultaneamente em diferentes partições do espaço vetorial.
  3. Computação de distância acelerada por SIMD
    • O CVI usa operações SIMD por meio da biblioteca FAISS para acelerar as avaliações de similaridade e minimizar a sobrecarga computacional.
  4. Camada de roteamento HNSW
    • A camada de roteamento Hierarchical Navigable Small World (HNSW) permite a identificação de centroides relevantes, reduzindo o espaço de pesquisa.

Exemplos de aplicativos

As características de desempenho do CVI são aplicáveis a uma série de casos de uso:

  1. Comércio eletrônico e recomendações de produtos
    • Pesquisa de similaridade de produtos com filtros de preço, marca e categoria
  2. Descoberta e pesquisa de conteúdo
    • Pesquisa de similaridade de documentos e mídias com restrições de metadados
  3. Detecção de fraudes e avaliação de riscos
    • Detecção de anomalias em padrões de transações com restrições temporais
  4. Marketing personalizado
    • Segmentação de clientes e recomendações direcionadas

Conclusão

As três primeiras partes desta série explicaram por que os Composite Vector Indexes são importantes, como eles são implementados e como permitem o pushdown flexível de ORDER BY para consultas mistas de escalar e vetor. Esta última parte mostra o retorno de desempenho desse design.

No benchmark 100M SIFT com quantização SQ8, a taxa de transferência aumentou de 800 QPS com seletividade 100% para 2853 QPS com seletividade 1%, enquanto a latência p95 melhorou de 66 ms para 17 ms. Em um benchmark de compilação interna separado, o Composite Vector Indexes criou um índice de mais de 1 bilhão de vetores de 128 dimensões em cerca de 7 horas em um hardware de servidor de commodity moderno.

Para cargas de trabalho ANN filtradas, essa é a principal proposta de valor dos Composite Vector Indexes: eles permitem que os aplicativos combinem restrições escalares e similaridade semântica em uma única estrutura de índice e, ao mesmo tempo, ofereçam alta taxa de transferência e baixa latência de cauda em escala.

 

 

Compartilhe este artigo
Receba atualizações do blog do Couchbase em sua caixa de entrada
Esse campo é obrigatório.

Autor

Postado por Sai Kommaraju

Deixe um comentário

Pronto para começar a usar o Couchbase Capella?

Iniciar a construção

Confira nosso portal do desenvolvedor para explorar o NoSQL, procurar recursos e começar a usar os tutoriais.

Use o Capella gratuitamente

Comece a trabalhar com o Couchbase em apenas alguns cliques. O Capella DBaaS é a maneira mais fácil e rápida de começar.

Entre em contato

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