Instructions to use nau-ai/Nau-Embed-1.0 with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- sentence-transformers
How to use nau-ai/Nau-Embed-1.0 with sentence-transformers:
from sentence_transformers import SentenceTransformer model = SentenceTransformer("nau-ai/Nau-Embed-1.0") 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
You need to agree to share your Hugging Face information to access this model
This repository is publicly accessible, but you have to accept the conditions to access its files and content.
Nau Embed is licensed under CC BY-NC-SA 4.0 and is also subject to Google's Gemma Terms of Use, because it is built on EmbeddingGemma. Non-commercial use is free: credit Nau and share anything you build from it under the same licence. Commercial use, including running it inside a paid product or service, needs a separate commercial licence from the Nau authors; ask by opening a discussion titled "Commercial licence" on this repository.
Log in or Sign Up to review the conditions and access this model content.
Nau Embed 1.0 (ނައޫ)
A Dhivehi text-embedding model for search and retrieval. It turns Dhivehi (Thaana), romanised Dhivehi and English text into 768-number vectors, so a question in any of the three finds the right Dhivehi passage.
It is a fine-tune of Google's EmbeddingGemma-300m: 300M parameters, small enough to embed an archive on an ordinary CPU.
Results
NTREX English↔Dhivehi bitext mining (MMTEB task NTREXBitextMining, eng_Latn-div_Thaa, 1,997 sentence pairs, macro F1, same metric as MMTEB). NTREX was never used for training.
| Model | Size | en→dv | dv→en |
|---|---|---|---|
| Nau Embed 1.0 | 300M | 0.979 | 0.980 |
| gemini-embedding-001 | API | 0.952 | 0.971 |
| EmbeddingGemma-300m (base) | 300M | 0.386 | 0.394 |
| Qwen3-Embedding 0.6B–8B (MMTEB) | 0.6–8B | 0.09–0.16 | |
| multilingual-e5-large-instruct (MMTEB) | 560M | 0.078 | 0.113 |
| bge-m3 (MMTEB) | 568M | 0.025 | 0.068 |
KaLM-Embedding-Gemma3-12B reports 0.984 / 0.987 on MMTEB, slightly higher, at 40 times the size.
Dhivehi retrieval (held-out dev set: 6,751 queries against one pool of 12,378 Dhivehi passages; Recall@10, the share of queries whose correct passage is in the top 10).
| Query type | Nau Embed 1.0 | gemini-embedding-001 | Base |
|---|---|---|---|
| English question → Dhivehi passage | 0.997 | 0.997 | 0.584 |
| English keyword search → Dhivehi passage | 0.990 | 0.991 | 0.511 |
| Romanised Dhivehi headline → article | 0.951 | 0.762 | 0.394 |
| Thaana headline → article | 0.920 | 0.893 | 0.715 |
| Dhivehi question → answer | 0.750 | 0.601 | 0.365 |
| Word → dictionary definition | 0.632 | 0.549 | 0.357 |
The dev set comes from the same kinds of sources as the training data (held out by document).
English-only retrieval dropped from the base model (NanoBEIR mean nDCG@10: 0.545 vs 0.614). Use it for Dhivehi and cross-lingual search; for English documents with English queries, the base model is better.
Usage
from sentence_transformers import SentenceTransformer
model = SentenceTransformer("nau-ai/Nau-Embed-1.0") # gated: log in and accept the licence first
docs = ["ރައްޔިތުންގެ މަޖިލީހުގެ ނައިބު ރައީސްކަމަށް ހޮވުނީ ...", "..."]
doc_vecs = model.encode(docs, prompt_name="document") # "title: none | text: "
q_vecs = model.encode(["Who was elected deputy speaker?",
"majlis ge naibu raees hovun"], prompt_name="query") # "task: search result | query: "
scores = model.similarity(q_vecs, doc_vecs)
- Always encode questions with
prompt_name="query"and passages withprompt_name="document". Leaving the prompts out lowers accuracy. - Query and document vectors must come from this same model. They are not comparable with vectors from any other model, including gemini-embedding-001.
- To match English and Dhivehi sentences one-to-one (translation pairs), use
prompt_name="BitextMining"on both sides. - Vectors can be truncated to 512, 256 or 128 numbers (Matryoshka training). Re-normalise after truncating, and truncate queries and documents the same way.
- Use float32 or bfloat16, not float16 (EmbeddingGemma does not support float16).
- Speed: about 2,000 characters of Thaana per second on a 12-thread desktop CPU.
Training
Contrastive fine-tuning with in-batch and mined hard negatives, inside a Matryoshka loss (768/512/256/128), for one epoch over 772k pairs. The result was then merged with the base model (0.8 × fine-tuned + 0.2 × base) to recover English retrieval.
| Pairs | Count | Query side | Passage side |
|---|---|---|---|
| English question / keyword search → passage | 195k | Gemini-written English | human Dhivehi |
| English ↔ Dhivehi sentences | 169k | English: Gemini translations and checked parallel data | human Dhivehi |
| Romanised headline → article | 120k | human (news sites publish romanised headlines) | human Dhivehi |
| Thaana headline → article | 80k | human | human Dhivehi |
| Romanised ↔ Thaana sentences | 60k | human | human Dhivehi |
| English sentence → Dhivehi sentence (search prompts) | 50k | as above | human Dhivehi |
| Word → definition | 30k | Radheef dictionary | Radheef dictionary |
| Dhivehi question → answer | 8.6k | alakxender/dhivehi-qa-dataset | |
| English question → answer (to keep English working) | 60k | sentence-transformers/gooaq |
Every Dhivehi text in training is human-written; machine-written text appears only on the English side. Pairs whose Dhivehi was under 90% dictionary words were dropped. All evaluation documents and sentences, and all of NTREX, were removed before training.
Licence and attribution
CC BY-NC-SA 4.0, with a commercial licence on request, and subject to the Gemma Terms of Use (see LICENSE and NOTICE).
- Non-commercial use (research, teaching, personal and public-interest projects) is free. Credit Nau Embed, and share anything you build from it (fine-tunes, merges, quantisations, distilled models) under the same licence.
- Commercial use, including running it inside a paid product or service, needs a commercial licence from the Nau authors. Its terms include publishing the improvements you make. To ask for one, open a discussion titled "Commercial licence" on this repository.
- Because it is built on EmbeddingGemma, use is also governed by Google's Gemma Terms of Use and Prohibited Use Policy. These apply to everyone, including commercial licensees.
Access requires accepting these terms in the form at the top of this page.
Related: Nau 1.0, the Dhivehi chat model.
Questions or problems: open a discussion on this repository.
- Downloads last month
- 2
Model tree for nau-ai/Nau-Embed-1.0
Base model
google/embeddinggemma-300m