jinaai/jina-colbert-v2

Model

JinaColBERT V2 (jina-colbert-v2) is a new model based on the JinaColBERT V1 that expands on the capabilities and performance of the jina-colbert-v1-en model. Like the previous release, it has Jina AI’s 8192 token input context and the improved efficiency, performance, and explainability of token-level embeddings and late interaction.

146

31 commits

2 repos using this model

1 linked in READMEs

updated Aug 20, 2026

See the code

README



Jina AI: Your Search Foundation, Supercharged!

Trained by Jina AI.

JinaColBERT V2: A General-Purpose Multilingual Late Interaction Retriever.

JinaColBERT V2 (jina-colbert-v2) is a new model based on the JinaColBERT V1 that expands on the capabilities and performance of the jina-colbert-v1-en model. Like the previous release, it has Jina AI’s 8192 token input context and the improved efficiency, performance, and explainability of token-level embeddings and late interaction.

This new release adds new functionality and performance improvements:

  • Multilingual support for dozens of languages, with strong performance on major global languages.
  • Matryoshka embeddings, which allow users to trade between efficiency and precision flexibly.
  • Superior retrieval performance when compared to the English-only jina-colbert-v1-en.

JinaColBERT V2 offers three different versions for different embeddings dimensions: jinaai/jina-colbert-v2: 128 dimension embeddings jinaai/jina-colbert-v2-96: 96 dimension embeddings jinaai/jina-colbert-v2-64: 64 dimension embeddings

Usage

Installation

jina-colbert-v2 is trained with flash attention, so einops is required and flash_attn is recommended. Without flash_attn the model falls back to PyTorch's native attention implementation. Beyond that, pick whichever inference library you prefer.

pip install -U einops flash_attn

Sentence Transformers

This model can be used with Sentence Transformers as a multi-vector (ColBERT-style late interaction) retriever via the MultiVectorEncoder:

pip install "sentence-transformers>=6.0.0"
from sentence_transformers import MultiVectorEncoder

model = MultiVectorEncoder("jinaai/jina-colbert-v2", trust_remote_code=True)

query = "What does ColBERT do?"
documents = [
    "ColBERT is a novel ranking model that adapts deep LMs for efficient retrieval.",
    "Jina-ColBERT is a ColBERT-style model but based on JinaBERT so it can support both 8k context length, fast and accurate retrieval.",
]

query_embeddings = model.encode_query(query)
document_embeddings = model.encode_document(documents)
print(query_embeddings.shape, document_embeddings[0].shape)
# (32, 128) (23, 128)

# MaxSim late-interaction scoring (higher is more relevant)
scores = model.similarity(query_embeddings, document_embeddings)
print(scores)
# tensor([[23.2578, 21.5039]])

PyLate

pip install pylate
# Please refer to Pylate: https://github.com/lightonai/pylate for detailed usage
from pylate import indexes, models, retrieve

model = models.ColBERT(
    model_name_or_path="jinaai/jina-colbert-v2",
    query_prefix="[QueryMarker]",
    document_prefix="[DocumentMarker]",
    attend_to_expansion_tokens=True,
    trust_remote_code=True,
)

RAGatouille

pip install ragatouille
from ragatouille import RAGPretrainedModel

RAG = RAGPretrainedModel.from_pretrained("jinaai/jina-colbert-v2")
docs = [
    "ColBERT is a novel ranking model that adapts deep LMs for efficient retrieval.",
    "Jina-ColBERT is a ColBERT-style model but based on JinaBERT so it can support both 8k context length, fast and accurate retrieval.",
]
RAG.index(docs, index_name="demo")
query = "What does ColBERT do?"
results = RAG.search(query)

Stanford ColBERT

pip install colbert-ai
from colbert.infra import ColBERTConfig
from colbert.modeling.checkpoint import Checkpoint

ckpt = Checkpoint("jinaai/jina-colbert-v2", colbert_config=ColBERTConfig())
docs = [
    "ColBERT is a novel ranking model that adapts deep LMs for efficient retrieval.",
    "Jina-ColBERT is a ColBERT-style model but based on JinaBERT so it can support both 8k context length, fast and accurate retrieval.",
]
query_vectors = ckpt.queryFromText(docs, bsize=2)

Evaluation Results

Retrieval Benchmarks

BEIR

