docs/multi_vector_encoder/pretrained_models.md
The `sentence-transformers tag <https://huggingface.co/models?library=sentence-transformers&other=multi-vector>`_
on the Hugging Face Hub is the list that stays current, and we are working to get it onto every model that works
with :class:`~sentence_transformers.multi_vector_encoder.model.MultiVectorEncoder`. The tables below are what we test against directly, so
treat them as a starting point rather than the full set. For text retrieval in particular, any PyLate or
Stanford-NLP ColBERT checkpoint loads whether or not it carries the tag yet.
Models integrate seamlessly with this simple interface:
from sentence_transformers import MultiVectorEncoder
# Download from the 🤗 Hub
model = MultiVectorEncoder("lightonai/LateOn")
# Run inference
queries = ["What is the capital of France?"]
documents = [
"Paris is the capital of France.",
"Berlin is the capital of Germany.",
]
query_embeddings = model.encode_query(queries)
document_embeddings = model.encode_document(documents)
print(query_embeddings[0].shape, document_embeddings[0].shape)
# (10, 128) (9, 128) - one 128-dimensional vector per token
# Get the late-interaction (MaxSim) similarity scores for the embeddings
similarities = model.similarity(query_embeddings, document_embeddings)
print(similarities)
# tensor([[9.1129, 8.8769]])
These load with their trained prefix tokens, query expansion, and punctuation skiplist recovered from the saved configuration. Where a revision is listed, pass it until the pull request on that repository is merged, after which the plain model name is enough.
The NanoBEIR column reports the mean NDCG@10 (higher is better) across the 13 NanoBEIR datasets, each a 50-query subsample of a BEIR dataset, as a fast proxy for English text retrieval quality. We used the MultiVectorNanoBEIREvaluator to compute the scores for the primarily-English models. A - means the model was not evaluated on it. Note that NanoBEIR is a small benchmark, and its scores aren't a substitute for evaluating on your own data, which is always the right way to pick a model.
ColPali-style models embed page images as documents and text as queries.
The NanoViDoRe column reports the mean NDCG@10 (higher is better) across NanoViDoRe v3, a compact visual document retrieval benchmark spanning 8 subsets (computer science, energy, finance in English and French, HR, industrial, pharmaceuticals, and physics). Like with NanoBEIR, NanoViDoRe is a small benchmark which shouldn't replace evaluation on your own data.
| Model | Parameters | Dimensionality | NanoViDoRe | Notes |
|---|---|---|---|---|
| webAI-Official/webAI-ColVec1.1-8b | 8.4B | 640 | 0.6580 | needs trust_remote_code=True |
| webAI-Official/webAI-ColVec1.1-4b | 4.5B | 640 | 0.6520 | needs trust_remote_code=True |
| tencent/EVIE-Preview-4.5B | 4.54B | 128 | 0.6405 | - |
| TomoroAI/tomoro-colqwen3-embed-8b | 8.8B | 320 | 0.6206 | needs trust_remote_code=True |
| TomoroAI/tomoro-colqwen3-embed-4b | 4.4B | 320 | 0.6019 | needs trust_remote_code=True |
| vidore/colqwen2.5-v0.2 | 3.8B | 128 | 0.5402 | - |
| vidore/colqwen2.5-v0.1 | 3.8B | 128 | 0.5395 | - |
| vidore/colqwen-omni-v0.1 | 4.4B | 128 | 0.5309 | - |
| vidore/colpali-v1.3 | 2.9B | 128 | 0.4802 | - |
| vidore/colpali-v1.3-hf | 2.9B | 128 | 0.4793 | - |
| vidore/colpali-v1.2 | 2.9B | 128 | 0.4691 | - |
| vidore/colqwen2-v1.0 | 2.2B | 128 | 0.4685 | - |
| vidore/colqwen2-v0.1 | 2.2B | 128 | 0.4526 | - |
| vidore/colpali | 2.9B | 128 | 0.4516 | - |
| vidore/colpali-v1.1 | 2.9B | 128 | 0.4314 | - |
| vidore/colsmolvlm-v0.1 | 2.1B | 128 | 0.4054 | - |
| vidore/colpali-hard-v1.1 | 2.9B | 128 | 0.3949 | - |
| vidore/colSmol-500M | 507M | 128 | 0.3459 | - |
| vidore/colSmol-256M | 256M | 128 | 0.2673 | - |
| ModernVBERT/colmodernvbert | 252M | 128 | 0.2632 | - |
| vidore/colpali-v1.2-hf | 2.9B | 128 | - | - |
| vidore/colqwen2-v1.0-hf | 2.2B | 128 | - | - |
Most of these are LoRA adapter repositories, with the adapter applied directly onto its base at load time. Some also have a -merged sibling on the Hub (e.g. vidore/colpali-v1.3-merged) with the adapter already folded into the weights.
The three -hf entries are the transformers-native *ForRetrieval ports. They load without any configuration, but use more modeling from transformers and less from sentence_transformers. Generally, it's preferable to use the original models instead, as the ports score approximately the same.