Mindket

SPARSEUP

Newversion 1 · updated

Overview

A 188M-parameter English sparse retrieval model from Linkup that turns queries and documents into weighted word lists for search. It scores 56.4 on BEIR, the best public result under 150M.

SPARSEUP is a kit in the Developer category, listed by Mindket. It is free. This is version 1, last updated on . Download it on this page, a zip of its files. Nothing in it runs by itself.

At a glance

You need
  • Python with pip and transformers
  • About 754 MB of disk for the F32 weights
  • Willingness to run the repository's custom code
Runs in
  • Python with transformers
  • Sentence Transformers, as the card lists
  • Seismic, an approximate sparse search engine the authors used
Start with
pip install -U huggingface_hub
hf download Linkup-Platform/linkup-sparseup-embed-v1

About

What it is

SPARSEUP is a learned sparse embedding model for search. It turns a query or document into a list of vocabulary terms with weights, and a dot product between two such lists gives the match score.

Linkup built it to sit next to LightOn's DenseOn and LateOn. All three share a backbone family and fine-tuning data, so the designs compare cleanly. It starts from LateOn-unsupervised, which is built on ModernBERT.

Who it suits

Search engineers and researchers who want an open sparse retriever that works with inverted-index style systems, and who need English retrieval with fast lookups.

IndustryWho uses itHow they use itExample
SoftwareSearch engineersIndex documents as sparse term weightsA help-center search box
ResearchIR researchersCompare sparse, dense and late-interaction modelsRunning BEIR tests on equal footing
E-commerceRetrieval teamsMatch queries to product textA product search that expands related terms
EnterpriseKnowledge-base teamsRetrieve internal documents quicklySearching manuals in English

You can skip it if you need languages beyond English, or if you want dense vectors, since this model outputs sparse term weights.

Where to use it

It runs in Python through transformers, or as a Sentence Transformer, and the card says dedicated infrastructure called Seismic gives sub-millisecond latency on MS MARCO.

  • Python with transformers
  • Sentence Transformers, as the card lists
  • Seismic, an approximate sparse search engine the authors used
Use caseWhoWhat they get back
Query encodingSearch engineersA term-to-weight dictionary for each query
Document encodingIndexing pipelinesSparse weights to store and search
Score checksResearchersDot-product scores between queries and documents

How to set it up

You need Python and transformers. The model uses custom code, so loading it requires trusting the repository's code.

  • Python with pip and transformers
  • About 754 MB of disk for the F32 weights
  • Willingness to run the repository's custom code
  1. Install Python and transformers.
  2. Optionally download the model files with the Hugging Face commands.
  3. Load the model with trust_remote_code, then encode texts.
pip install -U huggingface_hub
hf download Linkup-Platform/linkup-sparseup-embed-v1

How to use it

Load the model, encode queries and documents, and score them. The encode_to_dict method returns a token-to-weight dictionary for each text, and kind selects the query or document prefix.

from transformers import AutoModel
model = AutoModel.from_pretrained("Linkup-Platform/linkup-sparseup-embed-v1", trust_remote_code=True)
queries = ["England football player highest paid", "NYC capital which country?"]
model.encode_to_dict(queries, kind="query", round_to=2, top_k=10)
documents = [
    "Harry Kane is the England captain and among the highest-paid footballers.",
    "New York City is in the United States, not a national capital.",
]
q = model.encode(queries, kind="query")
d = model.encode(documents, kind="document")
print(model.score(q, d))
#tensor([[113.2993,   0.0000],
#        [  7.0030,  99.1290]])
ToolWhat it does
encode_to_dictReturns weighted terms per text, highest weight first
encodeReturns sparse vectors for queries or documents
scoreComputes dot-product scores between queries and documents

Example

You encode two queries, one about the highest-paid England footballer and one about which country has NYC as its capital. You get weighted terms such as England, football and paid, plus related terms the model adds on its own.

For newcomers and experts

If you are new, try encode_to_dict on one query and read the weighted terms. You will see words from your query plus related words, which is how sparse search finds matches.

If you know the field: a masked language model head scores the vocabulary, and a shifted log-ReLU keeps it sparse. Each position keeps its top 12 terms before max pooling. A vocabulary fold then cuts the vocabulary from about 50k to 34k. Scoring is a dot product, and the query and document prefixes are attended but not pooled.

  1. Prefix the text as query or document
  2. MLM head scores vocabulary terms
  3. Keep top 12 terms per position
  4. Max-pool and fold case variants
  5. Dot product between sparse vectors

