Skip to content

Feature proposal: Projection-Augmented Graph as a new CPU ANN index #5496

Description

@KejingLu-810

Hi Faiss team,

PAG is available here:
https://github.com/KejingLu-810/PAG

I am the author of Projection-Augmented Graph (PAG), and I would like to ask whether you would be interested in evaluating it as a possible new CPU ANN index for Faiss.

Summary

PAG is a graph-based approximate nearest neighbor method designed for high-throughput CPU search. The current public implementation supports cosine similarity, L2 distance, and maximum inner product search, with static indexing, serialization, Python bindings, and in-memory online insertion.

Spotlight

  • QPS-recall performance: In our local CPU tests, PAG achieves about 4x-14x higher QPS than HNSW / IP-NSW at matched recall on several ANN workloads.
  • Scalability: PAG remains fast and stable across retrieval sizes from top-10 to top-1000, vector dimensions from about 100 to 3000, and large-scale datasets.
  • Fast indexing: PAG shows substantially faster graph construction in our tests, typically around 3x-7x on cosine and high-dimensional workloads, while still remaining faster on MIPS workloads.

Two related papers have been accepted to ICLR 2026 Oral and ICML 2026. We believe PAG may be complementary to the existing Faiss index family, especially for high-recall CPU search, high-dimensional cosine workloads, large retrieval sizes, fast graph construction, and online insertion.

We also received an independent 1B-scale community report showing about 4x QPS over HNSW-SQ with no recall loss. The same report also suggested that an int8 backend could provide substantial additional acceleration with about 1% recall drop.

Discussion

If helpful, we would be very happy to provide more detailed documentation, benchmark scripts, reproducibility instructions, and any assistance needed to help the Faiss team test or evaluate the code.

Thank you very much for your time.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions