Benchmarks
Reasoning-grade retrieval at millisecond latency — methodology, macro and per-capability results, and the honest fine print. Numbers are measured; the model is early in training.
Rekall is benchmarked on a 25-capability synthetic reasoning benchmark. We lead with per-capability results, named against their baselines, because that is where the real story is: reasoning-shaped tasks at millisecond latency on a CPU.
Methodology
- Suite: 25-capability synthetic reasoning benchmark — 287 documents, 300 questions, a single shared store.
- Metric: support recall@|gold| — did the method retrieve the passages that actually support the answer?
- Baselines:
- BM25 — lexical keyword search.
- Embedding (8B) — Qwen3-Embedding-8B, an 8B-parameter embedding model.
- Agentic (9B) — a 3-round agentic loop over a 9B LLM (Qwen3.5-9B).
- SKIM checkpoints: the hierarchical variant here is an early checkpoint (1B training tokens, still training); the transformer variant is more trained (5B tokens).
- Latency is CPU, engine-only, measured server-side. Agentic and embedding baselines run on a GPU.
Headline — macro across 25 capabilities
| Method | Macro score | Latency | Hardware |
|---|---|---|---|
| Agentic loop (Qwen 9B, 3-round) | 0.798 | 2,969 ms | GPU |
| SKIM — transformer variant (5B) | 0.693 | 4.4 ms | CPU |
| Embedding model (Qwen 8B) | 0.600 | ~ms | GPU |
| SKIM — hierarchical (1B, in training) | 0.577 | ~4 ms | CPU |
| BM25 | 0.515 | ~ms | CPU |
SKIM runs ~670× faster than the agentic loop — measured 4.4 ms vs 2,969 ms, on a CPU. On quality, the transformer variant reaches up to 87% of the agentic reasoning score (0.693 / 0.798) at 0.15% of the latency; the hierarchical checkpoint — still early in training — is at 72% (0.577 / 0.798), and already beats BM25 while approaching the 8B embedding model at a fraction of its size.
Reading the two-number story
0.693 macro at 4.4 ms on a CPU versus 0.798 at ~3,000 ms on a GPU. The durable finding is the shape — reasoning-grade retrieval at millisecond latency — not any single headline number. The 87% figure is defensible only against the transformer variant; we never state it for the hierarchical checkpoint.
Where reasoning wins
On the tasks that break similarity search, SKIM matches or beats models far larger than itself. Every column names its baseline.
| Capability | BM25 | Embed 8B | Agentic 9B | SKIM |
|---|---|---|---|---|
| contradiction | 0.50 | 0.50 | 0.50 | 1.00 |
| fact_reconciliation | 0.33 | 1.00 | 0.33 | 1.00 |
| hypothesis_validation | 0.42 | 0.83 | 1.00 | 1.00 |
| cross_doc_reasoning | 0.04 | 0.25 | 0.69 | 0.50 |
| evidence_aggregation | 0.04 | 0.46 | 0.81 | 0.71 |
| multi_hop | 0.13 | 0.42 | 1.00 | 0.50 |
The single clearest result is contradiction detection: SKIM scores 1.00 where BM25, the 8B embedding model, and the 9B agentic loop all score 0.50. This is the thesis in one number — retrieval that reasons finds things similarity cannot.
Where it still lags
Honesty matters more than a clean chart. On structural and lexical tasks, the pure embedder's raw lexical match currently wins:
| Capability | SKIM (1B) |
|---|---|
| dependency_analysis | 0.00 |
| root_cause | 0.33 |
| long_range_dependency | 0.33 |
These improve as training continues — the base is at 2.3B tokens and rising, with reruns at 3B / 4B / 5B in progress. The hierarchical checkpoint here is early; the numbers will move.
Long-document ingestion
Whole-document, unchunked ingestion is practical because SKIM's hierarchical attention is ~O(L), not O(L²). Measured against dense attention at 4,000 tokens: 3.4× faster and 63× less attention memory. Chunking strategy — the fiddliest part of every RAG pipeline — disappears.
Reproduction
The methodology, corpus, and reproduction scripts are published. The benchmark table
generator is build_table.py; the full method and comparison live in
SKIM_COMPARISON.md. Model artifacts are in DO Spaces under
skim_search_loop/{bases,eval_models}/.
Fine print
Synthetic reasoning benchmark; SKIM is an early checkpoint still in training — numbers will move. Metric: support recall@|gold|. Full methodology, corpus, and reproduction scripts published. We lead with per-capability results because aggregate claims hide more than they show.
LangChain & LlamaIndex retriever swap
Swap your vector retriever for Rekall in one line. Whole-document ingestion kills the chunking pipeline; the reasoning loop handles the queries similarity search fails on.
Changelog
Release notes for Rekall — Neural Search. What shipped, when, across the CLI, REST API, MCP server, and both SDKs.