



SymphonyQG is a research codebase and method that integrates vector quantization with graph-based indexing to build efficient approximate nearest neighbor (ANN) indexes for high-dimensional vector search. It targets vector database and similarity search scenarios where combining compact codes with navigable graphs can improve recall–latency tradeoffs and memory footprint.
Category: SDKs & Libraries
Brand: gouyt13
Source: https://github.com/gouyt13/SymphonyQG
SymphonyQG is a research codebase and ANN indexing method that integrates vector quantization with graph-based indexing to build efficient approximate nearest neighbor (ANN) indexes for high-dimensional vector search. It is aimed at vector databases and similarity search workloads where combining compact quantized codes with navigable graphs improves recall–latency trade-offs and reduces memory usage.
degree_bound parameter to control graph connectivity and index size.data/
symqglib/
index/
fastscan/: helper functions for FastScan-style operations.qg/: implementation of the quantized graph index.third/: third-party dependencies needed by the library.utils/: common utility functions.python/
reproduce/
test/
symphonyqg.Index(index_type, metric, num_elements, dimension, degree_bound=32)
index_type: type of ANN index to build (e.g., specific quantization/graph variant; exact values in repo docs/code).metric: distance/similarity metric (e.g., L2, inner product; details in repo).num_elements: number of vectors the index will hold.dimension: dimensionality of each vector.degree_bound (optional, default = 32): upper bound on graph node degree to control index sparsity and memory.build_index(data, EF, num_iter=3, num_threads=ALL_THREADS)
data: input dataset, shape (num_elements, dimension), dtype=float32.EF: construction/search breadth parameter (controls exploration during graph-based search/build).num_iter: number of construction iterations (default 3).num_threads: number of threads to use (default ALL_THREADS).save(filename)
load(filename)
set_ef(EF)
EF to trade off latency vs. recall without rebuilding the index.search(query, k)
query: query vector(s), shape (dimension,) or (1, dimension), dtype=float32.k: number of nearest neighbors to retrieve.README.md../reproduce../data/README.md../reproduce/README.md.LICENSE file is present in the repository; consult it directly for the exact open-source license terms.SymphonyQG is an open-source research codebase hosted on GitHub. No pricing or paid plans are specified in the available content.
Loading more......