Nemotron-3-Embed-1B compression — experiment archive
Supporting data for the blog post The Middle Wasn't Broken This Time. Every method was evaluated on the same two embedding sets — SciFact (1600-doc subset, 300 test queries) and STS-B test (1379 pairs) — encoded with nvidia/Nemotron-3-Embed-1B-BF16. remax and remex rows are means over seeds 0–4. The full harness lives in remax PR #52.
Charts
- nemotron_master.png — the master Pareto: every method (BF16, NVFP4, remax, remex, int8, PQ, float32 truncation) on nDCG@10 and Spearman vs bytes/vec.
- nemotron_baselines.png — the four embedding-quant families alone, memory-matched, with each method's tradeoff named.
- nemotron_1bit.png — the original remax-only 1-bit/stacked/MRL view.
Numbers (CSV, served raw)
- nemotron_seeds.csv — remax sign codes (1-bit, stacked k=2/4, MRL slices) + float32-truncation references, mean±std over five seeds.
- nemotron_remex.csv — remex Lloyd-Max 2/3/4-bit, mean±std. This is where the un-broken middle lives.
- nemotron_baselines.csv — int8 scalar + faiss product quantization at matched byte budgets.
- nemotron_nvfp4.csv — NVFP4 vs BF16 quality and the remax composition test.
- nemotron_latency.csv — query-time scan cost per method (n=1600, single thread).
- nemotron_1bit.csv — the original seed-0 remax grid.
Writeups
- NEMOTRON_MASTER.md — the full comparison: two axes of quantization, who owns which byte budget, and the honest note on why the broken middle doesn't reproduce here.
- NEMOTRON_1BIT.md — the first-pass remax-only result (32× compression at −0.02 nDCG), multi-seed error bars, int8/PQ baselines, and latency.
Reproducing NVFP4 on a CPU
The reconstruction — FP4 e2m1 weights × FP8 block scales × global scale, dequantized to float32 and run without a GPU — is a single script, bench/nvfp4_dequant_encode.py, with an offline selftest for the FP4 decode. Validated at per-weight cosine 0.9955 vs the BF16 twin.
Files are markdown / CSV / PNG served raw. The narrative reads cleanest in this order: NEMOTRON_MASTER.md → nemotron_master.png → the CSVs.