Skip to content

research(nightly): SOAR — Spilling Orthogonal Anti-correlated Refinement for IVF#447

Draft
CrossGen-ai wants to merge 1 commit intoruvnet:mainfrom
CrossGen-ai:research/nightly/2026-05-08-soar-orthogonal-spillover-ivf
Draft

research(nightly): SOAR — Spilling Orthogonal Anti-correlated Refinement for IVF#447
CrossGen-ai wants to merge 1 commit intoruvnet:mainfrom
CrossGen-ai:research/nightly/2026-05-08-soar-orthogonal-spillover-ivf

Conversation

@CrossGen-ai
Copy link
Copy Markdown

Nightly research branch: SOAR (Sun et al., NeurIPS 2024) — pure-Rust IVF assignment that replaces "second-nearest centroid" with an anti-correlated secondary, eliminating the redundancy problem in classical 2× spillover.

Deliverables on this branch

  • New crate crates/ruvector-soar (~600 LoC). Assignment::{Single, Spillover, Soar{lambda}} behind one enum; identical query path.
  • ADR-194: docs/adr/ADR-194-soar-orthogonal-spillover-ivf.md
  • Research doc: docs/research/nightly/2026-05-08-soar-orthogonal-spillover-ivf/README.md
  • 4 integration tests pass (cargo test -p ruvector-soar)
  • Demo binary + criterion bench

Measured (Apple M4 Max, rustc 1.89.0, --release)

  • Mean residual correlation: Spillover +0.231 → SOAR λ=4 +0.143 (-38%) — confirms orthogonalization objective.
  • Query latency at equal posting cost: 52.1 µs → 42.9 µs (-18%) at N=20k, dim=64, k=256, n_probe=4.
  • Build cost: SOAR ~30–45% slower than Spillover (extra centroid pass for anti-correlation scoring).

Honest limitations

On synthetic Gaussian clusters with uniform queries, SOAR matches Spillover's recall to ±0.005 — not the +3–8 pp improvement reported in the paper. The paper's gains appear on real high-dim embedding distributions (deep1B, glove, Cohere). Real-dataset validation is queued; see roadmap in the research doc.

Public gist

https://gist.github.com/CrossGen-ai/98e1361942bf09f66858980e25dd9838

Reproduce

```bash
cargo run -p ruvector-soar --release --bin soar-demo
cargo bench -p ruvector-soar -- --quick
cargo test -p ruvector-soar --release
```

🤖 Generated by the ruvector nightly research routine.

…ated Refinement for IVF

Pure-Rust, no-unsafe implementation of the SOAR assignment strategy
(Sun et al., NeurIPS 2024) for IVF-based ANN. Three pluggable
strategies behind one Assignment enum: Single, Spillover, Soar{lambda}.

Measured on Apple M4 Max (rustc 1.89.0):
- Mean residual correlation: Spillover +0.231 → SOAR λ=4 +0.143 (-38%)
  — confirms the orthogonalization objective is implemented faithfully.
- Query latency at equal posting cost: SOAR is 18% faster than plain
  Spillover (52.1 µs → 42.9 µs at N=20k, dim=64, k=256, n_probe=4)
  due to better dedup load balancing across probed cells.
- Build cost: SOAR ~30–45% slower than Spillover (extra centroid scan
  per vector for the anti-correlation penalty).
- All 4 integration tests pass; criterion bench confirms numbers.

Composition with ruvector-rabitq / ruvector-lvq is queued in the
research doc roadmap. ADR-194 documents the decision; full research
write-up at docs/research/nightly/2026-05-08-soar-orthogonal-spillover-ivf/.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant