Instructions to use oddadmix/Nawah-50M-Egyptian-18y-Persona with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use oddadmix/Nawah-50M-Egyptian-18y-Persona with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-generation", model="oddadmix/Nawah-50M-Egyptian-18y-Persona")# Load model directly from transformers import AutoTokenizer, AutoModelForCausalLM tokenizer = AutoTokenizer.from_pretrained("oddadmix/Nawah-50M-Egyptian-18y-Persona") model = AutoModelForCausalLM.from_pretrained("oddadmix/Nawah-50M-Egyptian-18y-Persona", device_map="auto") - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- vLLM
How to use oddadmix/Nawah-50M-Egyptian-18y-Persona with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "oddadmix/Nawah-50M-Egyptian-18y-Persona" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "oddadmix/Nawah-50M-Egyptian-18y-Persona", "prompt": "Once upon a time,", "max_tokens": 512, "temperature": 0.5 }'Use Docker
docker model run hf.co/oddadmix/Nawah-50M-Egyptian-18y-Persona
- SGLang
How to use oddadmix/Nawah-50M-Egyptian-18y-Persona 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 "oddadmix/Nawah-50M-Egyptian-18y-Persona" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "oddadmix/Nawah-50M-Egyptian-18y-Persona", "prompt": "Once upon a time,", "max_tokens": 512, "temperature": 0.5 }'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 "oddadmix/Nawah-50M-Egyptian-18y-Persona" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "oddadmix/Nawah-50M-Egyptian-18y-Persona", "prompt": "Once upon a time,", "max_tokens": 512, "temperature": 0.5 }' - Docker Model Runner
How to use oddadmix/Nawah-50M-Egyptian-18y-Persona with Docker Model Runner:
docker model run hf.co/oddadmix/Nawah-50M-Egyptian-18y-Persona
Nawah-50M — Egyptian 18-Year-Old Persona (نواة)
Nawah (نواة, "nucleus/seed") is a ~51.8M-parameter Arabic small language model fine-tuned to speak with the voice of an 18-year-old Egyptian persona. It is a proof-of-concept for training capable Arabic models from scratch at tiny scale — small enough to run on a CPU, yet coherent in Modern Standard Arabic with an Egyptian cultural frame.
- Base model:
oddadmix/50M-2048-Emhotob— a Llama-architecture model pre-trained from scratch on ~20B Arabic tokens with a 2048-token context window. - Fine-tuning data:
oddadmix/4.1-mini-18-yearsold-10K— 9.8K persona-grounded Arabic examples (see Training data). - Architecture & recipe: derived from
SupraLabs/Supra-50M-Base. This project is a POC for training Arabic tiny models from scratch.
الملخص بالعربية: «نواة» نموذج لغوي عربي صغير (~51.8 مليون معامل) مبني على معمارية Llama ومدرَّب من الصفر، ثم ضُبط ليتحدث بشخصية شاب مصري في الثامنة عشرة من عمره. نموذج تجريبي (Proof of Concept) لإثبات إمكانية تدريب نماذج عربية مفيدة على نطاق صغير جدًا يمكن تشغيلها حتى على المعالج (CPU). التفاصيل الكاملة في الأقسام أدناه.
Model details
| Parameters | ~51.8M |
| Architecture | Llama (LlamaForCausalLM) |
| Hidden size | 512 · Layers 12 · Heads 8 (GQA, 4 KV) · head_dim 64 |
| Vocab size | 32002 (32000 base + 2 ChatML control tokens) |
| Context length | 2048 |
| Tied embeddings | yes |
| Chat format | ChatML (`< |
| Precision | bfloat16 |
| License | Apache-2.0 (matches the base architecture) |
Training data
Nawah is fine-tuned on oddadmix/4.1-mini-18-yearsold-10K — a
synthetic, persona-grounded Arabic dataset of 9,800 examples covering the life
of an 18-year-old Egyptian (family dynamics, street culture, transport, school/university,
social expectations, and more). Each row carries rich conditioning metadata
(life_stage, domain, persona_seed, socioeconomic_tilt) and multiple output
formats (factual_qa, open_ended_qa, multi_turn), each with an LLM-as-a-judge
quality_evaluation score.
Provenance of the data:
- Distilled from
Qwen/Qwen3.5-9B— the teacher model that generated the persona conversations and answers. - Generated with NVIDIA NeMo Data Designer — NVIDIA's framework for producing high-quality synthetic data from scratch or from seeds, with dependency-aware fields, statistical samplers, and built-in LLM-as-a-judge quality scoring. The dataset's schema (persona seeds, socioeconomic tilt, per-row quality reasoning + score) reflects a Data Designer configuration.
البيانات: ضُبط النموذج على مجموعة بيانات اصطناعية مبنية على شخصية مصرية عمرها 18 عامًا (9.8 ألف مثال). البيانات مُقطَّرة من نموذج Qwen 3.5 9B وتم توليدها باستخدام NVIDIA NeMo Data Designer.
Usage
The tokenizer uses the TokenizersBackend class, which requires transformers>=5.12.
There is no packaged chat template, so build the ChatML prompt manually:
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer
model_id = "oddadmix/Nawah-50M-Egyptian-18y-Persona"
tok = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(model_id, torch_dtype=torch.bfloat16)
def chat(user_msg, system="أنت شاب مصري في الثامنة عشرة من عمرك."):
prompt = (
f"<|im_start|>system\n{system}<|im_end|>\n"
f"<|im_start|>user\n{user_msg}<|im_end|>\n"
f"<|im_start|>assistant\n"
)
ids = tok(prompt, return_tensors="pt").to(model.device)
out = model.generate(
**ids, max_new_tokens=256, do_sample=True,
temperature=0.7, top_p=0.9, repetition_penalty=1.2,
eos_token_id=tok.convert_tokens_to_ids("<|im_end|>"),
)
return tok.decode(out[0][ids.input_ids.shape[1]:], skip_special_tokens=True)
print(chat("احكيلي عن يومك في الجامعة."))
You can also try it in the demo Spaces: Nawah-50M-Demo · Nawah-50M-Demo0ts.
Intended use & limitations
Intended use. Research and demonstration of persona-conditioned Arabic generation at tiny scale; lightweight, CPU-friendly Arabic text generation; a baseline for from-scratch Arabic SLM experiments.
Limitations. At ~50M parameters this is a proof of concept, not a
production assistant. Expect limited world knowledge, weak long-form reasoning, and
occasional repetition or factual errors — use sampling with a repetition_penalty.
The persona and its cultural framing come from synthetic data, so outputs reflect
the teacher model's and the persona seed's assumptions rather than any real individual.
Do not rely on it for factual, medical, legal, or financial advice.
Citation & credits
- Base architecture & training scripts:
SupraLabs/Supra-50M-Base(Apache-2.0). - Base Arabic model:
oddadmix/50M-2048-Emhotob— from-scratch, ~20B Arabic tokens, 2048 ctx. - Fine-tuning data:
oddadmix/4.1-mini-18-yearsold-10K— distilled fromQwen/Qwen3.5-9B, generated with NVIDIA NeMo Data Designer.
- Downloads last month
- 20
Model tree for oddadmix/Nawah-50M-Egyptian-18y-Persona
Base model
oddadmix/50M-2048-Emhotob