ruview @ v1759
integrity
- size
- 61.7 MiB
- downloaded
- last checked
release notes
Automated release from CI pipeline
Changes: feat(ADR-261 M2): multi-bit + large-N ANN scaling study — measured, no crossover (refutes M1 prediction) (#1066)
- feat(ADR-261): multi-bit (b∈{1,2,4}) quantized HNSW traversal + scaling harness
Generalize the SymphonyQG-style quantized-traversal HNSW from 1-bit Hamming to a b-bit-per-dimension code (b ∈ {1,2,4}), mirroring ADR-156 §10's multi-bit RaBitQ scheme (rotate via FHT Pass-2, uniform mid-rise scalar quantizer over [-3,3], ranked by per-dim L1). b=1 is byte-for-byte the original construction (codes in {0,1} ⇒ L1 == Hamming), pinned by one_bit_build_bits_matches_legacy_build. Bytes/node scales linearly: 128-d → 16/32/64 B for b=1/2/4.
- hnsw_quantized.rs: QuantizedHnswIndex::build_bits(...,bits,...), bits()/ bytes_per_node() accessors, code-L1 greedy+beam traversal. build(...) kept as the b=1 backward-compatible entry point. +4 tests (multi-bit recall regression, bits clamp, bytes/node, legacy parity).
- ann_measure.rs: build_indices_bits / build_quant_bits / run_scaling_study + best_float_op / best_quant_op; scaling_report (#[ignore], --release) and a CI-safe scaling_study_small_is_consistent.
- ann_bench.rs: 2-bit and 4-bit quant criterion benches over the shared graph.
ruvector lib 151 → 156 passed, 0 failed, 1 ignored (scaling_report).
Co-Authored-By: claude-flow ruv@ruv.net
- docs(adr-261): record M2 multi-bit scaling study — measured, no crossover (refutes M1 prediction)
Multi-bit (b∈{1,2,4}) quantized HNSW traversal + N∈{10k,100k,250k} scaling study, measured on this box. No crossover at any (N,b): at 10k more bits help (ratio 0.19→0.48×, b≥2 reaches 0.90 recall) but quant stays slower than float HNSW at equal recall; at 100k/250k quant recall collapses (b=4: 1.0→0.788→0.624, never ≥0.90) while float holds ≥0.92. The predicted large-N crossover moved the wrong way. Published negative with the mechanism explained. ADR-261 §11.
Co-Authored-By: claude-flow ruv@ruv.net
Co-authored-by: ruv ruvnet@gmail.com
Docker Image:
ghcr.io/ruvnet/RuView:1f05456588ccccc03ef487b76959e2685425f02a
download
curl -fL -o v1759.zip https://ratatoskr.space/pkg/ruview/v1759.zip
printf '%s %s\n' 'd1f8f2b2e34d433a7435346da3f05610961d45ae6c2761196239c66cd9b4c3fc' 'v1759.zip' | sha256sum -c -
$url = "https://ratatoskr.space/pkg/ruview/v1759.zip"
$out = "v1759.zip"
Invoke-WebRequest -Uri $url -OutFile $out
if ((Get-FileHash $out -Algorithm SHA256).Hash.ToLowerInvariant() -ne "d1f8f2b2e34d433a7435346da3f05610961d45ae6c2761196239c66cd9b4c3fc") { throw "sha256 mismatch" }
curl -fL -o v1759.tar.gz https://ratatoskr.space/pkg/ruview/v1759.tar.gz
printf '%s %s\n' '7399f861a4827de4d65c7be9e8c711ddeba292bce864ec07f589cf863caac4c3' 'v1759.tar.gz' | sha256sum -c -
$url = "https://ratatoskr.space/pkg/ruview/v1759.tar.gz"
$out = "v1759.tar.gz"
Invoke-WebRequest -Uri $url -OutFile $out
if ((Get-FileHash $out -Algorithm SHA256).Hash.ToLowerInvariant() -ne "7399f861a4827de4d65c7be9e8c711ddeba292bce864ec07f589cf863caac4c3") { throw "sha256 mismatch" }
download via yggdrasil mesh
curl -fL -o v1759.zip http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/ruview/v1759.zip
printf '%s %s\n' 'd1f8f2b2e34d433a7435346da3f05610961d45ae6c2761196239c66cd9b4c3fc' 'v1759.zip' | sha256sum -c -
$url = "http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/ruview/v1759.zip"
$out = "v1759.zip"
Invoke-WebRequest -Uri $url -OutFile $out
if ((Get-FileHash $out -Algorithm SHA256).Hash.ToLowerInvariant() -ne "d1f8f2b2e34d433a7435346da3f05610961d45ae6c2761196239c66cd9b4c3fc") { throw "sha256 mismatch" }
curl -fL -o v1759.tar.gz http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/ruview/v1759.tar.gz
printf '%s %s\n' '7399f861a4827de4d65c7be9e8c711ddeba292bce864ec07f589cf863caac4c3' 'v1759.tar.gz' | sha256sum -c -
$url = "http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/ruview/v1759.tar.gz"
$out = "v1759.tar.gz"
Invoke-WebRequest -Uri $url -OutFile $out
if ((Get-FileHash $out -Algorithm SHA256).Hash.ToLowerInvariant() -ne "7399f861a4827de4d65c7be9e8c711ddeba292bce864ec07f589cf863caac4c3") { throw "sha256 mismatch" }
| artifact | format | size | hashes |
|---|---|---|---|
| v1759.zip | zip | 61.7 MiB |
blake3-24 56cbf8600131ee27e22f8e03b50594ec306bcfeeea34f5a2
sha256 d1f8f2b2e34d433a7435346da3f05610961d45ae6c2761196239c66cd9b4c3fc
sha1 25d5b4360e6316562ceccfb6ce19b5ed8c3727cd
|
| v1759.tar.gz | tar.gz | 59.9 MiB |
blake3-24 c4a8f33a087baea4a04a962b63ff76dd039648473f52aa42
sha256 7399f861a4827de4d65c7be9e8c711ddeba292bce864ec07f589cf863caac4c3
sha1 f37ffe0e6e74cf414cc8008f6b82ada1a390bbca
|
install
http_archive(
name = "ruview",
urls = ["https://ratatoskr.space/pkg/ruview/v1759.tar.gz"],
integrity = "sha256-c5n4YaSCfeTWXHvp6McR3euikrzoZOwH9YnPhjyqxMM=",
strip_prefix = "ruview-v1759",
)
.url = "https://ratatoskr.space/pkg/ruview/v1759.tar.gz",
install via yggdrasil mesh
http_archive(
name = "ruview",
urls = ["http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/ruview/v1759.tar.gz"],
integrity = "sha256-c5n4YaSCfeTWXHvp6McR3euikrzoZOwH9YnPhjyqxMM=",
strip_prefix = "ruview-v1759",
)
.url = "http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/ruview/v1759.tar.gz",