Instructions to use nau-ai/Nau-1.0 with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use nau-ai/Nau-1.0 with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-generation", model="nau-ai/Nau-1.0") messages = [ { "role": "user", "content": [ {"type": "image", "url": "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/p-blog/candy.JPG"}, {"type": "text", "text": "What animal is on the candy?"} ] }, ] pipe(text=messages)# pip install -U transformers accelerate # Load model directly from transformers import AutoProcessor, AutoModelForMultimodalLM processor = AutoProcessor.from_pretrained("nau-ai/Nau-1.0") model = AutoModelForMultimodalLM.from_pretrained("nau-ai/Nau-1.0", device_map="auto") messages = [ { "role": "user", "content": [ {"type": "image", "url": "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/p-blog/candy.JPG"}, {"type": "text", "text": "What animal is on the candy?"} ] }, ] inputs = processor.apply_chat_template( messages, add_generation_prompt=True, tokenize=True, return_dict=True, return_tensors="pt", ).to(model.device) outputs = model.generate(**inputs, max_new_tokens=256) print(processor.decode(outputs[0][inputs["input_ids"].shape[-1]:])) - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- llama.cpp
How to use nau-ai/Nau-1.0 with llama.cpp:
Install (macOS, Linux)
curl -LsSf https://llama.app/install.sh | sh # Start a local OpenAI-compatible server with a web UI: llama serve -hf nau-ai/Nau-1.0:Q4_K_M # Run inference directly in the terminal: llama cli -hf nau-ai/Nau-1.0:Q4_K_M
Install from WinGet (Windows)
winget install llama.cpp # Start a local OpenAI-compatible server with a web UI: llama serve -hf nau-ai/Nau-1.0:Q4_K_M # Run inference directly in the terminal: llama cli -hf nau-ai/Nau-1.0:Q4_K_M
Use pre-built binary
# Download pre-built binary from: # https://github.com/ggerganov/llama.cpp/releases # Start a local OpenAI-compatible server with a web UI: ./llama-server -hf nau-ai/Nau-1.0:Q4_K_M # Run inference directly in the terminal: ./llama-cli -hf nau-ai/Nau-1.0:Q4_K_M
Build from source code
git clone https://github.com/ggerganov/llama.cpp.git cd llama.cpp cmake -B build cmake --build build -j --target llama-server llama-cli # Start a local OpenAI-compatible server with a web UI: ./build/bin/llama-server -hf nau-ai/Nau-1.0:Q4_K_M # Run inference directly in the terminal: ./build/bin/llama-cli -hf nau-ai/Nau-1.0:Q4_K_M
Use Docker
docker model run hf.co/nau-ai/Nau-1.0:Q4_K_M
- Llama new
- LM Studio
- Jan
- vLLM
How to use nau-ai/Nau-1.0 with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "nau-ai/Nau-1.0" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "nau-ai/Nau-1.0", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker
docker model run hf.co/nau-ai/Nau-1.0:Q4_K_M
- SGLang
How to use nau-ai/Nau-1.0 with SGLang:
Install from pip and serve model
# Install SGLang from pip: pip install sglang # Start the SGLang server: python3 -m sglang.launch_server \ --model-path "nau-ai/Nau-1.0" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "nau-ai/Nau-1.0", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker images
docker run --gpus all \ --shm-size 32g \ -p 30000:30000 \ -v ~/.cache/huggingface:/root/.cache/huggingface \ --env "HF_TOKEN=<secret>" \ --ipc=host \ lmsysorg/sglang:latest \ python3 -m sglang.launch_server \ --model-path "nau-ai/Nau-1.0" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "nau-ai/Nau-1.0", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }' - Ollama
How to use nau-ai/Nau-1.0 with Ollama:
ollama run hf.co/nau-ai/Nau-1.0:Q4_K_M
- Unsloth Desktop
- Pi
How to use nau-ai/Nau-1.0 with Pi:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf nau-ai/Nau-1.0:Q4_K_M
Configure the model in Pi
# Install Pi: npm install -g @earendil-works/pi-coding-agent # Add to ~/.pi/agent/models.json: { "providers": { "llama-cpp": { "baseUrl": "http://localhost:8080/v1", "api": "openai-completions", "apiKey": "none", "models": [ { "id": "nau-ai/Nau-1.0:Q4_K_M" } ] } } }Run Pi
# Start Pi in your project directory: pi
- Docker Model Runner
How to use nau-ai/Nau-1.0 with Docker Model Runner:
docker model run hf.co/nau-ai/Nau-1.0:Q4_K_M
- Lemonade
How to use nau-ai/Nau-1.0 with Lemonade:
Pull the model
# Download Lemonade from https://lemonade-server.ai/ lemonade pull nau-ai/Nau-1.0:Q4_K_M
Run and chat with the model
lemonade run user.Nau-1.0-Q4_K_M
List all available models
lemonade list
- Hermes Agent
How to use nau-ai/Nau-1.0 with Hermes Agent:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf nau-ai/Nau-1.0:Q4_K_M
Configure Hermes
# Install Hermes: curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash hermes setup # Point Hermes at the local server: hermes config set model.provider custom hermes config set model.base_url http://127.0.0.1:8080/v1 hermes config set model.default nau-ai/Nau-1.0:Q4_K_M
Run Hermes
hermes
- Atomic Chat
- OpenClaw
How to use nau-ai/Nau-1.0 with OpenClaw:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf nau-ai/Nau-1.0:Q4_K_M
Configure OpenClaw
# Install OpenClaw: npm install -g openclaw@latest # Register the local server and set it as the default model: openclaw onboard --non-interactive --mode local \ --auth-choice custom-api-key \ --custom-base-url http://127.0.0.1:8080/v1 \ --custom-model-id "nau-ai/Nau-1.0:Q4_K_M" \ --custom-provider-id llama-cpp \ --custom-compatibility openai \ --custom-text-input \ --accept-risk \ --skip-health
Run OpenClaw
openclaw agent --local --agent main --message "Hello from Hugging Face"
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 is licensed under CC BY-NC-SA 4.0. Non-commercial use is free: credit Nau and share anything you build from it under the same licence. Commercial use, including running Nau 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 1.0 (ނައޫ)
Nau is an open language model for Dhivehi (ދިވެހި), written in Thaana. It writes, translates, summarises, fixes spelling and answers questions in Dhivehi, and it runs on an ordinary laptop without an internet connection.
It is a 5.4B-parameter fine-tune of Gemma 4 E2B, with a tokenizer extended for Thaana.
| Held-out test | Nau 1.0 | Gemini 3.8 Flash | Gemma 4 E2B (base) |
|---|---|---|---|
| Translation, both directions (592 items, chrF) | 0.696 | 0.677 | 0.154 |
| · Dhivehi → English | 0.709 | 0.681 | 0.280 |
| · English → Dhivehi | 0.683 | 0.672 | 0.028 |
| Dhivehi skills, mean of 6 (461 items) | 0.481 | 0.408 | — |
| · Filling in a missing word (cloze) | 0.157 | 0.435 | — |
| · Continuing a text | 0.218 | 0.168 | — |
| · Picking the natural sentence (A/B) | 0.972 | 1.000 | — |
| · Fixing spelling mistakes (exact) | 0.380 | 0.204 | — |
| · News into English (chrF) | 0.396 | 0.524 | — |
| · Romanised Dhivehi → Thaana | 0.765 | 0.118 | — |
| Spelling fixes needed per 1,000 words (Dhivehi Academy rules; lower is better) | 0.0 | 59.9 | — |
| Declines to invent live or private facts (16 questions) | 16/16 | 15/16 | — |
| Answers simple general-knowledge questions correctly (8) | 4/8 | 8/8 | — |
| Writes Dhivehi when the instruction is in English (15) | 11/15 | 15/15 | — |
All tests are held out from training. Both models were run at temperature 0. Human Dhivehi news text needs 16.6 spelling fixes per 1,000 words by the same rules; Nau was trained on text normalised to those rules.
Use it
import torch
from transformers import AutoTokenizer, AutoModelForCausalLM
tok = AutoTokenizer.from_pretrained("nau-ai/Nau-1.0")
model = AutoModelForCausalLM.from_pretrained("nau-ai/Nau-1.0", dtype=torch.bfloat16)
msgs = [{"role": "user", "content": "ރާއްޖޭގެ ވެރިރަށަކީ ކޮބާ؟"}]
ids = tok.apply_chat_template(msgs, add_generation_prompt=True, return_tensors="pt", return_dict=True)
out = model.generate(**ids, max_new_tokens=200, do_sample=False, repetition_penalty=1.1)
print(tok.decode(out[0][ids["input_ids"].shape[1]:], skip_special_tokens=True))
Greedy decoding with a repetition penalty of about 1.1 gives the most reliable Dhivehi; it is what the results above use. The weights are 10.9 GB in bf16.
Try it free on Colab
runs Nau on Google Colab's free T4 GPU, with a chat box. Accept the licence on this page first, and add a Hugging Face token as the Colab secret
HF_TOKEN (or log in when asked). Then set Runtime → Change runtime type → T4 GPU, then Run all. If the button does not open it, download nau_colab.ipynb and use File → Upload notebook in Colab.
GGUF (llama.cpp, LM Studio, Ollama)
| File | Size | Notes |
|---|---|---|
Nau-1.0-Q8_0.gguf |
5.3 GB | Closest to the full model |
Nau-1.0-Q4_K_M.gguf |
3.7 GB | Faster and smaller; about 16–18 tokens per second on an Intel i7-12700 CPU with 8 threads |
llama-server -hf nau-ai/Nau-1.0:Q4_K_M
For the best Dhivehi, tokenize prompts with the Hugging Face tokenizer and send llama.cpp the token ids (the prompt field of /completion accepts a list of ids). llama.cpp's own tokenizer splits some Thaana words into different pieces than Nau was trained on. Plain text prompts still work, slightly less well.
Tip: write the instruction in Dhivehi when you want a Dhivehi answer. Given an English instruction such as "Write a Dhivehi email…", Nau sometimes answers in English.
What it is for
- Writing and editing Dhivehi: notices, letters, news-style text, summaries.
- Translating between Dhivehi and English.
- Correcting Dhivehi spelling toward the Dhivehi Academy standard.
- Converting romanised Dhivehi ("aharen mi hafthaa…") into Thaana.
- Answering questions about a text you give it.
Limitations
- General knowledge is thin. It can state wrong facts fluently. In testing it said the Maldives has 10 atolls and confused National Day with Independence Day. Check facts, and give it the source text when accuracy matters.
- Legal and official detail. Asked about laws without the text in front of it, it can invent article numbers. With the law text in the prompt, an earlier version answered 99% of questions on 22 held-out laws correctly.
- English instructions sometimes get English answers (see above).
- Long answers can repeat themselves; the repetition penalty helps.
- It has no access to the internet, the date or live information, and says so when asked about prices, weather, results or private details.
How it was made
- Tokenizer. Gemma's 262,144-token vocabulary has few Thaana pieces, so Dhivehi took about 5.6 tokens per word. 32,000 Thaana tokens were added (294,144 total), bringing it to about 1.6 tokens per word. Only the new embedding rows were trained at first.
- Continued pretraining on about 700M tokens in two rounds, mostly Dhivehi news from 20+ sites, plus fiction, religious writing, laws and the Government Gazette, mixed with English to keep the model's English.
- Instruction tuning on about 430k examples built from human Dhivehi text and public Dhivehi–English parallel datasets: translation, summaries, headlines, spelling correction, romanisation, A/B fluency choices, questions about laws, and dictionary tasks from Radheef.
- Identity and uncertainty. A short second fine-tune taught it its name and to say when it cannot know something (the time, prices, private details). Three variants were trained and averaged with the previous model to undo small losses from the extra training.
Every test set was removed from the training data before training (5,000 source documents and all test sentences).
Identity
Asked who it is, it answers that it is Nau, a Dhivehi AI assistant. In Thaana the name is written ނައޫ. Nau 1.0 writes its own name as ނައު in Dhivehi answers; this will be corrected in the next version.
Licence and attribution
CC BY-NC-SA 4.0, with a commercial licence on request (from 6 October 2026; see LICENSE and NOTICE).
- Non-commercial use (research, teaching, personal and public-interest projects) is free. Credit Nau, and share anything you build from it (fine-tunes, merges, quantisations, distilled models) under the same licence.
- Commercial use, including running Nau inside a paid product or service, needs a commercial licence from the Nau authors. Its terms include publishing the improvements you make to Nau. To ask for one, open a discussion titled "Commercial licence" on this repository.
Access requires accepting these terms in the form at the top of this page.
Copies downloaded before 6 October 2026 were released under Apache 2.0 and remain under it.
Nau is a derivative of Gemma 4 E2B by Google DeepMind, released under Apache 2.0 (copy in LICENSE-APACHE-2.0). These terms cover the Nau authors' changes, not Gemma 4 E2B itself.
Released training data and test sets (web-crawled text; the public alakxender datasets are linked rather than copied): nau-ai/dhivehi-corpus, nau-ai/nau-sft, nau-ai/dhivehi-eval.
Questions, problems or takedown requests: open a discussion on this repository.
- Downloads last month
- 684
Model tree for nau-ai/Nau-1.0
Base model
google/gemma-4-E2B