EX Corase — Tiny Persian Language Model
EX Corase — مدل زبانی کوچک فارسی
Model Params ONNX License Creator
۱. معرفی / Introduction
فارسی: EX Corase یک مدل زبانی کوچک فارسی از صفر (from scratch) است که توسط EXAiStudio ساخته شده. این مدل پژوهشی با هدف آموزش کامل چرخه ساخت مدل زبانی روی Google Colab طراحی شده و به عنوان دستیار قابل اتکا توصیه نمیشود.
English: EX Corase is a tiny Persian language model trained from scratch by EXAiStudio. This is a research-only model built to demonstrate the full LLM training pipeline on Google Colab and is NOT recommended as a reliable assistant.
⚠️ هشدار پژوهشی / Research Warning: این مدل صرفا پژوهشی است و ممکن است اطلاعات نادرست، توهم (hallucination) و پاسخهای نامرتبط تولید کند. برای استفاده تولیدی یا مشاوره قابل اتکا نیست. This model is research-only and may generate incorrect facts, hallucinations and irrelevant continuations. Not for production or trustworthy advice.
۲. اطلاعات انتشار / Release Info
فارسی:
- سازنده: EXAiStudio
- نام مدل: EX Corase
- تاریخ انتشار: ۱ نوامبر ۲۰۲۶ / 2026-11-01
- نسخه: v3 (EX Corase identity fix)
English:
- Creator: EXAiStudio
- Model Name: EX Corase
- Release Date: November 1, 2026
- Version: v3 (EX Corase identity fix)
۳. جزئیات فنی / Technical Details
فارسی:
| پارامتر | مقدار |
|---|---|
| معماری | TinyGPT (Decoder-only Transformer) |
| تعداد پارامتر | ~14M (14,200,000) |
| vocab_size | 8000 |
| n_layer | 6 |
| n_head | 6 |
| n_embd | 384 |
| block_size | 256 |
| dropout | 0.1 |
| weight tying | wte.weight = lm_head.weight |
English:
| Parameter | Value |
|---|---|
| Architecture | TinyGPT (Decoder-only Transformer) |
| Parameters | ~14M (14,200,000) |
| vocab_size | 8000 |
| n_layer | 6 |
| n_head | 6 |
| n_embd | 384 |
| block_size | 256 |
| dropout | 0.1 |
| weight tying | wte.weight = lm_head.weight |
Tokenizer:
- BPE trained with
tokenizerslibrary - Vocab 8000 + special tokens:
<s>,<pad>,</s>,<unk>,<|user|>,<|assistant|> - File:
tokenizer.json
ONNX Export:
- opset_version: 18
- input:
input_ids(int64) [batch, seq] - dynamic - output:
logits[batch, seq, vocab] - Single-file:
tiny_gpt_final.onnx(52MB)
۴. دیتاست / Dataset
فارسی:
- منبع اولیه:
expertra_cleaned.jsonl(90k نمونه) - نسخه نهایی:
expertra_v3.jsonl - فیلترها:
- حذف
[\d+]براکت شمارهها - حذف پاسخهای حاوی
پایتختبا اطلاعات غلط (ایسلند=نایروبی و...) - محدودیت طول پاسخ <200 کاراکتر
- حذف
<|user|>داخل assistant
- حذف
- افزودهها:
- 350 نمونه هویت ثابت:
من EX Corase هستم، یک مدل زبانی کوچک فارسی که تو ساختی. - 6000 نمونه ریاضی تمیز:
a + b,a - b - فرمت:
{"messages": [{"role": "user", "content": "..."}, {"role": "assistant", "content": "..."}]}
- 350 نمونه هویت ثابت:
English:
- Source:
expertra_cleaned.jsonl(90k) - Final:
expertra_v3.jsonl- حذف پاسخهای طولانی >200 کاراکتر
- Additions: 350 identity samples for EX Corase, 6000 clean math samples
- Format: JSONL with messages
۵. آموزش / Training
فارسی:
- محیط: Google Colab T4
- بهینهساز: AdamW lr=3e-4, weight_decay=0.1
- Batch: 32
- Steps: 5000
- Loss: 9.10 → 0.72 (v3)
- Mixed precision: fp32 (v3), fp16 planned for 100M
- ذخیره:
tiny_gpt.pt
English:
- Hardware: Google Colab T4
- Optimizer: AdamW lr=3e-4, weight_decay=0.1
- Batch: 32
- Steps: 5000
- Loss: 9.10 → 0.72 (v3)
- Precision: fp32 (v3), fp16 planned for 100M
- Checkpoint:
tiny_gpt.pt
۶. فایلهای انتشار / Released Files
فارسی:
EX-Corase/
tokenizer.json # توکنایزر BPE 8k
tiny_gpt.pt # وزن PyTorch (52MB)
tiny_gpt_final.onnx # وزن ONNX تکفایلی با input_ids (52MB)
config.json # هایپرپارامترها
README.md # همین فایل
English:
EX-Corase/
tokenizer.json # BPE tokenizer 8k
tiny_gpt.pt # PyTorch weights (52MB)
tiny_gpt_final.onnx # Single-file ONNX with input_ids (52MB)
config.json # Hyperparameters
README.md # This file
config.json:
{
"vocab_size": 8000,
"n_layer": 6,
"n_head": 6,
"n_embd": 384,
"block_size": 256,
"model_name": "EX Corase"
}
۷. نحوه استفاده / Usage
PyTorch - فارسی:
import torch, json
from tokenizers import Tokenizer
# load config, tokenizer, model (TinyGPT class as in repo)
tokenizer = Tokenizer.from_file("tokenizer.json")
model.load_state_dict(torch.load("tiny_gpt.pt", map_location="cpu"))
model.eval()
ids = tokenizer.encode("<|user|> اسمت چیه؟ </s> <|assistant|>").ids
# generate with stop on </s> and <|user|>
PyTorch - English:
Same as above, use <|user|> prompt </s> <|assistant|> format and stop at </s>.
ONNX - فارسی:
ورودی باید input_ids باشد نه input. با onnxruntime:
import onnxruntime as ort
sess = ort.InferenceSession("tiny_gpt_final.onnx")
logits = sess.run(None, {"input_ids": input_ids_np})[0]
ONNX - English:
Input name must be input_ids. Use onnxruntime as above.
Web - فارسی/English:
HTML demo compatible with input_ids included in repo artifact loads all three files via file picker.
۸. محدودیتها / Limitations
فارسی:
- ریاضی پیچیده را اشتباه میگوید (2-1=5 در نسخههای اولیه)
- اطلاعات جغرافیایی غلط از دیتاست اولیه حفظ شده بود (در v3 فیلتر شد ولی ممکن است باقی بماند)
- بعد از پاسخ ممکن است جمله بیربط بسازد اگر stop روی
</s>رعایت نشود - توکنایزر 8k فاصلهها را گاهی حذف میکند
منEXCoraseهستم - برای مکالمه طولانی (block_size=256) مناسب نیست
English:
- Fails on complex math
- May retain false geographical facts from original data (filtered in v3 but not guaranteed)
- May continue with irrelevant sentences if not stopped at
</s> - Tokenizer 8k sometimes merges spaces
- Not suitable for long context (block_size=256)
۹. نقشه راه / Roadmap
فارسی:
- v4: دیتاست سوپر تمیز فارسی خالص <20 کلمه، vocab 16k
- 50M: n_layer=10, n_embd=640
- 100M: 4M نمونه (~320M توکن), n_layer=12, n_embd=640, block_size=512, fp16
- هدف نهایی: 150-200M با 1-2B توکن
English:
- v4: Super-clean Persian <20 words, vocab 16k
- 50M: n_layer=10, n_embd=640
- 100M: 4M samples (~320M tokens), n_layer=12, n_embd=640, block_size=512, fp16
- Final goal: 150-200M with 1-2B tokens
۱۰. لایسنس / License
MIT - For research and educational use. No warranty.
ساخته شده با ❤️ توسط EXAiStudio / Built with ❤️ by EXAiStudio - Nov 1, 2026
- Downloads last month
- 93