De HNSW faminto por memória ao SPANN quantizado: a evolução técnica da plataforma Manas do Pinterest
A engenharia do Pinterest evoluiu a Manas, sua plataforma distribuída de busca, para lidar com dezenas de bilhões de embeddings. A solução usa quantização, serving em SSD via SPANN e recuperação por late interaction. Implantada em 80 clusters, a Manas alimenta experiências centrais de descoberta: Home Feed, Search, Related Pins, Ads e Notifications.
Com o corpus crescendo rapidamente para bilhões de itens, algoritmos tradicionais de busca vetorial que consomem muita memória, como o HNSW padrão, enfrentam desafios crescentes de custo, alocação de hardware e flexibilidade de infraestrutura.
Quantização: SQ e PQ
Para reduzir a pegada de memória, o time aplicou Scalar Quantization (SQ) e Product Quantization (PQ) em um dataset GraphSage de 100 milhões de embeddings.
- PQ: comprime representações vetoriais float em códigos de bytes compactos; reduz índices HNSW em 74% e índices Inverted File (IVF) em 93%, com recall na faixa de 70–80%.
- SQ: comprime componentes vetoriais em inteiros de menos bits; reduz índices HNSW em 59% e IVF em 75%, mantendo recall acima de 90% de forma consistente entre workloads.
Benchmarks offline
Os testes revelaram trade-offs distintos entre configurações e tamanhos de índice:
- HNSW baseline: 121 GB, Recall@100 de 93,72% a 302,5 QPS.
- HNSW + PQ: 32 GB, Recall@100 de 77,25% a 276,4 QPS.
- HNSW + SQ: 50 GB, Recall@100 de 92,92% a 305,2 QPS.
- IVF baseline: 97 GB, Recall@100 de 91,69% a 1.659,8 QPS.
- IVF + PQ: 6,8 GB, Recall@100 de 76,00% a 1.747,9 QPS.
- IVF + SQ: 25 GB, Recall@100 de 95,71% a 1.588,8 QPS.
Representações com menos bits normalmente exigem uma etapa de decodificação antes do cálculo de distância. Para resolver esse gargalo de CPU, o time implementou Linear Scaling SQ com intrinsics SIMD, reduzindo o uso de recursos de compute das queries em 10–15%.
Em experimentos online, SQ e PQ foram lançados com sucesso e geraram economia de 20–30% nos custos de serving em workloads de produção.
SPANN e serving em SSD
Para cortar ainda mais os custos de RAM movendo o armazenamento de índices para SSDs de alta vazão, o Pinterest avaliou DiskANN e SPANN. O SPANN com PQ alcançou 3x o QPS do DiskANN, com 1/3 da latência e apenas uma leve queda de 5% no recall.
A arquitetura customizada do SPANN mantém em memória um índice pequeno e rápido de centróides para localizar partições relevantes, enquanto armazena grandes posting lists em SSDs, otimizando IOPS e garantindo eficiência de busca. Em uma avaliação de recomendação do Pin com mais de 5 bilhões de embeddings indexados, o SPANN economizou mais de 40% de tempo de CPU em queries de produção em comparação ao HNSW totalmente em memória.
Late Interaction e próximos passos
Para superar os limites de expressividade de modelos de vetor único two-tower, o Pinterest está migrando para modelos multi-vetor de Late Interaction, como o ColBERT, usando pontuação Sum of MaxSim para ajustar a correspondência de relevância em nível de token.
Implementar isso na Manas exigiu atualizar o parser de queries para quebrar consultas multi-token em múltiplos embeddings vetoriais e executar buscas ANN simultâneas em diferentes índices. Um piloto bem-sucedido está em andamento com um time cliente interno para testar suporte avançado a queries multi-embedding em ambientes reais de produção.
Fonte: baseado na análise de Olimpiu Pop, publicada pela InfoQ.
Conecte-se
Acompanhe meu conteúdo nas redes sociais ou entre em contato por e-mail.