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.
Downloads last month
-
Safetensors
Model size
4B params
Tensor type
BF16
·
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for VohoAI/voho-saudi-chat-4b

Finetuned
(2162)
this model
Quantizations
1 model

Datasets used to train VohoAI/voho-saudi-chat-4b