NAM-L1 (preview) — a small Vietnamese language model that writes like a person
Tiếng Việt: NAM là mô hình ngôn ngữ nhỏ của NAIDot, làm một việc thật tốt: biến ghi âm, tin nhắn vội, văn bản dài dòng thành tiếng Việt gọn gàng, đúng chính tả, đọc như người viết, giữ đủ ý. NAM không thể viết chữ Hán hay chữ nước ngoài khác, và chạy được trên máy cá nhân. Bản dùng thử trực tuyến sắp ra mắt.
NAM is a small Vietnamese language model by NAIDot. It is built for one thing first: turning raw Vietnamese text — a voice note, a transcript, a hurried message, a padded notice — into text that reads as written by a person: fluent, correct, shorter, with the meaning kept. It also chats and writes in Vietnamese.
Three properties, each measured:
- It cannot write Chinese, Japanese, Korean, Cyrillic, Arabic, Thai or Indic text, by construction rather than by training. Small models usually drift into Chinese now and then; NAM cannot.
- It writes plainly. On 240 chat prompts, about one reply in eight carries a recognisable machine-writing habit (a stock "Chào bạn", bold type, a list nobody asked for); for typical small models it is most replies. The real test — native readers unable to tell its text from a person's — is not done yet.
- It is small and reads long documents. 2 GB at 8-bit, about 4 GB of GPU memory with a 66,000-token context; it retrieved a fact correctly at every position up to 61,000 tokens.
Results
Objective sets (accuracy %, chance 25; ± one standard error), the trained model against its own untrained base:
| model | Belebele vi | Belebele en | penalty | MMLU vi | MMLU en | penalty | errors |
|---|---|---|---|---|---|---|---|
| NAM-L1-preview | 75.7 ± 1.4 | 85.1 ± 1.2 | +9.4 | 43.5 ± 1.8 | 58.5 ± 1.7 | +15.0 | 0 |
| untrained starting point | 71.5 ± 1.5 | 84.1 ± 1.2 | +12.6 | 44.0 ± 1.8 | 55.9 ± 1.8 | +11.9 | 0 |
Chat set, mechanical layer (share of 240 prompts whose reply breaks no rule):
| model | pass % | cut off | other script | not Vietnamese | loop | words | sentences | lines | bullets | numbered | line_words | include | dates | include_any | exclude | missing |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| NAM-L1-preview | 85.0 ± 2.3 | 2 | 0 | 0 | 2 | 6 | 2 | 1 | 2 | 1 | 0 | 11 | 1 | 9 | 10 | 0 |
| untrained starting point | 76.7 ± 2.7 | 23 | 0 | 1 | 4 | 1 | 2 | 0 | 1 | 1 | 5 | 13 | 0 | 2 | 13 | 0 |
Polish (word error rate against the human original, lower is better; the raw text itself is the first row):
| model | asr | bare | chat | no_marks | speech | typos | wordy | all | exact % | other script |
|---|---|---|---|---|---|---|---|---|---|---|
| raw text | 29.9 | 88.5 | 10.8 | 76.4 | 57.6 | 8.8 | 31.1 | 43.2 | 0.0 | |
| NAM-L1-preview | 8.6 | 24.3 | 1.4 | 10.1 | 14.2 | 2.2 | 5.5 | 9.6 | 18.9 ± 2.3 | 0 |
| NAM-L1-preview, shortening kinds: length 73% of the raw text (the human original is 72%); numbers and names kept 89.6%; numbers invented 0 |
Polish, hand-written real texts (facts kept, length of the rewrite as a share of the raw text):
| model | facts kept % | length % | texts with every fact | not clean Vietnamese | other script | longer than the raw text |
|---|---|---|---|---|---|---|
| NAM-L1-preview | 92.4 | 70 | 10 of 15 | 0 | 0 | 1 |
What the numbers do not say: whether the text reads as human (one model-judge read so far, no native reader panel yet); real speech-recognition errors (the polish benchmark damages clean text by rule); long-document understanding (the context test is retrieval of one fact). All results are one run at temperature 0; run-to-run noise on the objective sets is 0.2 points.
Intended use
- Polish: raw Vietnamese text in, clean fluent Vietnamese out. Ask it in Vietnamese, for example: "Viết lại đoạn sau thành văn bản ngắn gọn, tự nhiên, đúng chính tả, giữ đủ ý."
- Everyday Vietnamese chat and writing: messages, e-mails, short explanations, administrative documents, summaries.
Not for: facts you cannot check (it is a 2B model and invents details like any model its size), other languages (it reads Vietnamese and English only; text in other scripts reaches it as noise, and it will say so), hard reasoning, maths and code.
Try it
A live demo is coming soon. To see NAM on your own texts now, contact NAIDot at https://naidot.com.
Access
NAM's weights are not public. For API access, on-premise deployment or a commercial licence, contact NAIDot at https://naidot.com.
How it was built
- NAIDot's own base model, a small text-only model with NAIDot's structure and a Vietnamese-and-English vocabulary that cannot write other scripts.
- Trained on NAIDot's own data, most of it text written by people. No hosted API was used as a teacher.
- Everything is measured before it is claimed: an objective suite (Belebele and Global-MMLU in Vietnamese and English), a chat set with exact mechanical checks, two polish sets scored word by word against human originals, a long-context check.
Limits and honesty
- It says it is an AI when asked, and it is not built to pass as a person: writing like a person is a style it offers, not a disguise.
- A few rare characters of other scripts can still appear (seen once in testing); the guarantee covers the scripts named above.
- It is a small model: on general knowledge and long advice it is not a substitute for a large one. Polish, messages, summaries and everyday Vietnamese are where it is strongest.
Citation
NAIDot, NAM-L1: a small Vietnamese language model that writes like a person, 2026. https://huggingface.co/NAIDot/NAM-L1