Unfold search reranker, French and English
Version 2026.10.30, built 2026-10-30T01:28:31Z.
The reranker that Unfold Note runs offline, on the device, in its search over the user's own Obsidian notes for the chat. It scores a question against each of the top 30 excerpts the search found, to put the best ones first.
- Base model:
cross-encoder/mmarco-mMiniLMv2-L12-H384-v1at commit1427fd652930e4ba29e8149678df786c240d8825(apache-2.0). This repository redistributes it under the base model's licence; nothing else is added. - Model file:
model.int8.onnx, quantised to INT8 (onnxruntime dynamic, per channel). Vocabulary: the base model's full vocabulary. - Settings: max_len 512 tokens for the pair, score = logit[0].
- Runs on CPU with onnxruntime. Minimum app version: 2.8.0.
Training data (from the base model's card)
- unicamp-dl/mmarco
- This model was trained on the MMARCO dataset. It is a machine translated version of MS MARCO using Google Translate. It was translated to 14 languages. In our experiments, we observed that it performs
Licence note: training data lists mMARCO: "unicamp-dl/mmarco". Published with the owner's explicit approval (--allow-licence).
Gates
Measured with the app's own search code (word search, meaning search, reranking) on a synthetic French and English vault of 60 notes with 40 questions, and on the owner's real vault (scores only, no note content published).
| gate | bar | value | result |
|---|---|---|---|
| hits8_bootstrap_real | owner ruling 2026-10-30: hits@8 or MRR gain with a paired bootstrap 95 % interval excluding zero (real set), and hits@8 does not drop | {'base': 'word + e5 fren-int8', 'hits8': [0.865, 0.904], 'hits8_delta': 0.038, 'hits8_ci95': [0.0, 0.096], 'mrr': [0.688, 0.831], 'mrr_delta': 0.143, 'mrr_ci95': [0.067, 0.225]} | pass |
| rerank_latency_30 | median <= 1.5 s for 30 candidates on the reference PC (i7-14700F, 4 threads) | {'real_p50_ms': 1425, 'real_p95_ms': 1838, 'bounded_real_p50_ms': 1412, 'synthetic_p50_ms': 430} | pass |
| int8_mrr_vs_fp32 | INT8 MRR >= fp32 MRR - 0.02 | {'int8': 0.831, 'fp32': 0.831} | pass |
Integrity
reranker-model.json lists every model file with its size and sha256. The app verifies them after download.