Vör Late by RuneLab: Vör, in a white robe with a long brown braid, places golden markers on a woven map on a lantern-lit deck above a moonlit fjord.

Vör-LateEmbed-TR

Models

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

View on Hugging FaceAll models

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

#

Vör-LateEmbed-TR

As stated on the model card

View on Hugging Face
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

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 striped bars are the base model, pplx-embed-v2-late-0.6b. The solid bars are Vör.

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

SciFact-TR+1.04
ArguAna-TR+0.18
FiQA-TR+2.96
SciDocs-TR+1.86
NFCorpus-TR+2.09
TurkColBERT average (5)+1.62
XQuAD-TR+0.45

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.

Turkish retrieval, nDCG@10: base model and Vör-LateEmbed-TR
TaskBase modelVör-LateEmbed-TRChange
SciFact-TR70.1971.23+1.04
ArguAna-TR41.8542.03+0.18
FiQA-TR28.5031.46+2.96
SciDocs-TR12.6214.48+1.86
NFCorpus-TR29.5631.66+2.09
TurkColBERT average (5)36.5438.17+1.62
XQuAD-TR97.0497.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

NanoBEIR, English (6 sets)+1.10
ViDoRe, page images (3 sets)−0.04

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.

General ability, nDCG@10: base model and Vör-LateEmbed-TR
TaskBase modelVör-LateEmbed-TRChange
NanoBEIR, English (6 sets)69.1070.20+1.10
ViDoRe, page images (3 sets)99.0899.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.

InstallShell
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.

Search with VörPython
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.

Vör, in a white robe, stands in a candle-lit library and matches the rune symbols on a small card in her hand to the same symbols on a tall scroll; glowing lines link each pair.