tags:
- ColBERT
- PyLate
- sentence-transformers
- sentence-similarity
- feature-extraction
- generated_from_trainer
- dataset_size:640000
- loss:Distillation
base_model: bclavie/mini-base
datasets:
- lightonai/ms-marco-en-bge-gemma-unnormalized
pipeline_tag: sentence-similarity
library_name: PyLate
license: apache-2.0
metrics:
- MaxSim_accuracy@1
- MaxSim_accuracy@3
- MaxSim_accuracy@5
- MaxSim_accuracy@10
- MaxSim_precision@1
- MaxSim_precision@3
- MaxSim_precision@5
- MaxSim_precision@10
- MaxSim_recall@1
- MaxSim_recall@3
- MaxSim_recall@5
- MaxSim_recall@10
- MaxSim_ndcg@10
- MaxSim_mrr@10
- MaxSim_map@100
model-index:
- name: ColBERT MUVERA Small
results:
- task:
type: py-late-information-retrieval
name: Py Late Information Retrieval
dataset:
name: NanoClimateFEVER
type: NanoClimateFEVER
metrics:
- type: MaxSim_accuracy@1
value: 0.28
name: Maxsim Accuracy@1
- type: MaxSim_accuracy@3
value: 0.38
name: Maxsim Accuracy@3
- type: MaxSim_accuracy@5
value: 0.52
name: Maxsim Accuracy@5
- type: MaxSim_accuracy@10
value: 0.64
name: Maxsim Accuracy@10
- type: MaxSim_precision@1
value: 0.28
name: Maxsim Precision@1
- type: MaxSim_precision@3
value: 0.14666666666666667
name: Maxsim Precision@3
- type: MaxSim_precision@5
value: 0.12
name: Maxsim Precision@5
- type: MaxSim_precision@10
value: 0.08
name: Maxsim Precision@10
- type: MaxSim_recall@1
value: 0.13166666666666665
name: Maxsim Recall@1
- type: MaxSim_recall@3
value: 0.21
name: Maxsim Recall@3
- type: MaxSim_recall@5
value: 0.265
name: Maxsim Recall@5
- type: MaxSim_recall@10
value: 0.335
name: Maxsim Recall@10
- type: MaxSim_ndcg@10
value: 0.27666051264859415
name: Maxsim Ndcg@10
- type: MaxSim_mrr@10
value: 0.3671349206349206
name: Maxsim Mrr@10
- type: MaxSim_map@100
value: 0.22158617300046946
name: Maxsim Map@100
- task:
type: py-late-information-retrieval
name: Py Late Information Retrieval
dataset:
name: NanoDBPedia
type: NanoDBPedia
metrics:
- type: MaxSim_accuracy@1
value: 0.8
name: Maxsim Accuracy@1
- type: MaxSim_accuracy@3
value: 0.88
name: Maxsim Accuracy@3
- type: MaxSim_accuracy@5
value: 0.92
name: Maxsim Accuracy@5
- type: MaxSim_accuracy@10
value: 0.96
name: Maxsim Accuracy@10
- type: MaxSim_precision@1
value: 0.8
name: Maxsim Precision@1
- type: MaxSim_precision@3
value: 0.6333333333333332
name: Maxsim Precision@3
- type: MaxSim_precision@5
value: 0.556
name: Maxsim Precision@5
- type: MaxSim_precision@10
value: 0.48399999999999993
name: Maxsim Precision@10
- type: MaxSim_recall@1
value: 0.10583280294731091
name: Maxsim Recall@1
- type: MaxSim_recall@3
value: 0.1747980000610803
name: Maxsim Recall@3
- type: MaxSim_recall@5
value: 0.2211728749541224
name: Maxsim Recall@5
- type: MaxSim_recall@10
value: 0.3392671917074792
name: Maxsim Recall@10
- type: MaxSim_ndcg@10
value: 0.6189072509940752
name: Maxsim Ndcg@10
- type: MaxSim_mrr@10
value: 0.8510238095238097
name: Maxsim Mrr@10
- type: MaxSim_map@100
value: 0.47586135688175013
name: Maxsim Map@100
- task:
type: py-late-information-retrieval
name: Py Late Information Retrieval
dataset:
name: NanoFEVER
type: NanoFEVER
metrics:
- type: MaxSim_accuracy@1
value: 0.88
name: Maxsim Accuracy@1
- type: MaxSim_accuracy@3
value: 0.96
name: Maxsim Accuracy@3
- type: MaxSim_accuracy@5
value: 1
name: Maxsim Accuracy@5
- type: MaxSim_accuracy@10
value: 1
name: Maxsim Accuracy@10
- type: MaxSim_precision@1
value: 0.88
name: Maxsim Precision@1
- type: MaxSim_precision@3
value: 0.33333333333333326
name: Maxsim Precision@3
- type: MaxSim_precision@5
value: 0.21199999999999997
name: Maxsim Precision@5
- type: MaxSim_precision@10
value: 0.10799999999999997
name: Maxsim Precision@10
- type: MaxSim_recall@1
value: 0.8166666666666668
name: Maxsim Recall@1
- type: MaxSim_recall@3
value: 0.9133333333333333
name: Maxsim Recall@3
- type: MaxSim_recall@5
value: 0.9633333333333333
name: Maxsim Recall@5
- type: MaxSim_recall@10
value: 0.9733333333333333
name: Maxsim Recall@10
- type: MaxSim_ndcg@10
value: 0.9208334669406996
name: Maxsim Ndcg@10
- type: MaxSim_mrr@10
value: 0.929
name: Maxsim Mrr@10
- type: MaxSim_map@100
value: 0.8912380952380953
name: Maxsim Map@100
- task:
type: py-late-information-retrieval
name: Py Late Information Retrieval
dataset:
name: NanoFiQA2018
type: NanoFiQA2018
metrics:
- type: MaxSim_accuracy@1
value: 0.44
name: Maxsim Accuracy@1
- type: MaxSim_accuracy@3
value: 0.56
name: Maxsim Accuracy@3
- type: MaxSim_accuracy@5
value: 0.68
name: Maxsim Accuracy@5
- type: MaxSim_accuracy@10
value: 0.76
name: Maxsim Accuracy@10
- type: MaxSim_precision@1
value: 0.44
name: Maxsim Precision@1
- type: MaxSim_precision@3
value: 0.26666666666666666
name: Maxsim Precision@3
- type: MaxSim_precision@5
value: 0.22
name: Maxsim Precision@5
- type: MaxSim_precision@10
value: 0.13599999999999998
name: Maxsim Precision@10
- type: MaxSim_recall@1
value: 0.22257936507936507
name: Maxsim Recall@1
- type: MaxSim_recall@3
value: 0.36418253968253966
name: Maxsim Recall@3
- type: MaxSim_recall@5
value: 0.5042063492063492
name: Maxsim Recall@5
- type: MaxSim_recall@10
value: 0.5963968253968254
name: Maxsim Recall@10
- type: MaxSim_ndcg@10
value: 0.4781894440800092
name: Maxsim Ndcg@10
- type: MaxSim_mrr@10
value: 0.5321666666666666
name: Maxsim Mrr@10
- type: MaxSim_map@100
value: 0.39543817074336585
name: Maxsim Map@100
- task:
type: py-late-information-retrieval
name: Py Late Information Retrieval
dataset:
name: NanoHotpotQA
type: NanoHotpotQA
metrics:
- type: MaxSim_accuracy@1
value: 0.84
name: Maxsim Accuracy@1
- type: MaxSim_accuracy@3
value: 0.96
name: Maxsim Accuracy@3
- type: MaxSim_accuracy@5
value: 0.98
name: Maxsim Accuracy@5
- type: MaxSim_accuracy@10
value: 0.98
name: Maxsim Accuracy@10
- type: MaxSim_precision@1
value: 0.84
name: Maxsim Precision@1
- type: MaxSim_precision@3
value: 0.5066666666666666
name: Maxsim Precision@3
- type: MaxSim_precision@5
value: 0.324
name: Maxsim Precision@5
- type: MaxSim_precision@10
value: 0.17399999999999996
name: Maxsim Precision@10
- type: MaxSim_recall@1
value: 0.42
name: Maxsim Recall@1
- type: MaxSim_recall@3
value: 0.76
name: Maxsim Recall@3
- type: MaxSim_recall@5
value: 0.81
name: Maxsim Recall@5
- type: MaxSim_recall@10
value: 0.87
name: Maxsim Recall@10
- type: MaxSim_ndcg@10
value: 0.813477163259318
name: Maxsim Ndcg@10
- type: MaxSim_mrr@10
value: 0.8973333333333333
name: Maxsim Mrr@10
- type: MaxSim_map@100
value: 0.7469519155158202
name: Maxsim Map@100
- task:
type: py-late-information-retrieval
name: Py Late Information Retrieval
dataset:
name: NanoMSMARCO
type: NanoMSMARCO
metrics:
- type: MaxSim_accuracy@1
value: 0.48
name: Maxsim Accuracy@1
- type: MaxSim_accuracy@3
value: 0.64
name: Maxsim Accuracy@3
- type: MaxSim_accuracy@5
value: 0.68
name: Maxsim Accuracy@5
- type: MaxSim_accuracy@10
value: 0.8
name: Maxsim Accuracy@10
- type: MaxSim_precision@1
value: 0.48
name: Maxsim Precision@1
- type: MaxSim_precision@3
value: 0.21333333333333332
name: Maxsim Precision@3
- type: MaxSim_precision@5
value: 0.136
name: Maxsim Precision@5
- type: MaxSim_precision@10
value: 0.08
name: Maxsim Precision@10
- type: MaxSim_recall@1
value: 0.48
name: Maxsim Recall@1
- type: MaxSim_recall@3
value: 0.64
name: Maxsim Recall@3
- type: MaxSim_recall@5
value: 0.68
name: Maxsim Recall@5
- type: MaxSim_recall@10
value: 0.8
name: Maxsim Recall@10
- type: MaxSim_ndcg@10
value: 0.6277729303272284
name: Maxsim Ndcg@10
- type: MaxSim_mrr@10
value: 0.574547619047619
name: Maxsim Mrr@10
- type: MaxSim_map@100
value: 0.585980942367483
name: Maxsim Map@100
- task:
type: py-late-information-retrieval
name: Py Late Information Retrieval
dataset:
name: NanoNFCorpus
type: NanoNFCorpus
metrics:
- type: MaxSim_accuracy@1
value: 0.5
name: Maxsim Accuracy@1
- type: MaxSim_accuracy@3
value: 0.62
name: Maxsim Accuracy@3
- type: MaxSim_accuracy@5
value: 0.64
name: Maxsim Accuracy@5
- type: MaxSim_accuracy@10
value: 0.74
name: Maxsim Accuracy@10
- type: MaxSim_precision@1
value: 0.5
name: Maxsim Precision@1
- type: MaxSim_precision@3
value: 0.4
name: Maxsim Precision@3
- type: MaxSim_precision@5
value: 0.3440000000000001
name: Maxsim Precision@5
- type: MaxSim_precision@10
value: 0.292
name: Maxsim Precision@10
- type: MaxSim_recall@1
value: 0.06602691624937523
name: Maxsim Recall@1
- type: MaxSim_recall@3
value: 0.09818050757008642
name: Maxsim Recall@3
- type: MaxSim_recall@5
value: 0.11806464030634821
name: Maxsim Recall@5
- type: MaxSim_recall@10
value: 0.15514192209178235
name: Maxsim Recall@10
- type: MaxSim_ndcg@10
value: 0.37561452677051027
name: Maxsim Ndcg@10
- type: MaxSim_mrr@10
value: 0.5691666666666667
name: Maxsim Mrr@10
- type: MaxSim_map@100
value: 0.18300178358234423
name: Maxsim Map@100
- task:
type: py-late-information-retrieval
name: Py Late Information Retrieval
dataset:
name: NanoNQ
type: NanoNQ
metrics:
- type: MaxSim_accuracy@1
value: 0.56
name: Maxsim Accuracy@1
- type: MaxSim_accuracy@3
value: 0.76
name: Maxsim Accuracy@3
- type: MaxSim_accuracy@5
value: 0.78
name: Maxsim Accuracy@5
- type: MaxSim_accuracy@10
value: 0.82
name: Maxsim Accuracy@10
- type: MaxSim_precision@1
value: 0.56
name: Maxsim Precision@1
- type: MaxSim_precision@3
value: 0.2533333333333333
name: Maxsim Precision@3
- type: MaxSim_precision@5
value: 0.16399999999999998
name: Maxsim Precision@5
- type: MaxSim_precision@10
value: 0.088
name: Maxsim Precision@10
- type: MaxSim_recall@1
value: 0.54
name: Maxsim Recall@1
- type: MaxSim_recall@3
value: 0.71
name: Maxsim Recall@3
- type: MaxSim_recall@5
value: 0.75
name: Maxsim Recall@5
- type: MaxSim_recall@10
value: 0.79
name: Maxsim Recall@10
- type: MaxSim_ndcg@10
value: 0.6818400710905007
name: Maxsim Ndcg@10
- type: MaxSim_mrr@10
value: 0.6597222222222223
name: Maxsim Mrr@10
- type: MaxSim_map@100
value: 0.6459882013890279
name: Maxsim Map@100
- task:
type: py-late-information-retrieval
name: Py Late Information Retrieval
dataset:
name: NanoQuoraRetrieval
type: NanoQuoraRetrieval
metrics:
- type: MaxSim_accuracy@1
value: 0.86
name: Maxsim Accuracy@1
- type: MaxSim_accuracy@3
value: 0.98
name: Maxsim Accuracy@3
- type: MaxSim_accuracy@5
value: 0.98
name: Maxsim Accuracy@5
- type: MaxSim_accuracy@10
value: 1
name: Maxsim Accuracy@10
- type: MaxSim_precision@1
value: 0.86
name: Maxsim Precision@1
- type: MaxSim_precision@3
value: 0.40666666666666657
name: Maxsim Precision@3
- type: MaxSim_precision@5
value: 0.264
name: Maxsim Precision@5
- type: MaxSim_precision@10
value: 0.13799999999999998
name: Maxsim Precision@10
- type: MaxSim_recall@1
value: 0.764
name: Maxsim Recall@1
- type: MaxSim_recall@3
value: 0.9453333333333334
name: Maxsim Recall@3
- type: MaxSim_recall@5
value: 0.97
name: Maxsim Recall@5
- type: MaxSim_recall@10
value: 0.9966666666666666
name: Maxsim Recall@10
- type: MaxSim_ndcg@10
value: 0.9414269581610836
name: Maxsim Ndcg@10
- type: MaxSim_mrr@10
value: 0.9228571428571428
name: Maxsim Mrr@10
- type: MaxSim_map@100
value: 0.9205543345543344
name: Maxsim Map@100
- task:
type: py-late-information-retrieval
name: Py Late Information Retrieval
dataset:
name: NanoSCIDOCS
type: NanoSCIDOCS
metrics:
- type: MaxSim_accuracy@1
value: 0.5
name: Maxsim Accuracy@1
- type: MaxSim_accuracy@3
value: 0.74
name: Maxsim Accuracy@3
- type: MaxSim_accuracy@5
value: 0.76
name: Maxsim Accuracy@5
- type: MaxSim_accuracy@10
value: 0.82
name: Maxsim Accuracy@10
- type: MaxSim_precision@1
value: 0.5
name: Maxsim Precision@1
- type: MaxSim_precision@3
value: 0.3933333333333333
name: Maxsim Precision@3
- type: MaxSim_precision@5
value: 0.292
name: Maxsim Precision@5
- type: MaxSim_precision@10
value: 0.18599999999999997
name: Maxsim Precision@10
- type: MaxSim_recall@1
value: 0.10466666666666667
name: Maxsim Recall@1
- type: MaxSim_recall@3
value: 0.24366666666666664
name: Maxsim Recall@3
- type: MaxSim_recall@5
value: 0.29966666666666664
name: Maxsim Recall@5
- type: MaxSim_recall@10
value: 0.3826666666666666
name: Maxsim Recall@10
- type: MaxSim_ndcg@10
value: 0.39084995006976664
name: Maxsim Ndcg@10
- type: MaxSim_mrr@10
value: 0.6197222222222222
name: Maxsim Mrr@10
- type: MaxSim_map@100
value: 0.3153590016638529
name: Maxsim Map@100
- task:
type: py-late-information-retrieval
name: Py Late Information Retrieval
dataset:
name: NanoArguAna
type: NanoArguAna
metrics:
- type: MaxSim_accuracy@1
value: 0.28
name: Maxsim Accuracy@1
- type: MaxSim_accuracy@3
value: 0.56
name: Maxsim Accuracy@3
- type: MaxSim_accuracy@5
value: 0.64
name: Maxsim Accuracy@5
- type: MaxSim_accuracy@10
value: 0.84
name: Maxsim Accuracy@10
- type: MaxSim_precision@1
value: 0.28
name: Maxsim Precision@1
- type: MaxSim_precision@3
value: 0.18666666666666668
name: Maxsim Precision@3
- type: MaxSim_precision@5
value: 0.12800000000000003
name: Maxsim Precision@5
- type: MaxSim_precision@10
value: 0.08399999999999999
name: Maxsim Precision@10
- type: MaxSim_recall@1
value: 0.28
name: Maxsim Recall@1
- type: MaxSim_recall@3
value: 0.56
name: Maxsim Recall@3
- type: MaxSim_recall@5
value: 0.64
name: Maxsim Recall@5
- type: MaxSim_recall@10
value: 0.84
name: Maxsim Recall@10
- type: MaxSim_ndcg@10
value: 0.5432952971404568
name: Maxsim Ndcg@10
- type: MaxSim_mrr@10
value: 0.450484126984127
name: Maxsim Mrr@10
- type: MaxSim_map@100
value: 0.4551681906230779
name: Maxsim Map@100
- task:
type: py-late-information-retrieval
name: Py Late Information Retrieval
dataset:
name: NanoSciFact
type: NanoSciFact
metrics:
- type: MaxSim_accuracy@1
value: 0.7
name: Maxsim Accuracy@1
- type: MaxSim_accuracy@3
value: 0.82
name: Maxsim Accuracy@3
- type: MaxSim_accuracy@5
value: 0.84
name: Maxsim Accuracy@5
- type: MaxSim_accuracy@10
value: 0.88
name: Maxsim Accuracy@10
- type: MaxSim_precision@1
value: 0.7
name: Maxsim Precision@1
- type: MaxSim_precision@3
value: 0.29333333333333333
name: Maxsim Precision@3
- type: MaxSim_precision@5
value: 0.18799999999999997
name: Maxsim Precision@5
- type: MaxSim_precision@10
value: 0.09799999999999998
name: Maxsim Precision@10
- type: MaxSim_recall@1
value: 0.665
name: Maxsim Recall@1
- type: MaxSim_recall@3
value: 0.81
name: Maxsim Recall@3
- type: MaxSim_recall@5
value: 0.84
name: Maxsim Recall@5
- type: MaxSim_recall@10
value: 0.87
name: Maxsim Recall@10
- type: MaxSim_ndcg@10
value: 0.7883940477308562
name: Maxsim Ndcg@10
- type: MaxSim_mrr@10
value: 0.7645238095238096
name: Maxsim Mrr@10
- type: MaxSim_map@100
value: 0.7622104923007755
name: Maxsim Map@100
- task:
type: py-late-information-retrieval
name: Py Late Information Retrieval
dataset:
name: NanoTouche2020
type: NanoTouche2020
metrics:
- type: MaxSim_accuracy@1
value: 0.673469387755102
name: Maxsim Accuracy@1
- type: MaxSim_accuracy@3
value: 0.9183673469387755
name: Maxsim Accuracy@3
- type: MaxSim_accuracy@5
value: 0.9591836734693877
name: Maxsim Accuracy@5
- type: MaxSim_accuracy@10
value: 1
name: Maxsim Accuracy@10
- type: MaxSim_precision@1
value: 0.673469387755102
name: Maxsim Precision@1
- type: MaxSim_precision@3
value: 0.6326530612244898
name: Maxsim Precision@3
- type: MaxSim_precision@5
value: 0.6040816326530614
name: Maxsim Precision@5
- type: MaxSim_precision@10
value: 0.5020408163265305
name: Maxsim Precision@10
- type: MaxSim_recall@1
value: 0.04919462393895531
name: Maxsim Recall@1
- type: MaxSim_recall@3
value: 0.13143050077268048
name: Maxsim Recall@3
- type: MaxSim_recall@5
value: 0.20505385244507174
name: Maxsim Recall@5
- type: MaxSim_recall@10
value: 0.3259510245836729
name: Maxsim Recall@10
- type: MaxSim_ndcg@10
value: 0.5631037374817277
name: Maxsim Ndcg@10
- type: MaxSim_mrr@10
value: 0.7906462585034014
name: Maxsim Mrr@10
- type: MaxSim_map@100
value: 0.41297955687388305
name: Maxsim Map@100
- task:
type: nano-beir
name: Nano BEIR
dataset:
name: NanoBEIR mean
type: NanoBEIR_mean
metrics:
- type: MaxSim_accuracy@1
value: 0.5994976452119309
name: Maxsim Accuracy@1
- type: MaxSim_accuracy@3
value: 0.7521821036106752
name: Maxsim Accuracy@3
- type: MaxSim_accuracy@5
value: 0.7983987441130298
name: Maxsim Accuracy@5
- type: MaxSim_accuracy@10
value: 0.8646153846153847
name: Maxsim Accuracy@10
- type: MaxSim_precision@1
value: 0.5994976452119309
name: Maxsim Precision@1
- type: MaxSim_precision@3
value: 0.3589220303506017
name: Maxsim Precision@3
- type: MaxSim_precision@5
value: 0.2732370486656201
name: Maxsim Precision@5
- type: MaxSim_precision@10
value: 0.18846467817896384
name: Maxsim Precision@10
- type: MaxSim_recall@1
value: 0.35735643909346215
name: Maxsim Recall@1
- type: MaxSim_recall@3
value: 0.5046865293399786
name: Maxsim Recall@3
- type: MaxSim_recall@5
value: 0.5589613628393763
name: Maxsim Recall@5
- type: MaxSim_recall@10
value: 0.6364941254189559
name: Maxsim Recall@10
- type: MaxSim_ndcg@10
value: 0.6169511812842173
name: Maxsim Ndcg@10
- type: MaxSim_mrr@10
value: 0.6867945229373801
name: Maxsim Mrr@10
- type: MaxSim_map@100
value: 0.5394090934410984
name: Maxsim Map@100
ColBERT MUVERA Small
This is a PyLate model finetuned from bclavie/mini-base on the msmarco-en-bge-gemma-unnormalized dataset. It maps sentences & paragraphs to sequences of 128-dimensional dense vectors and can be used for semantic textual similarity using the MaxSim operator.
This model is trained with un-normalized scores, making it compatible with MUVERA fixed-dimensional encoding.
Usage (txtai)
This model can be used to build embeddings databases with txtai for semantic search and/or as a knowledge source for retrieval augmented generation (RAG).
Note: txtai 9.0+ is required for late interaction model support
import txtai
embeddings = txtai.Embeddings(
path="neuml/colbert-muvera-small",
content=True
)
embeddings.index(documents())
# Run a query
embeddings.search("query to run")
Late interaction models excel as reranker pipelines.
from txtai.pipeline import Reranker, Similarity
similarity = Similarity(path="neuml/colbert-muvera-small", lateencode=True)
ranker = Reranker(embeddings, similarity)
ranker("query to run")
Usage (PyLate)
Alternatively, the model can be loaded with PyLate.
from pylate import rank, models
queries = [
"query A",
"query B",
]
documents = [
["document A", "document B"],
["document 1", "document C", "document B"],
]
documents_ids = [
[1, 2],
[1, 3, 2],
]
model = models.ColBERT(
model_name_or_path="neuml/colbert-muvera-small",
)
queries_embeddings = model.encode(
queries,
is_query=True,
)
documents_embeddings = model.encode(
documents,
is_query=False,
)
reranked_documents = rank.rerank(
documents_ids=documents_ids,
queries_embeddings=queries_embeddings,
documents_embeddings=documents_embeddings,
)
Full Model Architecture
ColBERT(
(0): Transformer({'max_seq_length': 299, 'do_lower_case': False}) with Transformer model: BertModel
(1): Dense({'in_features': 384, 'out_features': 128, 'bias': False, 'activation_function': 'torch.nn.modules.linear.Identity'})
)
Evaluation
BEIR Subset
The following table shows a subset of BEIR scored with the txtai benchmarks script.
Scores reported are ndcg@10 and grouped into the following three categories.
FULL multi-vector maxsim
| Model | Parameters | ArguAna | NFCorpus | SciFact | Average |
|---|---|---|---|---|---|
| AnswerAI ColBERT Small v1 | 33M | 0.4440 | 0.3649 | 0.7423 | 0.5171 |
| ColBERT v2 | 110M | 0.4595 | 0.3165 | 0.6456 | 0.4739 |
| ColBERT MUVERA Micro | 4M | 0.3947 | 0.3235 | 0.6676 | 0.4619 |
| ColBERT MUVERA Small | 33M | 0.4455 | 0.3502 | 0.7145 | 0.5034 |
| GTE ModernColBERT v1 | 149M | 0.4946 | 0.3717 | 0.7529 | 0.5397 |
MUVERA encoding + maxsim re-ranking of the top 100 results per MUVERA paper
| Model | Parameters | ArguAna | NFCorpus | SciFact | Average |
|---|---|---|---|---|---|
| AnswerAI ColBERT Small v1 | 33M | 0.0317 | 0.1135 | 0.0836 | 0.0763 |
| ColBERT v2 | 110M | 0.4562 | 0.3025 | 0.6278 | 0.4622 |
| ColBERT MUVERA Micro | 4M | 0.3849 | 0.3095 | 0.6464 | 0.4469 |
| ColBERT MUVERA Small | 33M | 0.4451 | 0.3537 | 0.7148 | 0.5045 |
| GTE ModernColBERT v1 | 149M | 0.0265 | 0.1052 | 0.0556 | 0.0624 |
MUVERA encoding only
| Model | Parameters | ArguAna | NFCorpus | SciFact | Average |
|---|---|---|---|---|---|
| AnswerAI ColBERT Small v1 | 33M | 0.0024 | 0.0201 | 0.0047 | 0.0091 |
| ColBERT v2 | 110M | 0.3463 | 0.2356 | 0.5002 | 0.3607 |
| ColBERT MUVERA Micro | 4M | 0.2795 | 0.2348 | 0.4875 | 0.3339 |
| ColBERT MUVERA Small | 33M | 0.3850 | 0.2928 | 0.6357 | 0.4378 |
| GTE ModernColBERT v1 | 149M | 0.0003 | 0.0203 | 0.0013 | 0.0073 |
Note: The scores reported don't match scores reported in the respective papers due to different default settings in the txtai benchmark scripts.
As noted earlier, models trained with min-max score normalization don't perform well with MUVERA encoding. See this GitHub Issue for more.
In reviewing the scores, this model is surprisingly and unreasonably competitive with the original ColBERT v2 model at only 3% of the size!
Nano BEIR
- Dataset:
NanoBEIR_mean - Evaluated with
pylate.evaluation.nano_beir_evaluator.NanoBEIREvaluator
| Metric | Value |
|---|---|
| MaxSim_accuracy@1 | 0.5995 |
| MaxSim_accuracy@3 | 0.7522 |
| MaxSim_accuracy@5 | 0.7984 |
| MaxSim_accuracy@10 | 0.8646 |
| MaxSim_precision@1 | 0.5995 |
| MaxSim_precision@3 | 0.3589 |
| MaxSim_precision@5 | 0.2732 |
| MaxSim_precision@10 | 0.1885 |
| MaxSim_recall@1 | 0.3574 |
| MaxSim_recall@3 | 0.5047 |
| MaxSim_recall@5 | 0.559 |
| MaxSim_recall@10 | 0.6365 |
| MaxSim_ndcg@10 | 0.617 |
| MaxSim_mrr@10 | 0.6868 |
| MaxSim_map@100 | 0.5394 |
Training Details
Training Hyperparameters
Non-Default Hyperparameters
eval_strategy: stepsgradient_accumulation_steps: 4learning_rate: 3e-06num_train_epochs: 1warmup_ratio: 0.05bf16: True
All Hyperparameters
Click to expand
overwrite_output_dir: Falsedo_predict: Falseeval_strategy: stepsprediction_loss_only: Trueper_device_train_batch_size: 8per_device_eval_batch_size: 8per_gpu_train_batch_size: Noneper_gpu_eval_batch_size: Nonegradient_accumulation_steps: 4eval_accumulation_steps: Nonetorch_empty_cache_steps: Nonelearning_rate: 3e-06weight_decay: 0.0adam_beta1: 0.9adam_beta2: 0.999adam_epsilon: 1e-08max_grad_norm: 1.0num_train_epochs: 1max_steps: -1lr_scheduler_type: linearlr_scheduler_kwargs: {}warmup_ratio: 0.05warmup_steps: 0log_level: passivelog_level_replica: warninglog_on_each_node: Truelogging_nan_inf_filter: Truesave_safetensors: Truesave_on_each_node: Falsesave_only_model: Falserestore_callback_states_from_checkpoint: Falseno_cuda: Falseuse_cpu: Falseuse_mps_device: Falseseed: 42data_seed: Nonejit_mode_eval: Falseuse_ipex: Falsebf16: Truefp16: Falsefp16_opt_level: O1half_precision_backend: autobf16_full_eval: Falsefp16_full_eval: Falsetf32: Nonelocal_rank: 0ddp_backend: Nonetpu_num_cores: Nonetpu_metrics_debug: Falsedebug: []dataloader_drop_last: Falsedataloader_num_workers: 0dataloader_prefetch_factor: Nonepast_index: -1disable_tqdm: Falseremove_unused_columns: Truelabel_names: Noneload_best_model_at_end: Falseignore_data_skip: Falsefsdp: []fsdp_min_num_params: 0fsdp_config: {'min_num_params': 0, 'xla': False, 'xla_fsdp_v2': False, 'xla_fsdp_grad_ckpt': False}fsdp_transformer_layer_cls_to_wrap: Noneaccelerator_config: {'split_batches': False, 'dispatch_batches': None, 'even_batches': True, 'use_seedable_sampler': True, 'non_blocking': False, 'gradient_accumulation_kwargs': None}deepspeed: Nonelabel_smoothing_factor: 0.0optim: adamw_torchoptim_args: Noneadafactor: Falsegroup_by_length: Falselength_column_name: lengthddp_find_unused_parameters: Noneddp_bucket_cap_mb: Noneddp_broadcast_buffers: Falsedataloader_pin_memory: Truedataloader_persistent_workers: Falseskip_memory_metrics: Trueuse_legacy_prediction_loop: Falsepush_to_hub: Falseresume_from_checkpoint: Nonehub_model_id: Nonehub_strategy: every_savehub_private_repo: Nonehub_always_push: Falsegradient_checkpointing: Falsegradient_checkpointing_kwargs: Noneinclude_inputs_for_metrics: Falseinclude_for_metrics: []eval_do_concat_batches: Truefp16_backend: autopush_to_hub_model_id: Nonepush_to_hub_organization: Nonemp_parameters:auto_find_batch_size: Falsefull_determinism: Falsetorchdynamo: Noneray_scope: lastddp_timeout: 1800torch_compile: Falsetorch_compile_backend: Nonetorch_compile_mode: Noneinclude_tokens_per_second: Falseinclude_num_input_tokens_seen: Falseneftune_noise_alpha: Noneoptim_target_modules: Nonebatch_eval_metrics: Falseeval_on_start: Falseuse_liger_kernel: Falseeval_use_gather_object: Falseaverage_tokens_across_devices: Falseprompts: Nonebatch_sampler: batch_samplermulti_dataset_batch_sampler: proportional
Framework Versions
- Python: 3.10.18
- Sentence Transformers: 4.0.2
- PyLate: 1.3.0
- Transformers: 4.52.3
- PyTorch: 2.8.0+cu128
- Accelerate: 1.10.1
- Datasets: 4.0.0
- Tokenizers: 0.21.4
Citation
BibTeX
Sentence Transformers
@inproceedings{reimers-2019-sentence-bert,
title = "Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks",
author = "Reimers, Nils and Gurevych, Iryna",
booktitle = "Proceedings of the 2019 Conference on Empirical Methods in Natural Language Processing",
month = "11",
year = "2019",
publisher = "Association for Computational Linguistics",
url = "https://arxiv.org/abs/1908.10084"
}
PyLate
@misc{PyLate,
title={PyLate: Flexible Training and Retrieval for Late Interaction Models},
author={Chaffin, Antoine and Sourty, Raphaël},
url={https://github.com/lightonai/pylate},
year={2024}
}