oddadmix/arabic-triplets-large
Viewer • Updated • 105k • 7
How to use Waqf-AI/arabic-splade-symmetric with sentence-transformers:
from sentence_transformers import SparseEncoder
model = SparseEncoder("Waqf-AI/arabic-splade-symmetric")
queries = ["Which planet is known as the Red Planet?"]
documents = [
"Venus is often called Earth's twin because of its similar size and proximity.",
"Mars, known for its reddish appearance, is often referred to as the Red Planet.",
"Jupiter, the largest planet in our solar system, has a prominent red spot.",
]
query_embeddings = model.encode_query(queries)
document_embeddings = model.encode_document(documents)
similarities = model.similarity(query_embeddings, document_embeddings)
print(similarities)Symmetric SPLADE: separate MLMTransformer + SpladePooling for both queries and documents.
Symmetric (Router: query=MLMTransformer+SpladePooling, doc=MLMTransformer+SpladePooling)
Base model: aubmindlab/bert-base-arabertv02
oddadmix/arabic-triplets-large (104K triplets, 92K unique passages)SpladeLoss(SparseMultipleNegativesRankingLoss, q_reg=5e-5, d_reg=3e-5)| Metric | Score |
|---|---|
| NDCG@10 | 0.311 |
| MRR@10 | 0.373 |
For reference: BM25 scores 0.3824 NDCG@10, 0.4483 MRR@10 on the same benchmark.
AraBERTv02 base (no Farasa), best SPLADE score
torchrunfrom sentence_transformers.sparse_encoder import SparseEncoder
model = SparseEncoder("Abdelkareem/arabic-splade-symmetric")
embeddings = model.encode([
"ما هي عاصمة مصر؟",
"القاهرة هي عاصمة مصر وأكبر مدنها.",
])
print(embeddings.shape)
# Decode top tokens
decoded = model.decode(embeddings, top_k=10)
for d in decoded:
print(d)
Base model
aubmindlab/bert-base-arabertv02