CoolFace
Modelpublic

rekabytes/Aranda-v1

sourceHugging Facemitupdated 2mo agoView on Hugging Face
1likes7downloads
Model Card

Aranda-v1

Aranda-v1 is a sentence embedding model specialized for Malaysian text retrieval, including Bahasa Malaysia, Manglish (Malaysian English code-switching), and cross-lingual BM↔English matching. It outperforms all tested baselines on overall retrieval Recall@1, Recall@5, Recall@10, and MRR, and is the best model on every individual language category (BM, Manglish, English, Cross-lingual).

Training

Two-phase contrastive curriculum:

Phase 1 — Breadth: MultipleNegativesRankingLoss on 1M Malaysian positive pairs (paraphrases, social media, news, QA). LR=1e-5, 1000 steps.

Phase 2 — Discrimination: Fine-tuned on 58K diverse hard-negative triplets (Lowyat, Twitter, Facebook, formal BM QA, English anchors, cross-lingual pairs) with explicit mined hard negatives. LR=2e-6, 2000 steps.

Base model: paraphrase-multilingual-mpnet-base-v2

Evaluation

Tested on 4,149 retrieval queries (BM, Manglish, English, Cross-lingual) with ~25 candidates per query, plus 4 additional eval sets (heuristic similarity, mined holdout, Mesolitica reranker, English STS).

Overall Retrieval (4,149 queries)

ModelRecall@1Recall@5Recall@10MRRPrecision@10
mpnet-base0.86310.99370.99730.92000.1785
multilingual-e5-base0.84700.99400.99880.90910.1792
labse0.80090.98820.99860.88210.1780
distilbert-multilingual-quora0.79730.96360.98580.87190.1728
Aranda-v10.88910.99610.99980.93640.1788

Per-Language Recall@1

ModelBMManglishEnglishCross-lingual
mpnet-base0.82000.89880.85770.8267
multilingual-e5-base0.79380.91040.86580.6167
labse0.73540.89930.68720.7300
distilbert-multilingual-quora0.75840.83200.78660.7633
Aranda-v10.84310.92900.87920.8500

Heuristic Similarity 2K (per-language Spearman)

ModelOverallBMManglish
mpnet-base0.47990.55350.3937
multilingual-e5-base0.35820.27140.4680
labse0.32490.28660.4397
distilbert-multilingual-quora0.45850.48570.4682
Aranda-v10.45320.49150.4536

Mined Holdout 2K (positive vs negative margins)

Modelpos>neg %mean marginmean pos simmean neg sim
mpnet-base98.1%0.48800.65760.1696
multilingual-e5-base98.15%0.11290.88050.7676
labse98.3%0.41930.59600.1768
distilbert-multilingual-quora94.6%0.10410.93360.8295
Aranda-v198.2%0.43180.73340.3016

Mesolitica Reranker Test (NDCG@10)

ModelOverall NDCG@10
mpnet-base0.4699
multilingual-e5-base0.4705
labse0.4695
distilbert-multilingual-quora0.4690
Aranda-v10.4706

English STS (mteb/stsbenchmark-sts)

ModelSpearman
mpnet-base0.8682
multilingual-e5-base0.8420
labse0.7225
distilbert-multilingual-quora0.7866
Aranda-v10.8369

Usage

python
from sentence_transformers import SentenceTransformer

model = SentenceTransformer("rekabytes/Aranda-v1")

# Encode texts
embeddings = model.encode([
    "macam mana nak renew lesen memandu",
    "how to renew driving license",
    "saya nak makan nasi lemak"
], normalize_embeddings=True)

# Cosine similarity
similarities = embeddings @ embeddings.T
print(similarities)

With RAG / vector search

python
# Encode your document corpus (do this once)
doc_embeddings = model.encode(documents, normalize_embeddings=True)

# At query time
query_embedding = model.encode([query], normalize_embeddings=True)
scores = query_embedding @ doc_embeddings.T
top_k = scores.argsort()[0][-5:][::-1]

Intended Use

  • RAG context retrieval for Malaysian applications
  • Semantic search over BM/Manglish/English document corpora
  • Cross-lingual matching (BM ↔ English)
  • Dense retrieval in hybrid search pipelines (paired with BM25)

Limitations

  • English STS performance is below the base mpnet model (0.8369 vs 0.8682) — the model specialized for Malaysian text
  • Not a reranker — use a cross-encoder for second-stage reranking
  • Tested on Malaysian web data; performance may vary on other Southeast Asian languages

Model Details

  • Architecture: XLM-RoBERTa (base)
  • Embedding dimension: 768
  • Max sequence length: 128
  • Pooling: Mean
  • Normalization: L2