Persian Mini LM — مدل زبانی کوچک فارسی
مدل SmolLM2-135M-Instruct (< 1B پارامتر) که روی دو دیتاست فارسیِ اکانت AIgenius1 سازگارسازی (fine-tune) شده است:
AIgenius1/zoomit-persian-pretraining-dataset(مقالات خبری زومیت)AIgenius1/persian-pretraining-dataset(مقالات ویکیپدیای فارسی)
فایلهای این مخزن
| مسیر | توضیح |
|---|---|
model.safetensors و فایلهای ریشه |
مدل کامل آموزشدیده (fp32) |
pruned_fp32/ |
نسخه هرسشده ساختاری 20٪ نورونهای MLP (سریعتر، سبکتر) |
model_int8_dynamic.pt |
وزنهای کوانتیزه INT8 داینامیک (حجم ~4x کمتر) |
benchmark_report_fa.pdf |
گزارش کامل بنچمارک و بهینهسازی (فارسی) |
benchmark_results.json |
دادههای خام همه بنچمارکها |
train_log.json |
منحنی Loss آموزش |
نتایج بنچمارک (CPU دو هستهای، 2 نخ)
| مدل | پارامتر (M) | وزن در RAM (MB) | سرعت Decode (tok/s) | سرعت Prefill (tok/s) | PPL زومیت | PPL ویکی | QA فارسی (%) | QA انگلیسی (%) |
|---|---|---|---|---|---|---|---|---|
| مدل پایه SmolLM2-135M-Instruct — fp32 | 134.5 | 538.1 | 21.34 | 503.39 | 7.64 | 8.02 | 12.5 | 75.0 |
| مدل پایه — کوانتیزه INT8 | 28.3 | 113.4 | 36.4 | 867.67 | 17.3 | 16.79 | 6.2 | 50.0 |
| مدل پایه — هرسشده 20% — fp32 | 118.5 | 474.2 | 23.02 | 559.15 | 9.67 | 9.78 | 12.5 | 25.0 |
| آموزشدیده فارسی — fp32 | 134.5 | 538.1 | 21.7 | 531.25 | 4.79 | 5.56 | 18.8 | 100.0 |
| آموزشدیده فارسی — کوانتیزه INT8 | 28.3 | 113.4 | 37.49 | 940.74 | 9.19 | 9.98 | 6.2 | 50.0 |
| آموزشدیده فارسی — هرسشده 20% — fp32 | 118.5 | 474.2 | 22.24 | 554.55 | 5.73 | 6.29 | 6.2 | 25.0 |
| آموزشدیده فارسی — هرسشده + کوانتیزه INT8 | 28.3 | 113.4 | 37.98 | 941.74 | 10.75 | 11.35 | 6.2 | 0.0 |
افزایش سرعت نهایی (هرسشده + INT8 نسبت به پایه fp32): ~1.75x
نحوه استفاده
from transformers import AutoModelForCausalLM, AutoTokenizer
import torch
tok = AutoTokenizer.from_pretrained("AIgenius1/persian-mini-lm")
model = AutoModelForCausalLM.from_pretrained("AIgenius1/persian-mini-lm", dtype=torch.float32)
msgs = [{"role": "user", "content": "سلام!"}]
text = tok.apply_chat_template(msgs, tokenize=False, add_generation_prompt=True)
enc = tok(text, return_tensors="pt")
out = model.generate(**enc, max_new_tokens=64, do_sample=False)
print(tok.decode(out[0][enc.input_ids.shape[1]:], skip_special_tokens=True))
استفاده از نسخه کوانتیزه INT8 (سریعترین حالت روی CPU)
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer
tok = AutoTokenizer.from_pretrained("AIgenius1/persian-mini-lm")
model = AutoModelForCausalLM.from_pretrained("AIgenius1/persian-mini-lm")
model = torch.ao.quantization.quantize_dynamic(model, {torch.nn.Linear}, dtype=torch.qint8)
پیکربندی آموزش
- گامها: 250 | batch: 4 | طول دنباله: 256 | بهینهساز: AdamW (lr=2e-4، cosine، warmup 15)
- داده:
9MB متن فارسی پاکسازیشده از هر دو دیتاست (2.3M توکن، نمونهگیری به دلیل محدودیت CPU) - هرس: ساختاری (Structured) 20٪ نورونهای میانی MLP بر اساس اهمیت L1
- کوانتیزاسیون: INT8 داینامیک روی لایههای Linear
محدودیتها
مدل بسیار کوچک است (135M) و کیفیت استدلالی محدودی دارد؛ پاسخهای فارسی آن پس از سازگارسازی روانتر شدهاند اما برای کاربرد جدی توصیه نمیشود. افت کیفیت نسخه INT8 روی مدلهای بسیار کوچک قابل توجه است (جزئیات در گزارش PDF).
- Downloads last month
- 32
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support
Model tree for AIgenius1/persian-mini-lm
Base model
HuggingFaceTB/SmolLM2-135M Quantized
HuggingFaceTB/SmolLM2-135M-Instruct