KURE-v2 is a Korean-English bilingual late-interaction (multi-vector) retrieval model built on skt/A.X-Encoder-base. It encodes every token into a 128-dimensional vector and scores queryβdocument pairs with MaxSim.
At 154M parameters it averages nDCG@10 0.8160 across the nine MTEB(kor, v2) retrieval tasks β the strongest model on that suite, above every single-vector model measured, including one 175Γ its size.
It is trained in two stages: unsupervised contrastive pretraining on 20.7M unlabeled pairs (KURE-v2-unsupervised), then supervised fine-tuning with contrastive loss and KL distillation from a reranker.
pip install -U pylate
from pylate import indexes, models, retrieve
model = models.ColBERT(model_name_or_path="nlpai-lab/KURE-v2")
index = indexes.PLAID(
index_folder="pylate-index",
index_name="index",
override=True,
)
documents_ids = ["1", "2", "3"]
documents = [
"μΈμ’
λμμ 1443λ
μ νλ―Όμ μμ μ°½μ νκ³ 1446λ
μ μ΄λ₯Ό λ°ν¬νμλ€.",
"κΉμΉλ λ°°μΆλ 무λ₯Ό μκΈμ μ μΈ λ€ κ³ μΆ§κ°λ£¨μ μ κ°μ λ£μ΄ λ°ν¨μν¨ μμμ΄λ€.",
"νλΌμ°μ ν΄λ° 1,947mλ‘ λ¨νμμ κ°μ₯ λμ μ°μ΄λ©° μ μ£Όλ μ€μμ μ리νλ€.",
]
documents_embeddings = model.encode(
documents,
batch_size=32,
is_query=False,
show_progress_bar=True,
)
index.add_documents(
documents_ids=documents_ids,
documents_embeddings=documents_embeddings,
)
To reuse an existing index, instantiate it without override:
index = indexes.PLAID(index_folder="pylate-index", index_name="index")
retriever = retrieve.ColBERT(index=index)
queries_embeddings = model.encode(
["νλ―Όμ μμ μΈμ λ§λ€μ΄μ‘λμ?"],
batch_size=32,
is_query=True,
show_progress_bar=True,
)
scores = retriever.retrieve(
queries_embeddings=queries_embeddings,
k=10,
)
To rerank a first-stage candidate list without building an index:
from pylate import models, rank
model = models.ColBERT(model_name_or_path="nlpai-lab/KURE-v2")
queries = [
"μ κΈ°μ°¨ νλ°°ν°λ¦¬λ μ΄λ»κ² μ¬νμ©νλμ?",
"겨μΈμ νλΌμ°μ μ€λ₯Ό λ νμν μ₯λΉλ?",
]
documents = [
[
"νλ°°ν°λ¦¬μμ 리ν¬κ³Ό μ½λ°νΈλ₯Ό νμνλ μ΅μ μ λ ¨ 곡μ μ΄ μμ©νλκ³ μλ€.",
"κΈμ μΆ©μ κΈ°λ 30λΆ λ΄μΈλ‘ λ°°ν°λ¦¬λ₯Ό 80%κΉμ§ μΆ©μ ν μ μλ€.",
],
[
"κ²¨μΈ νλΌμ° μ°νμλ μμ΄μ κ³Ό λ°©ν μ₯κ°μ΄ νμμ΄λ©° μ
μ° μκ°μ΄ μ νλλ€.",
"μ μ£Ό μ¬λ κΈΈμ ν΄μμ λ°λΌ μ΄μ΄μ§λ 27κ° μ½μ€λ‘ ꡬμ±λμ΄ μλ€.",
"μ μ€κΈ°μλ λ±μ°νμ μ€ν¨μΈ λ₯Ό μ°©μ©ν΄ λμ΄ λ€μ΄κ°λ κ²μ λ§λ κ²μ΄ μ’λ€.",
],
]
documents_ids = [[1, 2], [1, 3, 2]]
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,
)
pip install -U sentence-transformers
from sentence_transformers import MultiVectorEncoder
model = MultiVectorEncoder("nlpai-lab/KURE-v2")
query = "νλ―Όμ μμ μΈμ λ§λ€μ΄μ‘λμ?"
documents = [
"μΈμ’
λμμ 1443λ
μ νλ―Όμ μμ μ°½μ νκ³ 1446λ
μ μ΄λ₯Ό λ°ν¬νμλ€.",
"κΉμΉλ λ°°μΆλ 무λ₯Ό μκΈμ μ μΈ λ€ κ³ μΆ§κ°λ£¨μ μ κ°μ λ£μ΄ λ°ν¨μν¨ μμμ΄λ€.",
"νλΌμ°μ ν΄λ° 1,947mλ‘ λ¨νμμ κ°μ₯ λμ μ°μ΄λ©° μ μ£Όλ μ€μμ μ리νλ€.",
]
query_embeddings = model.encode_query(query)
document_embeddings = model.encode_document(documents)
print(query_embeddings.shape, document_embeddings[0].shape)
# (64, 128) (29, 128)
# MaxSim late-interaction scoring (higher is more relevant)
scores = model.similarity(query_embeddings, document_embeddings)
print(scores)
KURE-v2 is evaluated on the nine MTEB(kor, v2) Retrieval tasks. We report nDCG@10. The results are also shown in the official MTEB Leaderboard
| Model | Params | Avg | AutoRAG | PubHealthQA | Ko-StrategyQA | LawIRKo | SQuADKorV1 | Belebele (ko-ko) | MrTidy | MLDR | MIRACL |
|---|---|---|---|---|---|---|---|---|---|---|---|
| Our Models | |||||||||||
| nlpai-lab/KURE-v2 | 154M | 0.8160 | 0.9718 | 0.8229 | 0.8070 | 0.7550 | 0.9846 | 0.9660 | 0.5974 | 0.7159 | 0.7237 |
| nlpai-lab/KURE-v2-unsupervised | 154M | 0.7283 | 0.8822 | 0.8240 | 0.7818 | 0.7680 | 0.9427 | 0.9525 | 0.3496 | 0.6130 | 0.4411 |
| Late-Interaction (Multi-Vector) Models | |||||||||||
| yjoonjang/colbert-ko-en-v2 | 149M | 0.8063 | 0.9686 | 0.8222 | 0.7940 | 0.7181 | 0.9846 | 0.9687 | 0.5783 | 0.6992 | 0.7230 |
| lightonai/mLateOn | 307M | 0.7906 | 0.9392 | 0.8061 | 0.7905 | 0.6431 | 0.9803 | 0.9608 | 0.5817 | 0.7005 | 0.7135 |
| perplexity-ai/pplx-embed-v1-late-0.6b | 596M | 0.7381 | 0.8557 | 0.8089 | 0.7973 | 0.7285 | 0.9696 | 0.9548 | 0.5400 | 0.2816 | 0.7064 |
| dragonkue/colbert-ko-0.1b | 149M | 0.6776 | 0.9700 | 0.7482 | 0.7364 | 0.4475 | 0.9794 | 0.9644 | 0.3966 | 0.2872 | 0.5685 |
| yjoonjang/colbert-ko-v1 | 149M | 0.6282 | 0.9557 | 0.6783 | 0.6560 | 0.4823 | 0.9594 | 0.9154 | 0.3279 | 0.2214 | 0.4575 |
| Dense (Single-Vector) Models | |||||||||||
| sionic-ai/comsat-embed-ko-8b-preview | 7.6B | 0.7927 | 0.8518 | 0.8871 | 0.8394 | 0.8164 | 0.9168 | 0.9853 | 0.6253 | 0.5157 | 0.6964 |
| Qwen/Qwen3-Embedding-8B | 7.6B | 0.7826 | 0.8276 | 0.8721 | 0.8363 | 0.8171 | 0.9063 | 0.9824 | 0.6187 | 0.5046 | 0.6783 |
| Qwen/Qwen3-Embedding-4B | 4.0B | 0.7737 | 0.8431 | 0.8693 | 0.8270 | 0.7769 | 0.9044 | 0.9522 | 0.6076 | 0.5022 | 0.6803 |
| microsoft/harrier-oss-v1-27b | 27.0B | 0.7667 | 0.8176 | 0.8971 | 0.8361 | 0.8737 | 0.9204 | 0.9546 | 0.5306 | 0.4046 | 0.6653 |
| dragonkue/snowflake-arctic-embed-l-v2.0-ko | 568M | 0.7653 | 0.9093 | 0.8337 | 0.8050 | 0.7735 | 0.9447 | 0.9518 | 0.5712 | 0.4304 | 0.6685 |
| codefuse-ai/F2LLM-v2-8B | 7.6B | 0.7638 | 0.7678 | 0.9380 | 0.8371 | 0.8405 | 0.8874 | 0.9513 | 0.6162 | 0.4047 | 0.6313 |
| telepix/PIXIE-Rune-v1.5 | 568M | 0.7618 | 0.8927 | 0.8426 | 0.8064 | 0.7705 | 0.9457 | 0.9617 | 0.5492 | 0.4482 | 0.6393 |
| nlpai-lab/KURE-v1 | 568M | 0.7616 | 0.8708 | 0.8193 | 0.7999 | 0.7426 | 0.9357 | 0.9502 | 0.5909 | 0.4637 | 0.6816 |
| dragonkue/BGE-m3-ko | 568M | 0.7547 | 0.8738 | 0.8155 | 0.7959 | 0.7322 | 0.9414 | 0.9503 | 0.6099 | 0.3899 | 0.6833 |
| BAAI/bge-m3 | 568M | 0.7509 | 0.8301 | 0.8041 | 0.7941 | 0.7174 | 0.9038 | 0.9316 | 0.6471 | 0.4287 | 0.7015 |
| nlpai-lab/KoE5 | 560M | 0.7337 | 0.8434 | 0.8351 | 0.8001 | 0.7756 | 0.8980 | 0.9425 | 0.5841 | 0.3015 | 0.6235 |
Late-interaction rows were measured with mteb 2.18.16 and PLAID retrieval. Single-vector rows are
taken from the official MTEB results repository,
except for Belebele, where only the Korean-query / Korean-corpus subset is used. The original
version also includes cross-lingual subsets (Korean query β English corpus, English query β Korean
corpus).
KURE-v2 is a late-interaction model: each document is stored as a set of token vectors, so the practical questions for deployment are index size and search cost. We benchmarked KURE-v2 across ANN backends and compression schemes on the 9 Korean MTEB retrieval tasks, against five single-vector baselines served with faiss HNSW. All numbers are end-to-end: batch-1 query encoding + index search, measured serially on one A100 80GB.
Two things the figures show:
On the largest corpus (MIRACL, ~1.5M documents) an exhaustive 1-bit scan costs O(corpus): p95 climbs to 156 ms, and pooling the tokens 3x only brings it to 74 ms. Generating candidates with faiss BinaryIVF (Hamming search over the same 1-bit index) and re-scoring them with exact asymmetric MaxSim cuts p95 to 38 ms on the same 2.2 GB index, lower tail latency than the 4B-8B single-vector baselines (43 ms) at higher nDCG. For large collections, use a candidate-generating index (PLAID or BinaryIVF), not an exhaustive scan.
IndexHNSWFlat (inner product on L2-normalized embeddings), M=32, efConstruction=200, efSearch=64.@misc{kure-v2,
title = {KURE-v2: a Korean-English bilingual late-interaction retriever},
author = {Jang, Youngjoon and Son, Junyoung and Lee, Taemin and Hong, Seongtae and Lim, Heuiseok},
year = {2026},
url = {https://huggingface.co/nlpai-lab/KURE-v2},
}
@inproceedings{jang2025kure,
title={KURE: Embedding Model for Korean-Specific Retrieval},
author={Jang, Youngjoon and Son, Junyoung and Lee, Taemin and Hong, Seongtae and Park, JeongBae and Lim, Heuiseok},
booktitle={Annual Conference on Human and Language Technology},
pages={129--134},
year={2025},
organization={Human and Language Technology}
}
@inproceedings{santhanam-etal-2022-colbertv2,
title = {ColBERTv2: Effective and Efficient Retrieval via Lightweight Late Interaction},
author = {Santhanam, Keshav and Khattab, Omar and Saad-Falcon, Jon and Potts, Christopher and Zaharia, Matei},
booktitle = {Proceedings of the 2022 Conference of the North American Chapter of the Association for Computational Linguistics: Human Language Technologies},
year = {2022},
pages = {3715--3734},
}
@misc{PyLate,
title = {PyLate: Flexible Training and Retrieval for Late Interaction Models},
author = {Chaffin, Antoine and Sourty, RaphaΓ«l},
year = {2024},
url = {https://github.com/lightonai/pylate},
}
KURE-v2 is a Korean-English bilingual late-interaction (multi-vector) retrieval model built on skt/A.X-Encoder-base. It encodes every token into a 128-dimensional vector and scores queryβdocument pairs with MaxSim.
At 154M parameters it averages nDCG@10 0.8160 across the nine MTEB(kor, v2) retrieval tasks β the strongest model on that suite, above every single-vector model measured, including one 175Γ its size.
It is trained in two stages: unsupervised contrastive pretraining on 20.7M unlabeled pairs (KURE-v2-unsupervised), then supervised fine-tuning with contrastive loss and KL distillation from a reranker.
pip install -U pylate
from pylate import indexes, models, retrieve
model = models.ColBERT(model_name_or_path="nlpai-lab/KURE-v2")
index = indexes.PLAID(
index_folder="pylate-index",
index_name="index",
override=True,
)
documents_ids = ["1", "2", "3"]
documents = [
"μΈμ’
λμμ 1443λ
μ νλ―Όμ μμ μ°½μ νκ³ 1446λ
μ μ΄λ₯Ό λ°ν¬νμλ€.",
"κΉμΉλ λ°°μΆλ 무λ₯Ό μκΈμ μ μΈ λ€ κ³ μΆ§κ°λ£¨μ μ κ°μ λ£μ΄ λ°ν¨μν¨ μμμ΄λ€.",
"νλΌμ°μ ν΄λ° 1,947mλ‘ λ¨νμμ κ°μ₯ λμ μ°μ΄λ©° μ μ£Όλ μ€μμ μ리νλ€.",
]
documents_embeddings = model.encode(
documents,
batch_size=32,
is_query=False,
show_progress_bar=True,
)
index.add_documents(
documents_ids=documents_ids,
documents_embeddings=documents_embeddings,
)
To reuse an existing index, instantiate it without override:
index = indexes.PLAID(index_folder="pylate-index", index_name="index")
retriever = retrieve.ColBERT(index=index)
queries_embeddings = model.encode(
["νλ―Όμ μμ μΈμ λ§λ€μ΄μ‘λμ?"],
batch_size=32,
is_query=True,
show_progress_bar=True,
)
scores = retriever.retrieve(
queries_embeddings=queries_embeddings,
k=10,
)
To rerank a first-stage candidate list without building an index:
from pylate import models, rank
model = models.ColBERT(model_name_or_path="nlpai-lab/KURE-v2")
queries = [
"μ κΈ°μ°¨ νλ°°ν°λ¦¬λ μ΄λ»κ² μ¬νμ©νλμ?",
"겨μΈμ νλΌμ°μ μ€λ₯Ό λ νμν μ₯λΉλ?",
]
documents = [
[
"νλ°°ν°λ¦¬μμ 리ν¬κ³Ό μ½λ°νΈλ₯Ό νμνλ μ΅μ μ λ ¨ 곡μ μ΄ μμ©νλκ³ μλ€.",
"κΈμ μΆ©μ κΈ°λ 30λΆ λ΄μΈλ‘ λ°°ν°λ¦¬λ₯Ό 80%κΉμ§ μΆ©μ ν μ μλ€.",
],
[
"κ²¨μΈ νλΌμ° μ°νμλ μμ΄μ κ³Ό λ°©ν μ₯κ°μ΄ νμμ΄λ©° μ
μ° μκ°μ΄ μ νλλ€.",
"μ μ£Ό μ¬λ κΈΈμ ν΄μμ λ°λΌ μ΄μ΄μ§λ 27κ° μ½μ€λ‘ ꡬμ±λμ΄ μλ€.",
"μ μ€κΈ°μλ λ±μ°νμ μ€ν¨μΈ λ₯Ό μ°©μ©ν΄ λμ΄ λ€μ΄κ°λ κ²μ λ§λ κ²μ΄ μ’λ€.",
],
]
documents_ids = [[1, 2], [1, 3, 2]]
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,
)
pip install -U sentence-transformers
from sentence_transformers import MultiVectorEncoder
model = MultiVectorEncoder("nlpai-lab/KURE-v2")
query = "νλ―Όμ μμ μΈμ λ§λ€μ΄μ‘λμ?"
documents = [
"μΈμ’
λμμ 1443λ
μ νλ―Όμ μμ μ°½μ νκ³ 1446λ
μ μ΄λ₯Ό λ°ν¬νμλ€.",
"κΉμΉλ λ°°μΆλ 무λ₯Ό μκΈμ μ μΈ λ€ κ³ μΆ§κ°λ£¨μ μ κ°μ λ£μ΄ λ°ν¨μν¨ μμμ΄λ€.",
"νλΌμ°μ ν΄λ° 1,947mλ‘ λ¨νμμ κ°μ₯ λμ μ°μ΄λ©° μ μ£Όλ μ€μμ μ리νλ€.",
]
query_embeddings = model.encode_query(query)
document_embeddings = model.encode_document(documents)
print(query_embeddings.shape, document_embeddings[0].shape)
# (64, 128) (29, 128)
# MaxSim late-interaction scoring (higher is more relevant)
scores = model.similarity(query_embeddings, document_embeddings)
print(scores)
KURE-v2 is evaluated on the nine MTEB(kor, v2) Retrieval tasks. We report nDCG@10. The results are also shown in the official MTEB Leaderboard
| Model | Params | Avg | AutoRAG | PubHealthQA | Ko-StrategyQA | LawIRKo | SQuADKorV1 | Belebele (ko-ko) | MrTidy | MLDR | MIRACL |
|---|---|---|---|---|---|---|---|---|---|---|---|
| Our Models | |||||||||||
| nlpai-lab/KURE-v2 | 154M | 0.8160 | 0.9718 | 0.8229 | 0.8070 | 0.7550 | 0.9846 | 0.9660 | 0.5974 | 0.7159 | 0.7237 |
| nlpai-lab/KURE-v2-unsupervised | 154M | 0.7283 | 0.8822 | 0.8240 | 0.7818 | 0.7680 | 0.9427 | 0.9525 | 0.3496 | 0.6130 | 0.4411 |
| Late-Interaction (Multi-Vector) Models | |||||||||||
| yjoonjang/colbert-ko-en-v2 | 149M | 0.8063 | 0.9686 | 0.8222 | 0.7940 | 0.7181 | 0.9846 | 0.9687 | 0.5783 | 0.6992 | 0.7230 |
| lightonai/mLateOn | 307M | 0.7906 | 0.9392 | 0.8061 | 0.7905 | 0.6431 | 0.9803 | 0.9608 | 0.5817 | 0.7005 | 0.7135 |
| perplexity-ai/pplx-embed-v1-late-0.6b | 596M | 0.7381 | 0.8557 | 0.8089 | 0.7973 | 0.7285 | 0.9696 | 0.9548 | 0.5400 | 0.2816 | 0.7064 |
| dragonkue/colbert-ko-0.1b | 149M | 0.6776 | 0.9700 | 0.7482 | 0.7364 | 0.4475 | 0.9794 | 0.9644 | 0.3966 | 0.2872 | 0.5685 |
| yjoonjang/colbert-ko-v1 | 149M | 0.6282 | 0.9557 | 0.6783 | 0.6560 | 0.4823 | 0.9594 | 0.9154 | 0.3279 | 0.2214 | 0.4575 |
| Dense (Single-Vector) Models | |||||||||||
| sionic-ai/comsat-embed-ko-8b-preview | 7.6B | 0.7927 | 0.8518 | 0.8871 | 0.8394 | 0.8164 | 0.9168 | 0.9853 | 0.6253 | 0.5157 | 0.6964 |
| Qwen/Qwen3-Embedding-8B | 7.6B | 0.7826 | 0.8276 | 0.8721 | 0.8363 | 0.8171 | 0.9063 | 0.9824 | 0.6187 | 0.5046 | 0.6783 |
| Qwen/Qwen3-Embedding-4B | 4.0B | 0.7737 | 0.8431 | 0.8693 | 0.8270 | 0.7769 | 0.9044 | 0.9522 | 0.6076 | 0.5022 | 0.6803 |
| microsoft/harrier-oss-v1-27b | 27.0B | 0.7667 | 0.8176 | 0.8971 | 0.8361 | 0.8737 | 0.9204 | 0.9546 | 0.5306 | 0.4046 | 0.6653 |
| dragonkue/snowflake-arctic-embed-l-v2.0-ko | 568M | 0.7653 | 0.9093 | 0.8337 | 0.8050 | 0.7735 | 0.9447 | 0.9518 | 0.5712 | 0.4304 | 0.6685 |
| codefuse-ai/F2LLM-v2-8B | 7.6B | 0.7638 | 0.7678 | 0.9380 | 0.8371 | 0.8405 | 0.8874 | 0.9513 | 0.6162 | 0.4047 | 0.6313 |
| telepix/PIXIE-Rune-v1.5 | 568M | 0.7618 | 0.8927 | 0.8426 | 0.8064 | 0.7705 | 0.9457 | 0.9617 | 0.5492 | 0.4482 | 0.6393 |
| nlpai-lab/KURE-v1 | 568M | 0.7616 | 0.8708 | 0.8193 | 0.7999 | 0.7426 | 0.9357 | 0.9502 | 0.5909 | 0.4637 | 0.6816 |
| dragonkue/BGE-m3-ko | 568M | 0.7547 | 0.8738 | 0.8155 | 0.7959 | 0.7322 | 0.9414 | 0.9503 | 0.6099 | 0.3899 | 0.6833 |
| BAAI/bge-m3 | 568M | 0.7509 | 0.8301 | 0.8041 | 0.7941 | 0.7174 | 0.9038 | 0.9316 | 0.6471 | 0.4287 | 0.7015 |
| nlpai-lab/KoE5 | 560M | 0.7337 | 0.8434 | 0.8351 | 0.8001 | 0.7756 | 0.8980 | 0.9425 | 0.5841 | 0.3015 | 0.6235 |
Late-interaction rows were measured with mteb 2.18.16 and PLAID retrieval. Single-vector rows are
taken from the official MTEB results repository,
except for Belebele, where only the Korean-query / Korean-corpus subset is used. The original
version also includes cross-lingual subsets (Korean query β English corpus, English query β Korean
corpus).
KURE-v2 is a late-interaction model: each document is stored as a set of token vectors, so the practical questions for deployment are index size and search cost. We benchmarked KURE-v2 across ANN backends and compression schemes on the 9 Korean MTEB retrieval tasks, against five single-vector baselines served with faiss HNSW. All numbers are end-to-end: batch-1 query encoding + index search, measured serially on one A100 80GB.
Two things the figures show:
On the largest corpus (MIRACL, ~1.5M documents) an exhaustive 1-bit scan costs O(corpus): p95 climbs to 156 ms, and pooling the tokens 3x only brings it to 74 ms. Generating candidates with faiss BinaryIVF (Hamming search over the same 1-bit index) and re-scoring them with exact asymmetric MaxSim cuts p95 to 38 ms on the same 2.2 GB index, lower tail latency than the 4B-8B single-vector baselines (43 ms) at higher nDCG. For large collections, use a candidate-generating index (PLAID or BinaryIVF), not an exhaustive scan.
IndexHNSWFlat (inner product on L2-normalized embeddings), M=32, efConstruction=200, efSearch=64.@misc{kure-v2,
title = {KURE-v2: a Korean-English bilingual late-interaction retriever},
author = {Jang, Youngjoon and Son, Junyoung and Lee, Taemin and Hong, Seongtae and Lim, Heuiseok},
year = {2026},
url = {https://huggingface.co/nlpai-lab/KURE-v2},
}
@inproceedings{jang2025kure,
title={KURE: Embedding Model for Korean-Specific Retrieval},
author={Jang, Youngjoon and Son, Junyoung and Lee, Taemin and Hong, Seongtae and Park, JeongBae and Lim, Heuiseok},
booktitle={Annual Conference on Human and Language Technology},
pages={129--134},
year={2025},
organization={Human and Language Technology}
}
@inproceedings{santhanam-etal-2022-colbertv2,
title = {ColBERTv2: Effective and Efficient Retrieval via Lightweight Late Interaction},
author = {Santhanam, Keshav and Khattab, Omar and Saad-Falcon, Jon and Potts, Christopher and Zaharia, Matei},
booktitle = {Proceedings of the 2022 Conference of the North American Chapter of the Association for Computational Linguistics: Human Language Technologies},
year = {2022},
pages = {3715--3734},
}
@misc{PyLate,
title = {PyLate: Flexible Training and Retrieval for Late Interaction Models},
author = {Chaffin, Antoine and Sourty, RaphaΓ«l},
year = {2024},
url = {https://github.com/lightonai/pylate},
}