morisien-embed / README.md
Singaraj's picture
Update README.md
93f9a6d verified
|
Raw
History Blame Contribute Delete
11 kB
---
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}
}
```