linkup-sparseup-embed-v1
> **TL;DR:** SPARSEUP is a strong and efficient sparse retriever trained on the same backbone family and fine-tuning data as DenseOn / LateOn (149M, ModernBERT). Strongest public vocabulary-based sparse encoder we know of under 150M on BEIR-13 (56.4 nDCG@10). Apache 2.0. Use it! LightOn released open data and a recipe to train **DenseOn** (single-vector) and **LateOn** (late interaction). **SPARSEUP** fills the missing slot: a learned sparse embedding model, so the three architectures can be compared with backbone and data held fixed. The model is initialized from `LateOn-unsupervised` with ModernBERT’s MLM `head` / `decoder.bias` grafted on (`decoder.weight` stays tied to LateOn embeddings). Contrastive fine-tuning on LightOn’s mixture (7 hard negatives sampled from 50, plus in-batch). No cross-encoder distillation. Three extra knobs *vs* vanilla SPLADE-like model: 1. **`logit_shift=15`** — `log(1 + ReLU(x − 15))` so ReLU support starts sparse 2. **`position_top_k=12`** — each token keeps 12 vocab dims max before pooling (expansion budget) 3. **`vocab_fold=case_space`** — fold case / `Ġ` surface forms onto one id after pooling (avoid duplication of surface forms = improve efficiency). Voc goes from 50*k* to ~34*k*.
翻訳準備中のため原文を表示しています
> **TL;DR:** SPARSEUP is a strong and efficient sparse retriever trained on the same backbone family and fine-tuning data as DenseOn / LateOn (149M, ModernBERT). Strongest public vocabulary-based sparse encoder we know of under 150M on BEIR-13 (56.4 nDCG@10). Apache 2.0. Use it! LightOn released open data and a recipe to train **DenseOn** (single-vector) and **LateOn** (late interaction). **SPARSEUP** fills the missing slot: a learned sparse embedding model, so the three architectures can be compared with backbone and data held fixed. The model is initialized from `LateOn-unsupervised` with ModernBERT’s MLM `head` / `decoder.bias` grafted on (`decoder.weight` stays tied to LateOn embeddings). Contrastive fine-tuning on LightOn’s mixture (7 hard negatives sampled from 50, plus in-batch). No cross-encoder distillation. Three extra knobs *vs* vanilla SPLADE-like model: 1. **`logit_shift=15`** — `log(1 + ReLU(x − 15))` so ReLU support starts sparse 2. **`position_top_k=12`** — each token keeps 12 vocab dims max before pooling (expansion budget) 3. **`vocab_fold=case_space`** — fold case / `Ġ` surface forms onto one id after pooling (avoid duplication of surface forms = improve efficiency). Voc goes from 50*k* to ~34*k*.
AI NEWS.cc