NDCG@10jina-colbert-v2jina-colbert-v1ColBERTv2.0BM25
avg0.5310.5020.4960.440
nfcorpus0.3460.3380.3370.325
fiqa0.4080.3680.3540.236
trec-covid0.8340.7500.7260.656
arguana0.3660.4940.4650.315
quora0.8870.8230.8550.789
scidocs0.1860.1690.1540.158
scifact0.6780.7010.6890.665
webis-touche0.2740.2700.2600.367
dbpedia-entity0.4710.4130.4520.313
fever0.8050.7950.7850.753
climate-fever0.2390.1960.1760.213
hotpotqa0.7660.6560.6750.603
nq0.6400.5490.5240.329

MS MARCO Passage Retrieval

MRR@10jina-colbert-v2jina-colbert-v1ColBERTv2.0BM25
MSMARCO0.3960.3900.3970.187

Multilingual Benchmarks

MIRACLE

NDCG@10jina-colbert-v2mDPR (zero shot)
avg0.6270.427
ar0.7530.499
bn0.7500.443
de0.5040.490
es0.5380.478
en0.5700.394
fa0.5630.480
fi0.7400.472
fr0.5410.435
hi0.6000.383
id0.5470.272
ja0.6320.439
ko0.6710.419
ru0.6430.407
sw0.4990.299
te0.7420.356
th0.7720.358
yo0.6230.396
zh0.5230.512

mMARCO

MRR@10jina-colbert-v2BM-25ColBERT-XM
avg0.3130.1410.254
ar0.2720.1110.195
de0.3310.1360.270
nl0.3300.1400.275
es0.3410.1580.285
fr0.3350.1550.269
hi0.3090.1340.238
id0.3190.1490.263
it0.3370.1530.265
ja0.2760.1410.241
pt0.3370.1520.276
ru0.2980.1240.251
vi0.2870.1360.226
zh0.3020.1160.246

Matryoshka Representation Benchmarks

BEIR

NDCG@10dim=128dim=96dim=64
avg0.5990.5910.589
nfcorpus0.3460.3400.347
fiqa0.4080.4040.404
trec-covid0.8340.8080.805
hotpotqa0.7660.7640.756
nq0.6400.6400.635

MSMARCO

MRR@10dim=128dim=96dim=64
msmarco0.3960.3910.388

Other Models

Additionally, we provide the following embedding models, you can also use them for retrieval.

Contact

Join our Discord community and chat with other community members about ideas.

