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
| 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} | |
| } | |
| ``` | |