research(nightly): dabs-hnsw — Distance Adaptive Beam Search, NeurIPS 2025#439
Draft
research(nightly): dabs-hnsw — Distance Adaptive Beam Search, NeurIPS 2025#439
Conversation
…NeurIPS 2025) Implements DABS algorithm (Al-Jazzazi et al., arXiv:2505.15636) as standalone Rust crate `crates/ruvector-dabs`. DABS replaces fixed-ef beam termination with a distance-ratio criterion that carries a formal (1+γ)² approximation guarantee. Key results (N=10K, D=128, M=16, release build): - DABS γ=0.20: 90.25% recall vs fixed_ef best of 84.85% (+5.4 pp) - DABS γ=0.10: 0.676 recall at 5739 QPS (matched to fixed_ef=64 at 5852 QPS) - 14 passing tests (cargo test), clean build (cargo build --release) crate layout: src/dist.rs — L2², partial, inner product src/graph.rs — DabsGraph build + search_fixed_ef + search_dabs src/index.rs — DabsIndex, SearchMode enum, recall_at_k src/main.rs — benchmark binary with real numbers benches/ — criterion benchmarks https://claude.ai/code/session_01YKyYGSo6FVQfhLwaH4xEVp
…-193 Research document at docs/research/nightly/2026-05-08-dabs-hnsw/README.md: - SOTA survey: DABS (NeurIPS 2025), LoRANN (NeurIPS 2024), PEOs (ICML 2024) - Algorithm design, implementation notes, benchmark methodology - Real benchmark results, how-it-works walkthrough, failure modes - Production crate layout proposal, roadmap ADR-193 at docs/adr/ADR-193-dabs-hnsw.md: - Status: accepted - Decision: standalone crates/ruvector-dabs with SearchMode enum - Consequences, alternatives considered (LoRANN, PEOs, Matryoshka, ef scaling) https://claude.ai/code/session_01YKyYGSo6FVQfhLwaH4xEVp
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.
Nightly Research: Distance Adaptive Beam Search (DABS) for HNSW
Paper: Al-Jazzazi et al., NeurIPS 2025 — arXiv:2505.15636
ADR: ADR-193
Research doc:
docs/research/nightly/2026-05-08-dabs-hnsw/README.mdNew crate:
crates/ruvector-dabsGist: https://gist.github.com/ruvnet/9ee9bc849824f6a91429c81746b59f94
What is DABS?
DABS replaces the fixed-ef beam search termination condition in HNSW with a distance-ratio criterion:
where d_k is the current k-th nearest discovered distance. This single condition change carries a formal (1+γ)² approximation guarantee on navigable graphs — the first provable accuracy bound in ruvector's graph search stack.
Benchmark Results (N=10K, D=128, M=16, release build, x86_64)
Key result: DABS γ=0.20 achieves 90.25% recall — +5.4 pp above the fixed-ef ceiling (84.85%). DABS breaks through the recall wall that any finite ef parameter imposes.
Deliverables
crates/ruvector-dabs/— working Rust crate (cargo build --release,cargo test14/14 pass)docs/adr/ADR-193-dabs-hnsw.md— ADR with decision, consequences, alternativesdocs/research/nightly/2026-05-08-dabs-hnsw/README.md— full research doc with SOTA survey, benchmark methodology, walkthrough, failure modes, roadmapFiles Changed
Follow-on Work (not in this PR)
SearchMode::Dabs { gamma }intoruvector-coreHNSW search pathcalibrate_gamma(queries, target_recall)utility functionhttps://claude.ai/code/session_01YKyYGSo6FVQfhLwaH4xEVp