From e793c355eacf7a4b6b9fa32418fd729bab2ba2ae Mon Sep 17 00:00:00 2001 From: Claude Date: Sat, 16 May 2026 07:36:53 +0000 Subject: [PATCH] =?UTF-8?q?docs(research):=20add=20full=20benchmark=20resu?= =?UTF-8?q?lts=20(N=E2=88=88{1k,10k,50k})=20to=20RVQ=20research=20doc?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Full-run numbers (100 queries, D=128, M=8, K=64, 4-core x86_64): N=1k: Greedy 71.2% recall, 13 872 QPS | Rerank×5 99.8%, 11 574 QPS N=10k: Greedy 31.4% recall, 7 561 QPS | Rerank×5 76.7%, 5 665 QPS N=50k: Greedy 14.0% recall, 2 300 QPS | Rerank×5 40.4%, 2 185 QPS All at 64× compression (512B → 8B). Confirms the recall cliff at large N motivating K=256 and IVFRVQ in the roadmap. --- .../nightly/2026-05-16-residual-vq/README.md | 28 +++++++++++++++---- 1 file changed, 23 insertions(+), 5 deletions(-) diff --git a/docs/research/nightly/2026-05-16-residual-vq/README.md b/docs/research/nightly/2026-05-16-residual-vq/README.md index 5fa56d3a..aa6700e5 100644 --- a/docs/research/nightly/2026-05-16-residual-vq/README.md +++ b/docs/research/nightly/2026-05-16-residual-vq/README.md @@ -188,14 +188,32 @@ Not a substitute for SIFT1M but reproducible with zero external data. ### Full-mode results (N ∈ {1k, 10k, 50k}, K=64, D=128, M=8, 100 queries) -*(Run `cargo run --release -p ruvector-residual-vq --bin rvq-demo` to reproduce.)* +*(Run `cargo run --release -p ruvector-residual-vq --bin rvq-demo` to reproduce. +Hardware: 4-core x86_64, release build.)* -**N = 1 000** — same as fast-mode above. +**N = 1 000** -**N = 10 000** — Greedy ~0.28 recall, Rerank ~0.80+ recall at ~7K QPS. +| Variant | Build (ms) | Enc (μs/vec) | Search QPS | Recall@10 | Mem (MB) | Compress | +|------------------|-----------|-------------|-----------|----------|---------|---------| +| RVQ-Greedy (A) | 1 137 | 62.9 | 13 872 | 71.2% | 0.301 | 64× | +| RVQ-Beam4 (B) | 1 339 | 261.7 | 13 810 | 71.0% | 0.301 | 64× | +| RVQ-Rerank×5 (C) | 1 149 | 60.4 | 11 574 | 99.8% | 0.813 | 64× | -**N = 50 000** — Greedy ~0.15 recall, Rerank ~0.65 recall; demonstrates the recall -cliff that motivates larger K (256→512) or IVF+RVQ combination (see roadmap). +**N = 10 000** + +| Variant | Build (ms) | Enc (μs/vec) | Search QPS | Recall@10 | Mem (MB) | Compress | +|------------------|-----------|-------------|-----------|----------|---------|---------| +| RVQ-Greedy (A) | 11 316 | 61.4 | 7 561 | 31.4% | 0.625 | 64× | +| RVQ-Beam4 (B) | 13 246 | 255.2 | 7 299 | 32.2% | 0.625 | 64× | +| RVQ-Rerank×5 (C) | 11 397 | 61.5 | 5 665 | 76.7% | 5.745 | 64× | + +**N = 50 000** + +| Variant | Build (ms) | Enc (μs/vec) | Search QPS | Recall@10 | Mem (MB) | Compress | +|------------------|-----------|-------------|-----------|----------|---------|---------| +| RVQ-Greedy (A) | 38 087 | 63.3 | 2 300 | 14.0% | 2.065 | 64× | +| RVQ-Beam4 (B) | 48 693 | 252.9 | 2 281 | 14.3% | 2.065 | 64× | +| RVQ-Rerank×5 (C) | 37 960 | 61.4 | 2 185 | 40.4% | 27.665 | 64× | ### Key Takeaways