research(nightly): rairs-ivf — RAIRS IVF, ruvector's first Inverted File Index (ADR-193)#459
Draft
ruvnet wants to merge 1 commit into
Draft
research(nightly): rairs-ivf — RAIRS IVF, ruvector's first Inverted File Index (ADR-193)#459ruvnet wants to merge 1 commit into
ruvnet wants to merge 1 commit into
Conversation
… (ADR-193) Implements Yang & Chen, SIGMOD 2026 (arXiv:2601.07183): three variants of IVF with Redundant Assignment + Amplified Inverse Residual + SEIL layout. Three measurable variants (N=5K, D=128, 64 clusters, cargo --release): IvfFlat nprobe=1 recall@10 61.3% mem 2,571 KB 26,984 QPS RairsStrict nprobe=1 recall@10 83.8% mem 5,110 KB 13,243 QPS RairsSeil nprobe=1 recall@10 93.1% mem 2,571 KB 13,582 QPS RairsSeil: +31.8 pp recall at nprobe=1 vs IvfFlat with identical memory. Files: crates/ruvector-rairs/ — new crate (IvfFlat, RairsStrict, RairsSeil) docs/adr/ADR-193-rairs-ivf.md — architecture decision record docs/research/nightly/2026-05-12-rairs-ivf/README.md — SOTA survey + results Cargo.toml — workspace member added 10/10 unit tests pass. cargo build --release -p ruvector-rairs green.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
crates/ruvector-rairs— ruvector's first Inverted File Index (IVF) familyAnnIndextrait:IvfFlat,RairsStrict,RairsSeilcargo build --release -p ruvector-rairsgreenBenchmark results (x86-64, rustc 1.87.0 --release, N=5K D=128)
Files
crates/ruvector-rairs/— new standalone crate (IvfFlat + RairsStrict + RairsSeil)docs/adr/ADR-193-rairs-ivf.md— architecture decision recorddocs/research/nightly/2026-05-12-rairs-ivf/README.md— full SOTA survey + results + roadmapRAIRS algorithm
Each vector is assigned to a primary centroid (nearest by L2) and a secondary centroid chosen by the RAIR metric:
where
r_p = v − c_primaryis the primary residual. This prefers secondaries that cover the opposite side of the Voronoi boundary, maximising recall for queries near boundaries.SEIL (Shared-cell Enhanced IVF Lists) stores shared vectors in 32-entry blocks in the lower-indexed list and holds
Ref { list, block }pointers in the secondary list — achieving dual-assignment recall with single-assignment memory.Test plan
cargo build --release -p ruvector-rairs— greencargo test -p ruvector-rairs— 10/10 passcargo run --release -p ruvector-rairs --bin rairs-demo— real numbers captured