Model reference · open weights
mLateOn-unsupervised is an open-weight embedding model from lightonai. mLateOn-unsupervised (BF16) weighs 614 MB; the smallest configuration that runs it is RTX 3060 12 GB.
Summary of the lightonai/mLateOn-unsupervised model card, 2026-10-01
What it is
| Released by | lightonai |
|---|---|
| Released | 2026-07-09 |
| Parameters | 307M |
| VRAM | 614 MB for the weights |
What it runs on
| Card | Runs | Memory |
|---|---|---|
| RTX 3060 12 GB | fits | 11.6 GB |
| RTX 4060 Ti 16 GB | fits | 15.4 GB |
| RTX 3090 24 GB | fits | 23.4 GB |
| RTX 4090 24 GB | fits | 23.4 GB |
| RTX 5090 32 GB | fits | 31.0 GB |
| L40S 48 GB | fits | 44.0 GB |
| A100 80 GB | fits | 78.2 GB |
| H100 80 GB | fits | 78.1 GB |
| RTX PRO 6000 Blackwell 96 GB | fits | 93.8 GB |
| DGX Spark (GB10) 128 GB unified | fits | 107 GB |
| H200 141 GB | fits | 138 GB |
| B200 180 GB | fits | 176 GB |
From the model card
📚 Collection | 📝 Multilingual Blog | 📝 English Blog | 📝 Paper
🎯 TL;DR: The intermediate multilingual ColBERT checkpoint produced by Stage 1 only (unsupervised contrastive pre-training) of the mLateOn pipeline, trained on a multilingual dataset with 2.8B query–document pairs across nine languages (including 25% cross-lingual pairs). Released as a strong starting point for your own supervised fine-tuning, knowledge distillation, or downstream adaptation.
With DenseOn and LateOn, we demonstrated that an open, carefully curated data recipe can match closed-data retrieval models on English. mDenseOn and mLateOn extend this recipe to multilingual, long-context, and code retrieval.
Rather than independently collecting multilingual corpora from scratch (which would be expensive, uneven across languages, and hard to curate at the same quality), we applied the translate-train approach: machine-translating our validated English data into eight target languages (French, German, Italian, Spanish, Portuguese, Swedish, Norwegian, and Arabic) and adding cross-lingual pairs for cross-lingual alignment.
For more information, please read our multilingual models blog post, our English models blog post and our paper.
mLateOn-unsupervised is the output of the first stage of the mLateOn training pipeline. It has been pre-trained on a large, filtered multilingual corpus of approximately 2.8B query–document pairs across nine languages (including 25% cross-lingual pairs) using in-batch contrastive learning, but has not yet been fine-tuned with mined hard negatives.
For most production use cases, you should use the fully-trained mLateOn instead. This unsupervised checkpoint is intended for:
| Model | Description | Link |
|---|---|---|
| mLateOn-unsupervised (this card) | Multilingual late-interaction, pre-training only | lightonai/mLateOn-unsupervised |
| mLateOn | Multilingual late-interaction retriever (recommended) | lightonai/mLateOn |
| mDenseOn-unsupervised | Multilingual dense, pre-training only | lightonai/mDenseOn-unsupervised |
| mDenseOn | Multilingual dense retriever | lightonai/mDenseOn |
| LateOn-unsupervised | English-only late-interaction, pre-training only | lightonai/LateOn-unsupervised |
| LateOn | English-only late-interaction retriever | lightonai/LateOn |
| DenseOn-unsupervised | English-only dense, pre-training only | lightonai/DenseOn-unsupervised |
| DenseOn | English-only dense retriever | lightonai/DenseOn |
ColBERT(
(0): Transformer({'max_seq_length': 8192, 'do_lower_case': False, 'architecture': 'ModernBertModel'})
(1): Dense({'in_features': 768, 'out_features': 1536, 'bias': False, 'activation_function': 'torch.nn.modules.linear.Identity', 'use_residual': True})
(2): Dense({'in_features': 1536, 'out_features': 768, 'bias': False, 'activation_function': 'torch.nn.modules.linear.Identity', 'use_residual': True})
(3): Dense({'in_features': 768, 'out_features': 128, 'bias': False, 'activation_function': 'torch.nn.modules.linear.Identity', 'use_residual': False})
)
First install the PyLate library:
pip install -U pylate
Use this model with PyLate to index and retrieve documents. The index uses FastPlaid for efficient similarity search.
Load the ColBERT model and initialize the PLAID index, then encode and index your documents:
from pylate import indexes, models, retrieve
# Step 1: Load the ColBERT model
model = models.ColBERT(
model_name_or_path="lightonai/mLateOn-unsupervised",
)
# Step 2: Initialize the PLAID index
index = indexes.PLAID(
index_folder="pylate-index",
indQuoted from the model card on Hugging Face. The full card is behind the Hugging Face link above.