Instructions to use keyvan-ai/Mankei-326M-Embedder with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use keyvan-ai/Mankei-326M-Embedder with Transformers:
# Load model directly from transformers import AutoTokenizer, AutoModel tokenizer = AutoTokenizer.from_pretrained("keyvan-ai/Mankei-326M-Embedder") model = AutoModel.from_pretrained("keyvan-ai/Mankei-326M-Embedder", device_map="auto") - Notebooks
- Google Colab
- Kaggle

Mankei-326M-Embedder
Deutscher Text-Embedder mit 326M Parametern, spezialisiert auf deutsches Retrieval. Kompakt und mit hohem Durchsatz (Klasse bge-/e5-large), damit er Millionen Chunks on-premise durchkaut. Für souveränes RAG: Ihre Texte verlassen das Haus nicht.
Benchmark — deutsches Retrieval (GermanDPR)
Ausgewertet auf 250 zurückgehaltenen GermanDPR-Fragen (je 1 relevante + 5 harte Negativ-Passagen; die Testfragen waren nicht im Training). Metriken: Trefferquote auf Rang 1 (Acc@1) und Mean Reciprocal Rank (MRR).
| Modell | Größe | Acc@1 | MRR |
|---|---|---|---|
| Mankei-326M-Embedder | 0,33 B | 96,4 % | 0,982 |
| multilingual-e5-small | 0,12 B | 80,4 % | 0,889 |
| multilingual-e5-base | 0,28 B | 79,2 % | 0,880 |
| multilingual-e5-large | 0,56 B | 79,2 % | 0,887 |
| Qwen3-Embedding-0.6B | 0,60 B | 78,8 % | 0,877 |
| paraphrase-multilingual-mpnet | 0,28 B | 72,8 % | 0,842 |
Auf deutschem In-Domain-Retrieval führt der spezialisierte 326M-Embedder vor deutlich größeren, generischen multilingualen Embeddern.
Verwendung
Wichtig: Queries mit
query:präfixen, Passagen mitpassage:(e5-Stil) — so wurde das Modell trainiert.
from transformers import AutoModel, AutoTokenizer
import torch, torch.nn.functional as F
tok = AutoTokenizer.from_pretrained("keyvan-ai/Mankei-326M-Embedder")
model = AutoModel.from_pretrained("keyvan-ai/Mankei-326M-Embedder", dtype=torch.bfloat16).eval()
def embed(texts):
enc = tok(texts, padding=True, truncation=True, max_length=256, return_tensors="pt")
with torch.no_grad(): h = model(**enc).last_hidden_state
idx = enc.attention_mask.sum(1) - 1 # Last-Token-Pooling
return F.normalize(h[torch.arange(h.size(0)), idx].float(), dim=-1)
q = embed(["query: Wie kündige ich meine Wohnung?"])
docs = embed(["passage: Die Kündigung des Mietvertrags muss schriftlich erfolgen ...",
"passage: Der Kaufvertrag kommt durch Angebot und Annahme zustande ..."])
scores = (docs @ q.T).squeeze() # Cosine-Similarity
Eigenschaften
- Deutsches In-Domain-Retrieval auf Spitzenniveau bei nur 326M Parametern.
- Hoher Durchsatz, CPU- bis GPU-tauglich — für Millionen Chunks on-premise.
- Für die Feinsortierung der Top-k dahinter: Mankei-326M-Reranker.
Training
Supervidiert auf GermanDPR (CC-BY): Query → relevante Passage mit harten Negativen, InfoNCE + In-Batch-Negatives, e5-Stil-Prefixes, Last-Token-Pooling (LoRA auf dem deutschen Mankei-Basismodell). Lizenzrein trainiert.
- Downloads last month
- -