Good to know

On BEIR without MS MARCO, SPARSEUP scores 56.4, ahead of the other sparse encoders the card lists under 150M parameters. The card compares against dense and late-interaction models with exact search, so those scores are higher.

BEIR average without MS MARCO, nDCG@10
SPARSEUP56.4 points
opensearch-neural-sparse-encoding-doc-v3-gte54.6 points
ModernBERT-VT52.4 points
opensearch-neural-sparse-encoding-v152.4 points
splade-v351.7 points
granite-embedding-30m-sparse50.6 points
  • License: Apache 2.0
  • Cost to run: none named
  • Data it reaches: the texts you encode, and the model files you download
  • Not for: languages other than English

README and files

README

SPARSEUP

A 188M-parameter English sparse retrieval model from Linkup that turns queries and documents into weighted word lists for search. It scores 56.4 on BEIR, the best public result under 150M.

Made by Linkup-Platform on Hugging Face. These notes are Mindket's, written from its model page and model card; the model's own files and license are on Hugging Face.

About

What it is: SPARSEUP is a learned sparse embedding model for search. It turns a query or document into a list of vocabulary terms with weights, and a dot product between two such lists gives the match score.

Linkup built it to sit next to LightOn's DenseOn and LateOn. All three share a backbone family and fine-tuning data, so the designs compare cleanly. It starts from LateOn-unsupervised, which is built on ModernBERT.

Who it suits: Search engineers and researchers who want an open sparse retriever that works with inverted-index style systems, and who need English retrieval with fast lookups.

Industry | Who uses it | How they use it | Example
Software | Search engineers | Index documents as sparse term weights | A help-center search box
Research | IR researchers | Compare sparse, dense and late-interaction models | Running BEIR tests on equal footing
E-commerce | Retrieval teams | Match queries to product text | A product search that expands related terms
Enterprise | Knowledge-base teams | Retrieve internal documents quickly | Searching manuals in English

You can skip it if you need languages beyond English, or if you want dense vectors, since this model outputs sparse term weights.

Where to use it: It runs in Python through transformers, or as a Sentence Transformer, and the card says dedicated infrastructure called Seismic gives sub-millisecond latency on MS MARCO.

  • Python with transformers
  • Sentence Transformers, as the card lists
  • Seismic, an approximate sparse search engine the authors used
Use case | Who | What they get back
Query encoding | Search engineers | A term-to-weight dictionary for each query
Document encoding | Indexing pipelines | Sparse weights to store and search
Score checks | Researchers | Dot-product scores between queries and documents

How to set it up: You need Python and transformers. The model uses custom code, so loading it requires trusting the repository's code.

  • Python with pip and transformers
  • About 754 MB of disk for the F32 weights
  • Willingness to run the repository's custom code
  1. Install Python and transformers.
  2. Optionally download the model files with the Hugging Face commands.
  3. Load the model with trust_remote_code, then encode texts.
pip install -U huggingface_hub
hf download Linkup-Platform/linkup-sparseup-embed-v1

How to use it: Load the model, encode queries and documents, and score them. The encode_to_dict method returns a token-to-weight dictionary for each text, and kind selects the query or document prefix.

from transformers import AutoModel
model = AutoModel.from_pretrained("Linkup-Platform/linkup-sparseup-embed-v1", trust_remote_code=True)
queries = ["England football player highest paid", "NYC capital which country?"]
model.encode_to_dict(queries, kind="query", round_to=2, top_k=10)
documents = [
    "Harry Kane is the England captain and among the highest-paid footballers.",
    "New York City is in the United States, not a national capital.",
]
q = model.encode(queries, kind="query")
d = model.encode(documents, kind="document")
print(model.score(q, d))
#tensor([[113.2993,   0.0000],
#        [  7.0030,  99.1290]])
Tool | What it does
encode_to_dict | Returns weighted terms per text, highest weight first
encode | Returns sparse vectors for queries or documents
score | Computes dot-product scores between queries and documents

Example: You encode two queries, one about the highest-paid England footballer and one about which country has NYC as its capital. You get weighted terms such as England, football and paid, plus related terms the model adds on its own.

For newcomers and experts: If you are new, try encode_to_dict on one query and read the weighted terms. You will see words from your query plus related words, which is how sparse search finds matches.

