Linkup published its newest retrieval model as open weights rather than a product behind a contract.
SPARSEUP runs on a 149M-parameter ModernBERT backbone and ships under Apache 2.0 on Hugging Face. BEIR-13 scores average 56.4 nDCG@10. Linkup’s claim is that nothing else public, vocabulary-based and under 150M parameters beats it.
Sparse retrieval differs from the dense embeddings that dominate modern stacks. A dense model returns one vector per passage. A sparse model assigns weights across an entire vocabulary, so each dimension maps to a real token.
Two practical consequences follow. Vectors drop straight into inverted indexes, and scores stay readable to a human. Rare words also tend to survive better than they do in dense representations.
Training started from an open late-interaction checkpoint, whose masked-language head had to be restored first. Contrastive learning did the rest, with seven hard negatives per query drawn from a pool of 50 plus in-batch negatives. The whole run fits on one H100.
Early versions produced token bags stuffed with stopwords. Linkup fixed that with logit shifting, per-position top-k keeping each input token’s 12 strongest dimensions, and case folding to stop capitalization variants from burning separate slots.
Open dense and late-interaction models from the same recipe family already exist, so teams can now compare all three retrieval styles directly.