Model reference · open weights
ColBERT-Zero is an open-weight embedding model from lightonai. AxForge deploys and operates it for you on dedicated EU-owned hardware — with the licence handled where one is required.
Available as managed deployment — configured and operated for you on dedicated EU hardware, quoted per deployment.
What it is
| Maker | lightonai |
|---|---|
| Type | Embedding models |
| Task | Embeddings |
| Parameters (lead) | 149M |
| Context | 8k tokens |
| Runs with | PyLate |
| Released | 2026-02-19 |
| Popularity | 7k downloads / month |
| Licence | Open weights |
About
📄 Paper | 📝 Blog | 📚 Collection
🎯 TL;DR: First large-scale fully pre-trained ColBERT model using only public data. Achieves 55.43 nDCG@10 on BEIR benchmark, outperforming GTE-ModernColBERT and GTE-ModernBERT trained on closed and stronger data. New SOTA on BEIR for models <150M parameters.
Late interaction (ColBERT / multi-vector) models have clear advantages in out-of-domain generalization, long-context handling, and reasoning-intensive retrieval. Yet they remain undertrained: current state-of-the-art ColBERT models (e.g, GTE-ModernColBERT and ColBERT-small) are simply built by bolting a small knowledge distillation step onto a strong dense (single-vector) model. Even recent efforts like mxbai-edge-colbert-v0 perform all early training stages in a single-vector setting, only switching to the multi-vector objective at the very end.
This leaves a lot of performance on the table. ColBERT-Zero demonstrates that performing contrastive pre-training directly in the multi-vector setting, rather than treating it as an afterthought, unlocks a significantly higher performance ceiling. Trained exclusively on public data (Nomic-embed dataset mixture), ColBERT-Zero overcomes a 2.4-point data quality disadvantage to outperform models trained on proprietary, closed-source data. For detailed results, please have a look at our blogpost and the paper. All the models (including intermediate checkpoints) as well training code are released under an Apache 2.0 license.
We deliberately trained on the public Nomic-embed data mixture for a strategic reason: Nomic has already trained a dense ModernBERT model (ModernBERT-embed) on this exact data. This lets us compare dense vs. multi-vector training with the same data, same base model (ModernBERT), and same pipeline. The only variable is whether the contrastive phases are performed in the dense or multi-vector setting.
This design reveals a striking result: the dense baseline trained on Nomic data scores 52.89, while the one trained on GTE's proprietary data scores 55.33: a 2.4-point data quality gap. Despite this disadvantage, ColBERT-Zero's full multi-vector pre-training pipeline closes and surpasses this gap, reaching 55.43 nDCG@10.
The development followed a three-phase pipeline, each providing a different type of learning signal:
We began with the nomic-embed-unsupervised-data dataset. Using PyLate's GradCache implementation to scale per-GPU batch size without VRAM constraints, combined with cross-GPU gathering of representations, we reached effective batch sizes of ~16k, required for unsupervised training to produce plausible in-batch hard negatives. Unlike dense training, the multi-vector objective allows the encoder to learn fine-grained token importance from the very first phase.
We refined the model using the nomic-embed-supervised-data. This stage introduced mined hard negatives: documents that are superficially similar to the query but not actually relevant. This allows teaching the model to handle nuance by prioritizing specific keywords and contextual tokens most indicative of a true match.
The final stage used the ms-marco-en-bge dataset. We leveraged a powerful Gemma-based model as a teacher, allowing our student models to learn to replicate complex reasoning scores via the efficient MaxSim operator.
The KD-only approach (the current industry standard) scores 54.09, lagging behind full pre-training by 1.3 points. A simple distillation step is insufficient for optimal multi-vector performance.
By running a supervised contrastive step in the multi-vector setting before distillation, we reach 55.12 nDCG@10, closing most of the gap with the fully pre-trained model (55.43). This costs ~40 GH200-hours instead of ~408: roughly 10× cheaper for 99.4% of the performance.
Nomic's base models are pre-trained with asymmetric prompts (search_query: and search_document:). While ColBERT has its own asymmetric mechanism via [Q] and [D] markers, we found:
Why do prompts help? Our leadin
From the published model card. Full card on the HuggingFace links in the sidebar.
Benchmarks
As published on the model card — the maker's own numbers, not measured by AxForge.
| Task | Dataset | Metric | Score |
|---|---|---|---|
| Py Late Information Retrieval | NanoClimateFEVER | Maxsim Accuracy@1 | 0.360 |
| Py Late Information Retrieval | NanoClimateFEVER | Maxsim Accuracy@3 | 0.680 |
| Py Late Information Retrieval | NanoClimateFEVER | Maxsim Accuracy@5 | 0.760 |
| Py Late Information Retrieval | NanoClimateFEVER | Maxsim Accuracy@10 | 0.880 |
| Py Late Information Retrieval | NanoClimateFEVER | Maxsim Precision@1 | 0.360 |
| Py Late Information Retrieval | NanoClimateFEVER | Maxsim Precision@3 | 0.287 |
| Py Late Information Retrieval | NanoClimateFEVER | Maxsim Precision@5 | 0.220 |
| Py Late Information Retrieval | NanoClimateFEVER | Maxsim Precision@10 | 0.148 |
| Py Late Information Retrieval | NanoClimateFEVER | Maxsim Recall@1 | 0.180 |
| Py Late Information Retrieval | NanoClimateFEVER | Maxsim Recall@3 | 0.360 |
| Py Late Information Retrieval | NanoClimateFEVER | Maxsim Recall@5 | 0.429 |
| Py Late Information Retrieval | NanoClimateFEVER | Maxsim Recall@10 | 0.554 |
| Py Late Information Retrieval | NanoClimateFEVER | Maxsim Ndcg@10 | 0.451 |
| Py Late Information Retrieval | NanoClimateFEVER | Maxsim Mrr@10 | 0.535 |
| Py Late Information Retrieval | NanoClimateFEVER | Maxsim Map@100 | 0.357 |
| Py Late Information Retrieval | NanoDBPedia | Maxsim Accuracy@1 | 0.860 |
| Py Late Information Retrieval | NanoDBPedia | Maxsim Accuracy@3 | 0.940 |
| Py Late Information Retrieval | NanoDBPedia | Maxsim Accuracy@5 | 0.940 |
| Py Late Information Retrieval | NanoDBPedia | Maxsim Accuracy@10 | 0.980 |
| Py Late Information Retrieval | NanoDBPedia | Maxsim Precision@1 | 0.860 |
| Py Late Information Retrieval | NanoDBPedia | Maxsim Precision@3 | 0.733 |
| Py Late Information Retrieval | NanoDBPedia | Maxsim Precision@5 | 0.660 |
| Py Late Information Retrieval | NanoDBPedia | Maxsim Precision@10 | 0.584 |
| Py Late Information Retrieval | NanoDBPedia | Maxsim Recall@1 | 0.108 |
Using it via the API
Once AxForge deploys colbert-zero for you, it answers on the OpenAI-compatible API — the same base URL and keys as every other model. (colbert-zero below is illustrative; you get the exact model name on deployment.)
$ curl -sS https://api.axforge.ai/v1/embeddings \
-H "Authorization: Bearer $AXFORGE_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"colbert-zero","input":"text to embed"}'
Create an account — your API key is available in the console. 5M tokens/month currently included with every new account at launch.