Skip to content

v0.3.0 — Phase 4: ANN index from scratch (IVF + HNSW)

Choose a tag to compare

@cattolatte cattolatte released this 14 Jul 06:10

Sub-linear vector search, built from scratch and benchmarked against the brute-force ground truth. No external ANN library.

  • IVFIndex: seeded k-means (k-means++ init) → nlist cells; nprobe search with exact rerank in probed cells (nprobe=nlist recovers brute-force recall).
  • HNSWIndex: from-scratch hierarchical navigable small-world graph (M / efConstruction / efSearch); property-tested to ≥0.90 recall vs brute force across seeds.
  • Backend switch by config: meridian ask --ann {none,ivf,hnsw}, and in evaluate.py; DenseRetriever now searches any VectorIndex.
  • Benchmark + ADR-0005: committed recall/latency figure — HNSW reaches recall@10 ≈ 0.999 at efSearch=16, below brute-force latency (synthetic N=2000). Default backend: HNSW (reaffirmed from real embeddings before v1.0).

Real recall/latency/RAM on the corpus pending the Phase-3 embeddings.