Downloads · 30 days
78
38% of all-time downloads
bugBug04S/legal-embed-modernbert-v1
legal-embed-modernbert-v1 is a sentence similarity model from bugBug04S. Use it when you need a score for how close two texts are. It is set up for sentence-transformers. The card lists the license as apache-2.0.
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…
Downloads · 30 days
78
38% of all-time downloads
All-time downloads
206
Public
Parameters
149M
596 MB on disk
Likes
1
Public
Click a slice to open those files.
.safetensors596 MB · 99%
From the Hugging Face model README
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.
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.
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.
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.