Skip to content

0.1.6 — RROQ158 SOTA Default at group_size=128

Choose a tag to compare

@ddickmann ddickmann released this 20 Apr 14:33
· 16 commits to main since this release
b3de46f

This release promotes the dim-aware Rroq158Config(group_size=128) lane to
the build-time default for newly created RROQ158 indexes — closing the
production-validation arc started in 0.1.5 (Phase 7 / Phase 8).

Highlights

  • ~13% smaller per-token storage (~40 vs ~46 bytes/token at dim=128;
    ~6.4× smaller than fp16, up from ~5.5×).
  • CPU p95 ~10–30% faster on the BEIR-6 mean (one fewer scale load per
    group in the popcount kernel; nfcorpus −22%, scifact −15%, scidocs −10%,
    fiqa within +2% noise).
  • NDCG@10 within ±0.005 of the previous gs=32 baseline; per-dataset
    mean Δ vs gs=32 across BEIR-6 = +0.0006 — Pareto-equal in quality
    while delivering smaller storage AND lower-or-equal CPU p95 on every
    dataset measured.
  • Dim-aware fallback _resolve_group_size(requested, dim)
    transparently steps down to gs=64 / gs=32 (with a log warning) on
    production corpora whose token dim is not divisible by 128, so the new
    default works on dim=64 / 96 / 128 / 160 alike without caller changes.

Headline BEIR-6 averages (rroq158 gs=128 default)

Codec NDCG@10 R@100 GPU p95 (ms) CPU p95 (ms)
fp16 (baseline) 0.5206 0.7360 4.0 (1.00×) 103 (1.00×)
rroq158 (gs=128, default) 0.5069 0.7298 4.8 (1.20×) 310 (3.00×)
rroq158 (gs=32) 0.5063 0.7282 4.8 (1.20×) 325 (3.15×)
rroq4_riem 0.5158 0.7345 8.5 (2.13×) 580 (5.63×)

Full per-dataset / per-codec sweep:
reports/beir_2026q2_gs128/.

Migration

Existing on-disk indexes are unaffected — the manifest carries the
build-time group_size and only newly built indexes pick up the new
default.

  • Pin Rroq158Config(group_size=32) to restore the previous default
    exactly.
  • Pin Rroq158Config(group_size=64) for the safest cross-dataset choice
    (covers high-intra-token-variance corpora like arguana).

See docs/guides/quantization-tuning.md
for the full decision matrix and per-dim recipe table.

Install

pip install --upgrade voyager-index==0.1.6
# native (optional, for the Rust SIMD CPU kernel + tabu solver):
pip install --upgrade voyager-index[native]==0.1.6
# full (server + multimodal + native + GPU triton):
pip install --upgrade voyager-index[full,gpu]==0.1.6

Full changelog and merged PRs in
CHANGELOG.md.