🤖 مدل زبانی ایران نسخه ۱ با معماری بومی یاسین 🇮🇷
🌟 اولین معماری مدل زبانی متنباز فارسی
📋 فهرست مطالب
🌟 معرفی کلی
✨ ویژگیهای منحصربهفرد
💎 کاربردهای عملی
📊 نمونه خروجی
هوش مصنوعی در ایران چه جایگاهی دارد؟ لطفاً با ذکر مثال توضیح دهید.
هوش مصنوعی در ایران طی سالهای اخیر رشد قابل توجهی داشته است. دانشگاههای برتر
مانند صنعتی شریف، تهران و امیرکبیر دورههای تخصصی در این حوزه راهاندازی
کردهاند.
برای مثال:
✅ دانشگاه صنعتی شریف - آزمایشگاه پردازش زبان طبیعی با تمرکز بر فارسی
✅ دانشگاه تهران - مرکز تحقیقات هوش مصنوعی و رباتیک
✅ دانشگاه امیرکبیر - پژوهشکده فناوری اطلاعات و هوش مصنوعی
شرکتهای دانشبنیان متعددی در زمینه پردازش زبان فارسی، بینایی ماشین و
رباتیک فعالیت میکنند. شرکتهایی مانند هوشا، دیجیکالا و اسنپ تیمهای
تخصصی هوش مصنوعی دارند.
با این حال، چالشهایی مانند:
⚠️ دسترسی محدود به سختافزارهای پیشرفته
⚠️ مهاجرت نخبگان
⚠️ کمبود دادههای باکیفیت فارسی
⚠️ تحریمهای بینالمللی
وجود دارد. پیشبینی میشود با سرمایهگذاری بیشتر در این حوزه، ایران بتواند
جایگاه بهتری در منطقه کسب کند.
⚙️ معماری فنی پیشرفته
┌─────────────────────────────────────────────────────────────────┐
│ 📝 ورودی متنی (Text Input) │
└────────────────────────────────────┬────────────────────────────┘
▼
┌─────────────────────────────────────────────────────────────────┐
│ ⚡ Embedding + RoPE │
│ جاسازی توکن + موقعیتیابی چرخشی │
│ (Rotary Position Embedding) │
└────────────────────────────────────┬────────────────────────────┘
▼
┌─────────────────────────────────────────────────────────────────┐
│ 🔷 ×۳۲ لایه دیکودر │
│ 32 Decoder Layers │
├─────────────────────────────────────────────────────────────────┤
│ ┌───────────────────────────────────────────────────────────┐ │
│ │ 🎯 Self-Attention (GQA با ۸ سر KV) │ │
│ │ Grouped Query Attention (4:1 ratio) │ │
│ │ • کاهش ۷۵٪ مصرف حافظه │ │
│ │ • حفظ کیفیت با اشتراکگذاری KV │ │
│ └───────────────────────────────────────────────────────────┘ │
│ ↓ │
│ ┌───────────────────────────────────────────────────────────┐ │
│ │ 🧮 Feed-Forward (SwiGLU) │ │
│ │ • تابع فعالسازی SiLU/Swish │ │
│ │ • بهبود ۲۰٪ در کیفیت خروجی │ │
│ │ • ۳ لایه خطی با گیتینگ هوشمند │ │
│ └───────────────────────────────────────────────────────────┘ │
│ ↓ │
│ ┌───────────────────────────────────────────────────────────┐ │
│ │ 📊 RMSNorm & Residual Connection │ │
│ │ • نرمالسازی پایدار │ │
│ │ • اتصال باقیمانده برای گرادیان بهتر │ │
│ └───────────────────────────────────────────────────────────┘ │
└────────────────────────────────────┬────────────────────────────┘
▼
┌─────────────────────────────────────────────────────────────────┐
│ 🎯 LM Head │
│ خروجی نهایی │
└────────────────────────────────────┬────────────────────────────┘
▼
┌─────────────────────────────────────────────────────────────────┐
│ 📄 خروجی متنی (Text Output) │
└─────────────────────────────────────────────────────────────────┘
📐 مشخصات کامل پیکربندی
🔬 نوآوریهای پیادهسازی
💻 شروع سریع (فقط ۱۰ خط کد)
# گام ۱: نصب کتابخانه
# pip install transformers torch accelerate
from transformers import AutoModelForCausalLM, AutoTokenizer
# گام ۲: بارگذاری مدل (فقط ۳ خط!)
model_name = "your-username/yasin-model"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForCausalLM.from_pretrained(model_name)
# گام ۳: استفاده از مدل
prompt = "داستان کوتاهی در مورد بهار بنویس"
inputs = tokenizer(prompt, return_tensors="pt")
outputs = model.generate(
**inputs,
max_length=300,
temperature=0.7,
do_sample=True,
top_p=0.9
)
print(tokenizer.decode(outputs[0], skip_special_tokens=True))
🛠️ پیکربندی برای سختافزارهای مختلف
from configuration_yasin import YasinConfig
config = YasinConfig(
# کاهش ابعاد اصلی
hidden_size=512,
num_hidden_layers=12,
num_attention_heads=8,
num_key_value_heads=2, # GQA فعال
intermediate_size=1408,
# تنظیمات توالی
max_position_embeddings=1024,
# بهینهسازی حافظه
use_cache=True,
_attn_implementation="sdpa",
)
model = YasinForCausalLM(config)
config = YasinConfig(
# ابعاد کامل
hidden_size=4096,
num_hidden_layers=40,
num_attention_heads=32,
num_key_value_heads=8,
intermediate_size=11008,
# توالی طولانی
max_position_embeddings=8192,
rope_theta=500000.0,
rope_scaling={"rope_type": "dynamic", "factor": 4.0},
# حداکثر سرعت
_attn_implementation="flash_attention_2",
use_cache=True,
)
⚡ بهینهسازی بیشتر
model = AutoModelForCausalLM.from_pretrained(
model_name,
load_in_8bit=True,
device_map="auto"
)
model = AutoModelForCausalLM.from_pretrained(
model_name,
load_in_4bit=True,
bnb_4bit_compute_dtype=torch.float16
)
# برای آموزش با حافظه محدود
model.gradient_checkpointing_enable()
model.config.use_cache = False
📈 نتایج آموزش و ارزیابی
🎓 فاینتیون
from transformers import Trainer, TrainingArguments
from datasets import load_dataset
# ۱. بارگذاری دیتاست فارسی
dataset = load_dataset("text", data_files={"train": "my_persian_texts.txt"})
# ۲. تنظیم پارامترهای آموزش
training_args = TrainingArguments(
output_dir="./yasin-finetuned",
num_train_epochs=3,
per_device_train_batch_size=4,
gradient_accumulation_steps=4,
save_steps=500,
logging_steps=50,
learning_rate=2e-5,
warmup_ratio=0.03,
fp16=True, # آموزش با دقت نیمه
gradient_checkpointing=True,
)
# ۳. شروع آموزش
trainer = Trainer(
model=model,
args=training_args,
train_dataset=dataset["train"],
)
trainer.train()
🤝 چگونه مشارکت کنم؟
📜 مجوز و شرایط استفاده
👥 تیم توسعه و قدردانی
✨ تیم فیبوناچی | Fibonacci Team ✨
👥 اعضای تیم | Meet the Team
🚀 به ما بپیوندید | Join Us
📬 ارتباط با ما