@inproceedings{xiao-etal-2024-jina,
    title = "{J}ina-{C}ol{BERT}-v2: A General-Purpose Multilingual Late Interaction Retriever",
    author = {Jha, Rohan  and
      Wang, Bo  and
      G{\"u}nther, Michael  and
      Mastrapas, Georgios  and
      Sturua, Saba  and
      Mohr, Isabelle  and
      Koukounas, Andreas  and
      Wang, Mohammad Kalim  and
      Wang, Nan  and
      Xiao, Han},
    editor = {S{\"a}lev{\"a}, Jonne  and
      Owodunni, Abraham},
    booktitle = "Proceedings of the Fourth Workshop on Multilingual Representation Learning (MRL 2024)",
    month = nov,
    year = "2024",
    address = "Miami, Florida, USA",
    publisher = "Association for Computational Linguistics",
    url = "https://aclanthology.org/2024.mrl-1.11/",
    doi = "10.18653/v1/2024.mrl-1.11",
    pages = "159--166",
    abstract = "Multi-vector dense models, such as ColBERT, have proven highly effective in information retrieval. ColBERT`s late interaction scoring approximates the joint query-document attention seen in cross-encoders while maintaining inference efficiency closer to traditional dense retrieval models, thanks to its bi-encoder architecture and recent optimizations in indexing and search. In this paper, we introduce a novel architecture and a training framework to support long context window and multilingual retrieval. Leveraging Matryoshka Representation Loss, we further demonstrate that the reducing the embedding dimensionality from 128 to 64 has insignificant impact on the model`s retrieval performance and cut storage requirements by up to 50{\%}. Our new model, Jina-ColBERT-v2, demonstrates strong performance across a range of English and multilingual retrieval tasks,"
}
ColBERT
custom_code
multilingual
multi-vector
onnx
passage-retrieval
safetensors
sentence-transformers

Contributors

bwang0911

10 commits

nan

10 commits

jupyterjazz

3 commits

rjha

2 commits

jinaai/jina-colbert-v2

Model

JinaColBERT V2 (jina-colbert-v2) is a new model based on the JinaColBERT V1 that expands on the capabilities and performance of the jina-colbert-v1-en model. Like the previous release, it has Jina AI’s 8192 token input context and the improved efficiency, performance, and explainability of token-level embeddings and late interaction.

146

31 commits

2 repos using this model

1 linked in READMEs

updated Aug 20, 2026

See the code

README



Jina AI: Your Search Foundation, Supercharged!

Trained by Jina AI.

JinaColBERT V2: A General-Purpose Multilingual Late Interaction Retriever.

JinaColBERT V2 (jina-colbert-v2) is a new model based on the JinaColBERT V1 that expands on the capabilities and performance of the jina-colbert-v1-en model. Like the previous release, it has Jina AI’s 8192 token input context and the improved efficiency, performance, and explainability of token-level embeddings and late interaction.

This new release adds new functionality and performance improvements:

  • Multilingual support for dozens of languages, with strong performance on major global languages.
  • Matryoshka embeddings, which allow users to trade between efficiency and precision flexibly.
  • Superior retrieval performance when compared to the English-only jina-colbert-v1-en.

JinaColBERT V2 offers three different versions for different embeddings dimensions: jinaai/jina-colbert-v2: 128 dimension embeddings jinaai/jina-colbert-v2-96: 96 dimension embeddings jinaai/jina-colbert-v2-64: 64 dimension embeddings

Usage

Installation

jina-colbert-v2 is trained with flash attention, so einops is required and flash_attn is recommended. Without flash_attn the model falls back to PyTorch's native attention implementation. Beyond that, pick whichever inference library you prefer.

pip install -U einops flash_attn

Sentence Transformers

This model can be used with Sentence Transformers as a multi-vector (ColBERT-style late interaction) retriever via the MultiVectorEncoder:

pip install "sentence-transformers>=6.0.0"
from sentence_transformers import MultiVectorEncoder

model = MultiVectorEncoder("jinaai/jina-colbert-v2", trust_remote_code=True)

query = "What does ColBERT do?"
documents = [
    "ColBERT is a novel ranking model that adapts deep LMs for efficient retrieval.",
    "Jina-ColBERT is a ColBERT-style model but based on JinaBERT so it can support both 8k context length, fast and accurate retrieval.",
]

query_embeddings = model.encode_query(query)
document_embeddings = model.encode_document(documents)
print(query_embeddings.shape, document_embeddings[0].shape)
# (32, 128) (23, 128)

# MaxSim late-interaction scoring (higher is more relevant)
scores = model.similarity(query_embeddings, document_embeddings)
print(scores)
# tensor([[23.2578, 21.5039]])

PyLate

pip install pylate
# Please refer to Pylate: https://github.com/lightonai/pylate for detailed usage
from pylate import indexes, models, retrieve

model = models.ColBERT(
    model_name_or_path="jinaai/jina-colbert-v2",
    query_prefix="[QueryMarker]",
    document_prefix="[DocumentMarker]",
    attend_to_expansion_tokens=True,
    trust_remote_code=True,
)

RAGatouille

pip install ragatouille
from ragatouille import RAGPretrainedModel

RAG = RAGPretrainedModel.from_pretrained("jinaai/jina-colbert-v2")
docs = [
    "ColBERT is a novel ranking model that adapts deep LMs for efficient retrieval.",
    "Jina-ColBERT is a ColBERT-style model but based on JinaBERT so it can support both 8k context length, fast and accurate retrieval.",
]
RAG.index(docs, index_name="demo")
query = "What does ColBERT do?"
results = RAG.search(query)

Stanford ColBERT

pip install colbert-ai
from colbert.infra import ColBERTConfig
from colbert.modeling.checkpoint import Checkpoint

ckpt = Checkpoint("jinaai/jina-colbert-v2", colbert_config=ColBERTConfig())
docs = [
    "ColBERT is a novel ranking model that adapts deep LMs for efficient retrieval.",
    "Jina-ColBERT is a ColBERT-style model but based on JinaBERT so it can support both 8k context length, fast and accurate retrieval.",
]
query_vectors = ckpt.queryFromText(docs, bsize=2)

Evaluation Results

Retrieval Benchmarks

BEIR

NDCG@10jina-colbert-v2jina-colbert-v1ColBERTv2.0BM25
avg0.5310.5020.4960.440
nfcorpus0.3460.3380.3370.325
fiqa0.4080.3680.3540.236
trec-covid0.8340.7500.7260.656
arguana0.3660.4940.4650.315
quora0.8870.8230.8550.789
scidocs0.1860.1690.1540.158
scifact0.6780.7010.6890.665
webis-touche0.2740.2700.2600.367
dbpedia-entity0.4710.4130.4520.313
fever0.8050.7950.7850.753
climate-fever0.2390.1960.1760.213
hotpotqa0.7660.6560.6750.603
nq0.6400.5490.5240.329

MS MARCO Passage Retrieval

MRR@10jina-colbert-v2jina-colbert-v1ColBERTv2.0BM25
MSMARCO0.3960.3900.3970.187

Multilingual Benchmarks

MIRACLE

NDCG@10jina-colbert-v2mDPR (zero shot)
avg0.6270.427
ar0.7530.499
bn0.7500.443
de0.5040.490
es0.5380.478
en0.5700.394
fa0.5630.480
fi0.7400.472
fr0.5410.435
hi0.6000.383
id0.5470.272
ja0.6320.439
ko0.6710.419
ru0.6430.407
sw0.4990.299
te0.7420.356
th0.7720.358
yo0.6230.396
zh0.5230.512

mMARCO

MRR@10jina-colbert-v2BM-25ColBERT-XM
avg0.3130.1410.254
ar0.2720.1110.195
de0.3310.1360.270
nl0.3300.1400.275
es0.3410.1580.285
fr0.3350.1550.269
hi0.3090.1340.238
id0.3190.1490.263
it0.3370.1530.265
ja0.2760.1410.241
pt0.3370.1520.276
ru0.2980.1240.251
vi0.2870.1360.226
zh0.3020.1160.246

Matryoshka Representation Benchmarks

BEIR

NDCG@10dim=128dim=96dim=64
avg0.5990.5910.589
nfcorpus0.3460.3400.347
fiqa0.4080.4040.404
trec-covid0.8340.8080.805
hotpotqa0.7660.7640.756
nq0.6400.6400.635

MSMARCO

MRR@10dim=128dim=96dim=64
msmarco0.3960.3910.388

Other Models

Additionally, we provide the following embedding models, you can also use them for retrieval.

Contact

Join our Discord community and chat with other community members about ideas.

@inproceedings{xiao-etal-2024-jina,
    title = "{J}ina-{C}ol{BERT}-v2: A General-Purpose Multilingual Late Interaction Retriever",
    author = {Jha, Rohan  and
      Wang, Bo  and
      G{\"u}nther, Michael  and
      Mastrapas, Georgios  and
      Sturua, Saba  and
      Mohr, Isabelle  and
      Koukounas, Andreas  and
      Wang, Mohammad Kalim  and
      Wang, Nan  and
      Xiao, Han},
    editor = {S{\"a}lev{\"a}, Jonne  and
      Owodunni, Abraham},
    booktitle = "Proceedings of the Fourth Workshop on Multilingual Representation Learning (MRL 2024)",
    month = nov,
    year = "2024",
    address = "Miami, Florida, USA",
    publisher = "Association for Computational Linguistics",
    url = "https://aclanthology.org/2024.mrl-1.11/",
    doi = "10.18653/v1/2024.mrl-1.11",
    pages = "159--166",
    abstract = "Multi-vector dense models, such as ColBERT, have proven highly effective in information retrieval. ColBERT`s late interaction scoring approximates the joint query-document attention seen in cross-encoders while maintaining inference efficiency closer to traditional dense retrieval models, thanks to its bi-encoder architecture and recent optimizations in indexing and search. In this paper, we introduce a novel architecture and a training framework to support long context window and multilingual retrieval. Leveraging Matryoshka Representation Loss, we further demonstrate that the reducing the embedding dimensionality from 128 to 64 has insignificant impact on the model`s retrieval performance and cut storage requirements by up to 50{\%}. Our new model, Jina-ColBERT-v2, demonstrates strong performance across a range of English and multilingual retrieval tasks,"
}
ColBERT
custom_code
multilingual
multi-vector
onnx
passage-retrieval
safetensors
sentence-transformers

Contributors

bwang0911

10 commits

nan

10 commits

jupyterjazz

3 commits

rjha

2 commits