Sentence Similarity
sentence-transformers
ONNX
Safetensors
Morisyen
English
French
xlm-roberta
feature-extraction
mauritian-creole
kreol-morisien
matryoshka
mteb
Eval Results (legacy)
text-embeddings-inference
Instructions to use Singaraj/morisien-embed with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- sentence-transformers
How to use Singaraj/morisien-embed with sentence-transformers:
from sentence_transformers import SentenceTransformer model = SentenceTransformer("Singaraj/morisien-embed") sentences = [ "The weather is lovely today.", "It's so sunny outside!", "He drove to the stadium." ] embeddings = model.encode(sentences) similarities = model.similarity(embeddings, embeddings) print(similarities.shape) # [3, 3] - Notebooks
- Google Colab
- Kaggle
File size: 11,040 Bytes
6c1469f bd84088 6c1469f bd84088 93f9a6d 6c1469f bd84088 55c2406 bd84088 a6a1252 6c1469f bd84088 6c1469f bd84088 6c1469f bd84088 9ca09f9 6c1469f bd84088 6c1469f bd84088 6c1469f bd84088 6c1469f bd84088 6c1469f bd84088 6c1469f bd84088 9ca09f9 bd84088 75ad30f bd84088 75ad30f 4d69e01 bd84088 93f9a6d bd84088 3187caa bd84088 4d69e01 bd84088 fe1f289 bd84088 fe1f289 bd84088 4d69e01 75ad30f 9c7c1be bd84088 6c1469f 93f9a6d bd84088 6c1469f bd84088 93f9a6d 6c1469f | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 | ---
language:
- mfe
- en
- fr
license: mit
library_name: sentence-transformers
pipeline_tag: sentence-similarity
tags:
- sentence-transformers
- sentence-similarity
- feature-extraction
- mauritian-creole
- kreol-morisien
- matryoshka
- mteb
base_model: intfloat/multilingual-e5-base
datasets:
- prajdabre/KreolMorisienMT
- jhu-clsp/kreyol-mt
model-index:
- name: morisien-embed
results:
- task:
type: bitext-mining
name: Bitext Retrieval
dataset:
type: prajdabre/KreolMorisienMT
name: MorisienMT test (Creole→English)
metrics:
- type: ndcg_at_10
value: 0.9655
- type: accuracy_at_1
value: 0.9440
- task:
type: bitext-mining
name: Bitext Retrieval
dataset:
type: prajdabre/KreolMorisienMT
name: MorisienMT test (Creole→French)
metrics:
- type: ndcg_at_10
value: 0.9751
- type: accuracy_at_1
value: 0.9530
- task:
type: bitext-mining
name: Bitext Retrieval
dataset:
type: prajdabre/KreolMorisienMT
name: MorisienMT test (English→Creole)
metrics:
- type: ndcg_at_10
value: 0.9588
- type: accuracy_at_1
value: 0.9309
---
# morisien-embed
To our knowledge, the first dedicated text embedding model for **Mauritian Creole (Kreol Morisien,
`mfe`)** — the home language of roughly 90% of Mauritius (2022 census).
Fine-tuned from [multilingual-e5-base](https://huggingface.co/intfloat/multilingual-e5-base) on
effectively all publicly available Creole↔{English, French} parallel data, it outperforms every
general multilingual embedding model we evaluated — including
[LaBSE](https://huggingface.co/sentence-transformers/LaBSE), the strongest of them on this task — in
all three measured retrieval directions (Creole→English, Creole→French, English→Creole).
Use it for semantic search, retrieval, RAG, bitext mining, or clustering over Kreol Morisien text.
## Usage
```python
from sentence_transformers import SentenceTransformer
model = SentenceTransformer("Singaraj/morisien-embed")
creole = ["Mo pe al bazar aster.", "Bann zanfan pe zwe dan lakour."]
english = ["I am going to the market now.", "The children are playing in the yard."]
similarity = model.similarity(model.encode(creole), model.encode(english))
```
Trained with Matryoshka loss, so embeddings can be truncated for faster search at a small,
measured accuracy cost (ndcg@10 on the benchmark below: 0.9591 at 256 dims, 0.9531 at 128):
```python
model = SentenceTransformer("Singaraj/morisien-embed", truncate_dim=256)
```
No prompt/prefix is required.
## Results
Creole→English retrieval on the held-out [MorisienMT](https://huggingface.co/datasets/prajdabre/MorisienMT)
test split (1,000 queries, leak-free against training data — enforced in the data pipeline by exact
matching and by a punctuation-, case- and accent-insensitive check):
| Model | Params | ndcg@10 | accuracy@1 |
|---|---|---|---|
| paraphrase-multilingual-MiniLM-L12-v2 | 118M | 0.16 | 0.10 |
| BAAI/bge-m3 | 568M | 0.46 | 0.36 |
| intfloat/multilingual-e5-small | 118M | 0.54 | 0.42 |
| intfloat/multilingual-e5-base | 278M | 0.64 | 0.53 |
| intfloat/multilingual-e5-large | 560M | 0.73 | 0.65 |
| sentence-transformers/LaBSE | 470M | 0.94 | 0.91 |
| **morisien-embed** | **278M** | **0.9655** | **0.9440** |
Creole→French, same protocol:
| Model | ndcg@10 | accuracy@1 |
|---|---|---|
| sentence-transformers/LaBSE | 0.9475 | 0.9130 |
| **morisien-embed** | **0.9751** | **0.9530** |
English→Creole — the reversed direction over the same pairs (999 queries retrieving 1,000 Creole
passages, built with `scripts/build_benchmark.py --reverse`):
| Model | ndcg@10 | accuracy@1 |
|---|---|---|
| sentence-transformers/LaBSE | 0.9247 | 0.8789 |
| **morisien-embed** | **0.9588** | **0.9309** |
Generalization to an independent domain — [FLORES+](https://huggingface.co/datasets/openlanguagedata/flores_plus)
`mfe` devtest (1,012 professionally translated sentences from Wikinews, Wikijunior and Wikivoyage,
zero overlap with training data):
| Model | ndcg@10 | accuracy@1 |
|---|---|---|
| sentence-transformers/LaBSE | 0.9996 | 0.9990 |
| **morisien-embed** | **1.0000** | **1.0000** |
Both models sit at the ceiling of this benchmark — FLORES+ sentences are long and distinctive, so
1,012-way retrieval saturates. Read this as evidence of zero out-of-domain degradation, not as a
margin over LaBSE.
The contrastive stage was repeated with three random seeds over the same deterministically mined
negative set; Creole→English test ndcg@10 across seeds: **0.9653 ± 0.0002** (accuracy@1
**0.9433 ± 0.0006**). The released checkpoint is seed 42, designated before results were seen.
Every number in the tables above is reproducible from the
[training repository](https://github.com/LK-maker-007/morisien-embed) (Matryoshka figures via
`scripts/evaluate.py --truncate-dim`). The Haitian-proximity and case-sensitivity figures under
Limitations come from an internal adversarial audit of the released checkpoint.
## MTEB
The held-out MorisienMT test split is now a task in
[MTEB](https://github.com/embeddings-benchmark/mteb), `MorisienMTBitextMining` — the first Mauritian
Creole task in the benchmark. This model is registered in MTEB and its scores are on the
[leaderboard](https://huggingface.co/spaces/mteb/leaderboard).
Bitext-mining F1 across the four directional subsets:
| Model | mfe→eng | eng→mfe | mfe→fra | fra→mfe | avg |
|---|---|---|---|---|---|
| intfloat/multilingual-e5-small | 0.358 | 0.454 | 0.475 | 0.495 | 0.446 |
| sentence-transformers/LaBSE | 0.882 | 0.845 | 0.886 | 0.779 | 0.848 |
| **morisien-embed** | **0.927** | **0.909** | **0.939** | **0.924** | **0.925** |
This is bitext-mining F1, a different metric from the ndcg@10 retrieval numbers above. The model is
trained on the MorisienMT corpus this split is drawn from, so MTEB records the result as in-domain
(via `training_datasets`), not zero-shot.
## Training
- **Data:** 35,064 unique, leak-free Creole↔{English, French} pairs — effectively all publicly
available Mauritian Creole parallel text — merged from
[MorisienMT](https://huggingface.co/datasets/prajdabre/KreolMorisienMT) (MIT) and
[Kreyòl-MT](https://huggingface.co/datasets/jhu-clsp/kreyol-mt) (mixed licenses; used for training
only, not redistributed). Every MorisienMT dev/test sentence is removed from training by exact
matching and by a punctuation-, case- and accent-insensitive check.
- **Recipe:** hard-negative mining with positive-aware false-negative filtering
(`mine_hard_negatives`: 5 negatives/anchor, `range_min=10`, `relative_margin=0.05`). The margin
filter is strict: 24,100 of the 35,064 pairs survived with a full negative set, and the released
checkpoint's contrastive stage trained on those 24,100 tuples (the stage-1 mining model itself was
trained on all 35,064). Contrastive training uses `CachedMultipleNegativesRankingLoss` (batch 128,
767 in-batch negatives per anchor) wrapped in `MatryoshkaLoss` (dims 768/512/256/128/64). 3 epochs,
lr 2e-5, warmup 10%, fp16, seed 42, single T4 GPU (~30 min contrastive + ~11 min mining).
- **Base model:** [intfloat/multilingual-e5-base](https://huggingface.co/intfloat/multilingual-e5-base)
(278M parameters, MIT).
## Limitations
- **Not native-perfect.** Accuracy@1 around 0.944 means roughly one query in eighteen ranks
a wrong translation first. Strong, but below a human bilingual speaker.
- **Register skew.** The available Creole data over-represents religious text, politics, and
literature; highly informal or technical registers are less covered.
- **Small evaluation universe.** Retrieval is measured over ~1,000-passage corpora — standard for
bitext benchmarks, but absolute scores would be lower against web-scale corpora.
- **One distribution family.** MorisienMT and Kreyòl-MT overlap heavily, and the only fully
independent evaluation domain for `mfe` (FLORES+) is saturated at this corpus size — so the margin
over LaBSE is demonstrated in-domain only.
- **Haitian Creole proximity.** Like every multilingual embedder we tested, the model embeds Haitian
Creole close to Mauritian Creole. Measured on the 1,012 aligned mfe/hat/eng FLORES+ devtest
triplets (`scripts/probe_haitian.py`): with every same-meaning Haitian twin injected into the
corpus, mfe→eng accuracy@1 drops from 1.00 to 0.68 — and LaBSE resists this trap better (0.79).
Asked instead to tell the two creoles apart (is the English sentence closer to its Mauritian or
its Haitian translation?), the fine-tune picks Mauritian 709/1012 times vs LaBSE's 351/1012.
Wrong-meaning Haitian text is never confused; mixed mfe/hat corpora will still degrade retrieval.
- **Case sensitivity.** ALL-CAPS text embeds measurably differently from its lower-case form
(cosine ≈ 0.81 to the same sentence); caps-heavy text retrieves worse.
- **English-only regression.** Fine-tuning costs some pure-English semantic quality: STS-b test
Spearman ≈ 0.79 vs the base model's ≈ 0.85. Use a general model for English-only workloads; this
model is for Creole and Creole↔{English, French} work.
- **Long inputs are truncated** at the encoder's maximum sequence length; chunk long documents
before embedding.
- **Protocol note.** During recipe development the held-out test score was printed at the end of each
training run, so recipe selection had test visibility; an internal adversarial audit bounded the
resulting optimism at ≤ ~0.01 ndcg. The 3-seed replication was run after the recipe was frozen. Leak filtering
reserves the Creole side of every evaluation pair; English/French target texts are not reserved, and
an audit found 1 of 999 benchmark passages also occurring in training as the translation of a
different Creole sentence (dropping it moves ndcg@10 by less than 0.0001). The accent-insensitive
half of the leak check was added after the released run; it verifiably leaves the training set
byte-identical, since the sources were already disjoint at that level.
- **Orthographic variation.** Training data mixes pre- and post-2011 (Lortograf Kreol Morisien)
spellings; performance on older orthography is untested.
## Citation
If you use this model, please cite the accompanying report along with the data sources it builds on:
[MorisienMT](https://arxiv.org/abs/2206.02421) (Dabre & Sukhoo, 2022) and
[Kreyòl-MT](https://arxiv.org/abs/2405.05376) (Robinson et al., NAACL 2024).
```bibtex
@misc{morisien-embed,
author = {Singaraj B},
title = {morisien-embed: A Dedicated Text Embedding Model and Benchmark for Mauritian Creole (Kreol Morisien)},
year = {2026},
publisher = {Zenodo},
doi = {10.5281/zenodo.21877805},
url = {https://doi.org/10.5281/zenodo.21877805}
}
```
|