
Vör-LateEmbed-TR
A Turkish late-interaction retrieval and reranking model for search and RAG, fine-tuned from Perplexity’s pplx-embed-v2-late-0.6b. A RuneLab model, not a Hati or Sköll model.
ReleasedApache 2.00.6B
Vör-LateEmbed-TR is a Turkish retrieval and reranking model for semantic search and RAG. You ask in Turkish, it finds the passage. It is a late-interaction model: instead of squeezing a passage into one vector, it keeps one vector per token and compares a query with a passage token by token (ColBERT-style MaxSim). It is made by RuneLab and is not a Hati or Sköll model.
It is fine-tuned from Perplexity’s pplx-embed-v2-late-0.6b and was released on October 12, 2026 under the Apache 2.0 license. In our evaluation it ranks Turkish passages better than its base model on all five official Turkish test sets we measured (TurkColBERT), and it keeps the base model’s English and visual-document ability.
At a glance
Quick facts
#- Parameters
- 0.6B
- License
- Apache 2.0
- Release date
- Parameters
- 0.6B (594.5M parameters; 340.2M without the token-embedding table)
- Base model
- Perplexity pplx-embed-v2-late-0.6b
- Fine-tuning
- LoRA (rank 16, alpha 32), merged into the weights
- Embedding dimension
- One 128-dim vector per token (late interaction, MaxSim)
- Sequence lengths
- 1,024 tokens for queries, 4,096 for documents
- Task
- Turkish passage retrieval and re-ranking (search and RAG)
- Languages
- Turkish, English
- License
- Apache 2.0
- Release date
- Model on Hugging Face
- runelab-ai/Vor-LateEmbed-TR-0.6B-v1
These figures are as stated on the model card. The model has the same size and API as its base model, so moving to it means re-indexing your documents, not rewriting your pipeline.
Use it well
What it is for
#Intended use
#- Turkish passage retrieval and re-ranking in search and RAG systems
- Mixed Turkish and English document collections
- Research on late-interaction retrieval for Turkish
Not meant for
#- Chat or text generation: it is a retriever, not a language model
- A drop-in single-vector embedding model: it needs a multi-vector index or a re-ranking step
- Medical, legal or financial decisions without people reviewing the retrieved passages
Need a single-vector model for Turkish legal text instead? See Kenning Turkish Legal. Want to see how retrieval finds the right passage, step by step? Read the post How RAG finds answers.
In our evaluation
Benchmarks
#Every number in this section comes from our evaluation, as reported on the model card. The score is nDCG@10 (higher is better, 100 at most): it rewards putting the right passages near the top of the first ten results. Each test set was scored once, on the final model only, with the same settings for both models. The
Turkish retrieval
#TurkColBERT is five translated BEIR test sets. XQuAD-TR is Turkish passage retrieval built from the XQuAD questions.
Turkish retrieval, nDCG@10: base model and Vör-LateEmbed-TR
Score, from 0 to 100
Hover, tap or focus a row to read it.
- Base model
- Vör
Bars run from 0 to 100. Changes are as the card states them.
| Task | Base model | Vör-LateEmbed-TR | Change |
|---|---|---|---|
| SciFact-TR | 70.19 | 71.23 | +1.04 |
| ArguAna-TR | 41.85 | 42.03 | +0.18 |
| FiQA-TR | 28.50 | 31.46 | +2.96 |
| SciDocs-TR | 12.62 | 14.48 | +1.86 |
| NFCorpus-TR | 29.56 | 31.66 | +2.09 |
| TurkColBERT average (5) | 36.54 | 38.17 | +1.62 |
| XQuAD-TR | 97.04 | 97.49 | +0.45 |
Bars run from 0 to 100. Changes are as the card states them.
Vör is above its base model on all five TurkColBERT sets: +1.62 on their average, from 36.54 to 38.17 (the card’s 95% interval is +1.27 to +2.00). The largest gains are on FiQA-TR (+2.96), NFCorpus-TR (+2.09) and SciDocs-TR (+1.86). On SciFact-TR (+1.04) and ArguAna-TR (+0.18) the gain is within noise: the interval includes zero. XQuAD-TR moves from 97.04 to 97.49.
Only +1.62 on the average. Is that worth switching for?
It is the same size and the same API, so the cost is one re-index. The gains are largest on the financial, medical and scientific sets; test it on your own documents first.
General ability
#The aim here was not to improve English or page-image search, only to keep it. English NanoBEIR (six small sets of 50 queries each) moves from 69.10 to 70.20, and ViDoRe (page-image retrieval, 880 queries) from 99.08 to 99.04. The card computed no intervals for these, and the training data included English MS MARCO, so the English gain is not an out-of-domain result.
General ability, nDCG@10: base model and Vör-LateEmbed-TR
Score, from 0 to 100
Hover, tap or focus a row to read it.
- Base model
- Vör
Bars run from 0 to 100. Changes are as the card states them.
| Task | Base model | Vör-LateEmbed-TR | Change |
|---|---|---|---|
| NanoBEIR, English (6 sets) | 69.10 | 70.20 | +1.10 |
| ViDoRe, page images (3 sets) | 99.08 | 99.04 | −0.04 |
Bars run from 0 to 100. Changes are as the card states them.
Try it
How to run it
#Install sentence-transformers 6.1 or newer.
pip install -U "sentence-transformers>=6.1"
Then encode and rank. encode_query and encode_document add the [Q] and [D] prompts for you, and similarity returns the MaxSim scores. This is the card’s own example.
from sentence_transformers import MultiVectorEncoder
model = MultiVectorEncoder("runelab-ai/Vor-LateEmbed-TR-0.6B-v1", device="cuda")
queries = ["Türkiye'nin en yüksek dağı hangisidir?"]
passages = [
"Ağrı Dağı, 5.137 metre yüksekliğiyle Türkiye'nin en yüksek dağıdır.",
"Uludağ, Bursa'da bulunan popüler bir kış turizmi merkezidir.",
]
q = model.encode_query(queries) # one 128-dim vector per query token
d = model.encode_document(passages) # one 128-dim vector per passage token
scores = model.similarity(q, d) # MaxSim scores, shape (num_queries, num_passages)
print(scores.argmax(dim=1)) # best passage per query
Three things from the card to keep in mind. Keep the saved lengths: 1,024 tokens for queries and 4,096 for documents. Late interaction stores one vector per token, so for large collections use a multi-vector index (for example a PLAID-style index) or re-rank a shortlist from a cheaper first stage. And re-encode your corpus when you switch: vectors from the base model and from Vör are not interchangeable.
Under the hood
How it was trained
#Vör was trained with LoRA on the text layers, then merged into the weights; the vision part stayed frozen. It learned by listwise distillation: for each question it saw the right passage and seven hard negatives, and its targets blended the right answer with the base model’s own scores. The settings from the card:
- LoRA
- rank 16, alpha 32
- Training groups
- 80,217
- Batch
- 64 groups
- Learning rate
- 1e-4, cosine decay
- English replay
- 15% MS MARCO
The training data was checked against all TurkColBERT data and every held-out test text, and no TurkColBERT split was trained on.
The name
The name
#In Norse mythology, Vör is the goddess of wisdom and awareness, so perceptive that nothing could be kept hidden from her. A retriever has the same job: find what is hidden in a large pile of text. “Late” is for late interaction, comparing a query and a passage token by token, like matching each rune on a card to its rune on a scroll. “TR” is for Turkish. Vör is a RuneLab model, not part of the Hati or Sköll families.

