legal-embed-modernbert-v1
Embedding model for legal question-answer retrieval: given a plain-English legal question, it finds the most relevant answer or passage. Fine-tuned from nomic-ai/modernbert-embed-base on 16K question/answer pairs from Law StackExchange.
Good fit for: legal Q&A search, FAQ retrieval, RAG over legal forums or help-desk content. Supports Matryoshka embeddings — truncate vectors to 512/256/128/64 dims for faster search with modest quality loss.
Evaluation
Scored on 1,000 held-out Law StackExchange Q&A pairs (never seen in training), retrieval among 1,000 candidates:
| Model | Accuracy@1 | Recall@10 | MRR |
|---|---|---|---|
| legal-embed-modernbert-v1 | 0.893 | 0.994 | 0.931 |
| nomic-ai/modernbert-embed-base | 0.811 | 0.955 | 0.863 |
Known limitation: on out-of-domain contract-clause retrieval (LegalBench Consumer Contracts QA) this model scores below its base (Accuracy@1 0.556 vs 0.652). It is specialized for conversational legal Q&A, not contract clause search. Use the base model — or wait for v2 — for contract-heavy workloads.
Usage
from sentence_transformers import SentenceTransformer
model = SentenceTransformer("bugBug04S/legal-embed-modernbert-v1")
query = "search_query: Can my landlord evict me without notice?"
docs = [
"search_document: A landlord must generally provide written notice and obtain a court order before eviction...",
"search_document: Copyright protection begins when a work is fixed in a tangible medium...",
]
q = model.encode(query, normalize_embeddings=True)
d = model.encode(docs, normalize_embeddings=True)
print((q @ d.T)) # higher = more relevant
Important: prepend search_query: to questions and search_document: to passages — the model was trained with these prefixes.
Training
- Base: nomic-ai/modernbert-embed-base (149M params)
- Data: 16,068 (question, top answer) pairs, Law StackExchange (CC-BY-SA 4.0)
- Loss: MatryoshkaLoss(CachedMultipleNegativesRankingLoss), dims 768/512/256/128/64
- 1 epoch, batch 64, lr 1e-5, fp16, max_seq_length 256, single T4 GPU
Disclaimer
Embeddings model for search/retrieval only — it does not generate legal advice. Outputs should not be relied on as a substitute for a qualified lawyer.