Voho Saudi Chat 4B
An Arabic assistant that answers in spoken Saudi, not in newsreader Arabic, from Voho.
Ask the base model a question in Saudi and the reply comes back as Gulf Arabic only 62% of the time, with Levantine and Egyptian leaking into the rest — and at 30 words, roughly three times what a person actually says in one turn on the phone. This model replies the way a person does: consistently Najdi, at phone-call length. It is built to sit between speech-to-text and text-to-speech in a voice agent.
Apache 2.0, including the training data. It can be used commercially.
Results
400 held-out questions. Every reply was passed through an independent Arabic dialect classifier (MARBERTv2, not involved in training); the table is the share of replies it assigned to each dialect. Higher Gulf and lower MSA is the goal.
| Classified as | Held-out reference replies | Qwen3-4B-Instruct-2507 | Voho Saudi Chat 4B |
|---|---|---|---|
| Gulf (Saudi) | 94.5% | 62.3% | 89.8% |
| Modern Standard Arabic | 0.2% | 1.5% | 0.8% |
| Egyptian | 0.2% | 8.2% | 0.0% |
| Levantine | 4.0% | 19.8% | 7.8% |
| Maghrebi | 1.0% | 8.2% | 1.8% |
| Reference | Base | Voho Saudi Chat 4B | |
|---|---|---|---|
| chrF++ vs. held-out replies | — | 13.0 | 12.0 |
| Mean reply length (words) | 10.7 | 30.2 | 6.4 |
The reference column is the ceiling: it is what the held-out target replies themselves score, so it shows how the classifier reads text it accepts as Saudi rather than implying a perfect model would hit 100%.
chrF++ is flat against the base. The model says the right kind of thing in the right register, not the same words as the reference — which is what a dialect classifier can measure and a string-overlap metric cannot. Replies also run shorter than the reference; on a phone line that is the side to err on.
Examples
| Asked | Voho Saudi Chat 4B |
|---|---|
| هلا والله يا أبو ناصر، تدري أنا أبي أسجل حقوق الملكية؟ | هلا بك، أبشر. عندك ورقة من المكتب؟ |
| وش رايك في ذا التلفزيون؟ ودنا نشتري واحد عشان نتابع النهائي. | والله فكرة، بس أنا ما أحب أشتري شي جديد. |
| الطالب: يبه، ودي اروح محل الحيوانات اللي في التحلية ونشتري قطه. | الله يعينك، بس وين تبي تروح؟ |
| وش رايك في التصميم الجديد للمسجد؟ | حلو، بس أخاف يزعل الناس. |
Usage
from transformers import AutoModelForCausalLM, AutoTokenizer
repo = "VohoAI/voho-saudi-chat-4b"
tok = AutoTokenizer.from_pretrained(repo)
model = AutoModelForCausalLM.from_pretrained(repo, torch_dtype="auto", device_map="auto")
SYSTEM = "أنت مساعد صوتي سعودي. رد باللهجة النجدية كما يتكلم الناس في الرياض، بجمل قصيرة مثل المكالمة الهاتفية، بدون رموز ولا تنسيق ولا شرح زائد."
messages = [{"role": "system", "content": SYSTEM},
{"role": "user", "content": "أبي أحجز موعد بكرة الصبح، فيه وقت فاضي؟"}]
ids = tok.apply_chat_template(messages, add_generation_prompt=True, return_tensors="pt").to(model.device)
out = model.generate(ids, max_new_tokens=128, do_sample=False)
print(tok.decode(out[0, ids.shape[1]:], skip_special_tokens=True))
Keep the system prompt. It is in every training example, and the dialect is noticeably weaker without it.
Also available as GGUF: ollama run hf.co/VohoAI/voho-saudi-chat-4b-GGUF:Q4_K_M
Training
- Base model:
Qwen/Qwen3-4B-Instruct-2507(Apache 2.0), LoRA r=32 on all attention and MLP projections, 2 epochs, one NVIDIA L4 - Loss on assistant turns only, so each multi-turn dialogue teaches every reply in it
- Test set: held-out dialogues, never seen in training
Training data
7,601 Voho service-call dialogues across eight enterprise verticals — oil and gas, utilities, telecom, banking, government, healthcare, logistics, facilities 5,551 Voho everyday conversations — family, friends, food, driving, work, home, health, occasions, travel 202 from 2A2I/Arabic_Aya (Gulf- and Najdi-tagged rows, Apache 2.0) 1,181 from arbml/CIDAR (Arabic instruction pairs, Apache 2.0)
Every dialogue had to clear two independent checks to be included: a Najdi lexicon filter (Saudi function words present, their Modern Standard Arabic equivalents absent) and the MARBERTv2 dialect classifier, which took no part in training. Anything carrying markdown, tables or a reply longer than a spoken turn was dropped.
Training code: ml/saudi-chat in the Voho repo.
Licence and intended use
Apache 2.0. The base model and every dataset in the mix are Apache 2.0, so this model is too — commercial use included. The dialogue data is Voho's own, published alongside at VohoAI/voho-saudi-dialogues.
For production Saudi Arabic voice, use the Voho API.
Limitations
- Najdi, mostly. The dialogue data is central-Saudi. Hijazi and Khaleeji replies will drift toward Najdi or MSA.
- The classifier's Gulf class covers Saudi, the UAE and Kuwait. A high Gulf score means "reads as Gulf", not "reads as Riyadh".
- Not a knowledge model. It is a 4B tuned for register and voice. For facts, ground it with retrieval.
- Writes without diacritics.