Model details
Table | |
|---|
| Parameters | ~51.8M |
| Architecture | Llama (LlamaForCausalLM) |
| Hidden size | 512 · Layers 12 · Heads 8 (GQA, 4 KV) · head_dim 64 |
| Intermediate size | 1408 |
| Vocab size | 32000 (custom Arabic byte-level BPE) |
| Context length | 2048 |
| Positional encoding | RoPE (θ = 10000) |
| Tied embeddings | yes |
| Type | Base / pretrained (no chat template) |
| License | Apache-2.0 |
Training
- Corpus:
kaust-generative-ai/fineweb-edu-ar
(config ar), streamed and tokenized to a memory-mapped token bin.
- Budget: 20,000,000,000 tokens, sequence length 2048, 1 epoch over the token stream.
- Tokenizer: custom byte-level BPE (
ByteLevelBPETokenizer), vocab 32000,
specials <s> / </s> / <unk> / <pad>.
- Optimizer: AdamW (fused), β = (0.9, 0.95), weight decay 0.1, grad clip 1.0.
- Schedule: lr 6e-4, cosine decay, warmup ratio 0.02.
- bf16, , effective batch 128
(per-device 16 × grad-accum 8).
The architecture and training loop follow SupraLabs/Supra-50M-Base
("Project Chimera — 50M Llama"). The pretraining script (train.py) is included in
this repository.
Usage
The tokenizer uses the TokenizersBackend class, which requires transformers>=5.12.
This is a base model — prompt it as a text completer, not a chat assistant:
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer
model_id = "oddadmix/50M-2048-Emhotob"
tok = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(model_id, torch_dtype=torch.bfloat16)
prompt = "اللغة العربية هي"
ids = tok(prompt, return_tensors="pt").to(model.device)
out = model.generate(
**ids, max_new_tokens=128, do_sample=True,
temperature=0.8, top_p=0.9, repetition_penalty=1.2,
)
print(tok.decode(out[0], skip_special_tokens=True))
Fine-tuned variants
Intended use & limitations
Intended use. A from-scratch Arabic base model for research and as a fine-tuning
starting point; a CPU-friendly baseline for tiny Arabic SLM experiments.
Limitations. As a base model it does not follow instructions or hold a
conversation out of the box — fine-tune it first. At ~50M parameters it is a
proof of concept: expect limited world knowledge, weak reasoning, and repetition
(use a repetition_penalty). Training data is web text (fineweb-edu-ar), so it
carries that corpus's biases. Not suitable for factual, medical, legal, or financial use.
Credits