Kenning by RuneLab, rune tablet and linked parchments on a moonlit balcony.

Kenning Turkish Legal

Models

Turkish legal retrieval embeddings, fine-tuned from EmbeddingGemma 2. A RuneLab embedding model, not a Hati or Sköll model.

ReleasedApache 2.00.3B

View on Hugging FaceAll models

Kenning Turkish Legal turns Turkish legal text into embeddings: lists of numbers that let a search match meaning, not only exact words. It is built for finding the right contracts, case law and regulation, for example as the first retrieval step in a RAG pipeline. It is made by RuneLab and is not a Hati or Sköll model.

It is fine-tuned from Google’s EmbeddingGemma 2 (271M parameters) and was released on October 7, 2026 under the Apache 2.0 license. In our evaluation on the Mizan legal benchmark it scores above its base model on the legal mean and on contracts, caselaw and regulation. Against bge-m3 the picture is mixed: slightly below on the legal mean and on contracts, above on caselaw and regulation.

At a glance

Quick facts

#

Kenning Turkish Legal

As stated on the model card

View on Hugging Face
Parameters
0.3B
License
Apache 2.0
Release date
Parameters
0.3B (the base model has 271M)
Base model
Google EmbeddingGemma 2
Embedding dimension
Evaluated at 768 (truncate_dim=768); the card does not state the native dimension
Weights
F32 safetensors
Task
Turkish legal retrieval: contracts, case law, regulation
Languages
Turkish, English (tagged); multilingual results on 6 tasks
License
Apache 2.0
Release date
(the base model: October 6, 2026)

These figures are as stated on the model card. The card gives no memory requirement for Kenning, so none is listed here.

Use it well

What it is for

#

Intended use

#
  • Semantic search over Turkish legal documents: contracts, case law and regulation
  • First-stage retrieval in RAG pipelines
  • Candidate retrieval for legal research tools, with human review

Not meant for

#
  • General Turkish embedding work
  • Semantic text similarity (STS) as the main goal
  • Legal corpora from other languages or jurisdictions

Results should be checked by people. Kenning finds candidate passages; it does not give legal advice.

Want to see how this kind of search works, with a map you can move around? Read the post Finding the right clause.

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), measured at 768 dimensions: it rewards putting the right passages near the top of the first ten results. The striped bars are the base model, EmbeddingGemma 2. The solid bars are Kenning. The dotted bars are bge-m3, shown for comparison.

Mizan: Turkish legal retrieval

#

Mizan has three legal tasks (contracts, caselaw and regulation) and their mean.

Mizan, nDCG@10 at 768 dimensions: base model, Kenning and bge-m3

Legal mean+2.50
Contracts+4.54
Caselaw+0.84
Regulation+2.13

Score, from 0 to 100

Hover, tap or focus a row to read it.

  • Base model
  • Kenning
  • bge-m3

Bars run from 0 to 100. Changes are as the card states them.

Mizan, nDCG@10 at 768 dimensions: base model, Kenning and bge-m3
TaskBase modelKenning Turkish Legalbge-m3Change
Legal mean48.4450.9451.14+2.50
Contracts76.7381.2786.08+4.54
Caselaw29.6730.5129.30+0.84
Regulation38.9141.0438.04+2.13

Bars run from 0 to 100. Changes are as the card states them.

Kenning improves on its base model on every line: +2.50 on the legal mean, +4.54 on contracts, +0.84 on caselaw and +2.13 on regulation. Next to bge-m3 it is slightly below on the legal mean (50.94 against 51.14) and clearly below on contracts (81.27 against 86.08), and above on caselaw (30.51 against 29.30) and regulation (41.04 against 38.04).

So is Kenning better than bge-m3?

Not across the board. In our evaluation it wins on caselaw and regulation, and it trails on contracts and on the legal mean. Test both on your own documents before you decide.

Outside legal search

#

The changes are small either way: STSbTR −1.16, the Turkish 14-task mean +0.17, the English 10-task mean −0.25 and the multilingual 6-task mean +0.27.

General benchmarks, base model and Kenning

STSbTR−1.16
Turkish, 14-task mean+0.17
English, 10-task mean−0.25
Multilingual, 6-task mean+0.27

Score, from 0 to 100

Hover, tap or focus a row to read it.

  • Base model
  • Kenning

Bars run from 0 to 100. Changes are as the card states them.

General benchmarks, base model and Kenning
TaskBase modelKenning Turkish LegalChange
STSbTR78.8977.73−1.16
Turkish, 14-task mean66.5966.75+0.17
English, 10-task mean67.2366.98−0.25
Multilingual, 6-task mean75.9376.21+0.27

Bars run from 0 to 100. Changes are as the card states them.

Try it

How to run it

#

Install the pinned versions. The card notes that torchvision and pillow are needed to load EmbeddingGemma 2 models.

InstallShell
pip install "transformers==5.19.0" "sentence-transformers==6.1.0" torchvision pillow

Then search. Two details matter: queries get the prompt task: search result | query: , and documents go through encode_document. The card evaluated Kenning at 768 dimensions, so the example sets truncate_dim=768.

Search with KenningPython
from sentence_transformers import SentenceTransformer

model = SentenceTransformer("runelab-ai/kenning-turkish-legal-v1", truncate_dim=768)

query_prompt = "task: search result | query: "
queries = ["..."]  # your questions, in Turkish
documents = ["...", "..."]  # your legal text passages

query_embeddings = model.encode(queries, prompt=query_prompt)
document_embeddings = model.encode_document(documents)
scores = model.similarity(query_embeddings, document_embeddings)
print(scores)

Under the hood

How it was trained

#

Kenning was fine-tuned with contrastive learning on about 17k pairs, using CachedMultipleNegativesRanking inside a Matryoshka loss. The settings from the card:

Batch size
256
Precision
bf16
Learning rate
2e-5
Epochs
1
Released weights
averaged 50/50 with the base weights

The last line matters: the weights you download are an even blend of the fine-tuned weights and the base model’s weights.

The name

The name

#

A kenning is an Old Norse poetic device: it names a thing by a figurative compound, such as “whale-road” for the sea. An embedding does something alike for text: it restates what a passage means in a compressed form. Kenning is not a Hati or Sköll model. It is a separate RuneLab model that borrows its name from the same Norse world.