If you know the field: a masked language model head scores the vocabulary, and a shifted log-ReLU keeps it sparse. Each position keeps its top 12 terms before max pooling. A vocabulary fold then cuts the vocabulary from about 50k to 34k. Scoring is a dot product, and the query and document prefixes are attended but not pooled.

Prefix the text as query or document
MLM head scores vocabulary terms
Keep top 12 terms per position
Max-pool and fold case variants
Dot product between sparse vectors

Good to know: On BEIR without MS MARCO, SPARSEUP scores 56.4, ahead of the other sparse encoders the card lists under 150M parameters. The card compares against dense and late-interaction models with exact search, so those scores are higher.

Title: BEIR average without MS MARCO, nDCG@10
SPARSEUP: 56.4 points
opensearch-neural-sparse-encoding-doc-v3-gte: 54.6 points
ModernBERT-VT: 52.4 points
opensearch-neural-sparse-encoding-v1: 52.4 points
splade-v3: 51.7 points
granite-embedding-30m-sparse: 50.6 points
  • License: Apache 2.0
  • Cost to run: none named
  • Data it reaches: the texts you encode, and the model files you download
  • Not for: languages other than English

On Hugging Face, 13 November 2026

  • Task: feature extraction
  • Library: transformers
  • Parameters: 188M
  • Weights: about 754 MB in F32; about 94 MB at 4-bit (estimate)
  • Formats: Safetensors
  • Downloads in the last 30 days: 6,627
  • Likes: 63
  • License: apache-2.0
  • Languages: en
  • Based on: lightonai/LateOn-unsupervised
  • Tags: transformers, safetensors, modernbert, feature-extraction, splade, sparse, retrieval, sentence-transformers, sentence-similarity, text-embeddings-inference

Links

Get the model

Download its files with Hugging Face's command line:

pip install -U huggingface_hub
hf download Linkup-Platform/linkup-sparseup-embed-v1

Then follow the usage in its model card. Nothing in this kit runs by itself.

Files
README.md  6 KB

1 file, 6 KB, downloaded as a zip.

What’s new

  • Version 1 · 2026-11-13

Compare with similar

Listed Hugging Face models in the same category that share the most tags with this one.

ProductDownloads, last 30 daysLikesParametersLicenseLast change
SPARSEUP This page6,62763188Mapache-2.0
KURE-Sparse-nanoShares splade · sparse · modernbert97319149Mapache-2.0
hs-embed-1Shares modernbert · sentence-similarity · text-embeddings-inference22,4127112Mmit
UIBK-Embedding-v1Shares modernbert · sentence-similarity · text-embeddings-inference2,61211149Mapache-2.0
SlideOnShares sparse · sentence-similarity · sentence-transformers83018174Mapache-2.0
mSlideOnShares sparse · sentence-similarity · sentence-transformers70616339Mapache-2.0
Numbers as Mindket last read them, from 2026-11-12 to 2026-11-13.

Reviews

No ratings yet

Write a review

No reviews yet.

What people say

Posts and comments that name this project on Hacker News, Bluesky, X, Reddit, Facebook and YouTube, found by a weekly search and on Trendshift. Mindket doesn’t write or check them. Open one to read it where it was posted.

Searched

More from Mindket

See all from Mindket

anaksor-ocr

Sokheng · Kit

Reads Khmer and English text from documents, receipts and photos of signs, using a detector for text lines and a recogniser for each line. Suits developers who…

New

Qwen2.5-7B-Instruct as GGUF files in eight quantization sizes, to chat with locally through llama.cpp. For people who want a capable 7.6B model on their own co…

New

ACE-Step 1.5 XL SFT

ACE-Step · Kit

Generates music from text with a 4B diffusion decoder, 50 steps and guidance control, aiming for higher audio quality than the base. For creators with a GPU of…

New

Similar in Developer

See all in Developer

Claude Code Skills & Plugins

alirezarezvani · Skill

Adds 411 ready-made skills for Claude Code and other coding agents, grouped by role from engineering and product to marketing, finance and compliance. Installs…

New29.8k

buzz

block · Kit

Self-hostable workspace where people and AI agents share the same rooms, built on a Nostr relay that logs every action as a signed event. For teams that want t…

New37.3k

plannotator

backnotprop · Kit

Opens your AI coding agent's plans, specs and code changes in a browser so you can annotate or comment on them and send the feedback straight back to the agent.

New10.5k