LLM فارسی

PersianMind

PersianMind — راهنمای فارسی از مجموعهٔ «LLM فارسی» در وبلاگ آیرا. بازنویسی‌شده با تمرکز روی کاربر ایرانی و روایت شناخت پیوسته.

نوشتهٔ به‌روزرسانی: ۳ دقیقه مطالعه
تصویر مقالهٔ PersianMind

در ژانویهٔ ۲۰۲۴، یه تیم تحقیقاتی از دانشگاه تهران یه مقاله منتشر کرد که توی جامعهٔ NLP فارسی سر و صدا کرد: PersianMind، یه مدل زبانی دوزبانهٔ فارسی-انگلیسی که اول ادعا می‌کرد در درک متن فارسی به GPT-3.5-turbo نزدیکه. بریم ببینیم واقعاً چیه، چطور کار می‌کنه، و جایگاهش کجاست.

PersianMind چیست؟

PersianMind یه LLM متن‌باز (open-source) است که روی پایهٔ LLaMA 2 ساخته شده. هستهٔ ایدهٔ پشتش اینه که به‌جای آموزش یه مدل از صفر، از یه مدل قوی موجود (LLaMA 2) شروع کردن و اون رو برای فارسی «گسترش» دادن.

دو بازهٔ کاری اصلی داره:

  • درک متن فارسی: پاسخ به سؤال، خلاصه‌سازی، تحلیل
  • انتقال دانش بین زبانی (Cross-lingual): استفاده از دانشی که در انگلیسی یاد گرفته و اعمالش روی وظایف فارسی

معماری و روش آموزش

مرحلهٔ اول: گسترش واژگان

LLaMA 2 یه tokenizer دارد که برای انگلیسی بهینه شده. تیم PersianMind روی یه کرپوس تمیزشدهٔ Wikipedia فارسی یه tokenizer BPE جداگانه آموزش داد و ۱۰,۰۰۰ توکن فارسی به واژگان LLaMA 2 اضافه کرد. این کار باعث می‌شه کلمات رایج فارسی به‌جای شکستن به بایت‌های مجزا، به‌عنوان توکن‌های واحد شناخته بشن.

مرحلهٔ دوم: Continued Pre-training

مدل روی یه کرپوس فارسی نزدیک به ۲ میلیارد توکن با تکنیک LoRA (Low-Rank Adaptation) ادامه‌آموزش دید. LoRA به‌جای fine-tune کردن تمام پارامترهای مدل، فقط یه ماتریس کوچک‌تر رو تنظیم می‌کنه — این یعنی آموزش خیلی کارآمدتر و ارزان‌تر.

مرحلهٔ سوم: Instruction Tuning

بعد از pre-training، مدل روی دیتاست‌های دستورالعمل (instruction-following) fine-tune شد تا به‌جای صرفاً پیش‌بینی کلمهٔ بعدی، به دستورات کاربر پاسخ بده.

عملکرد واقعی: چقدر خوبه؟

نقاط قوت

روی reading comprehension فارسی — یعنی خوندن یه متن و پاسخ دادن به سؤالات مرتبط — PersianMind نتایج قابل توجهی داشته و با GPT-3.5-turbo در بعضی بنچمارک‌های مخصوص این وظیفه قابل مقایسه بوده.

محدودیت‌های مهم

بنچمارک FarsEval-PKBETS که در ۲۰۲۵ معرفی شد، نشون داد که PersianMind و مدل‌های مشابه روی سؤالات چالش‌برانگیز فارسی اغلب زیر ۵۰٪ دقت دارن. این واقعیتیه که نباید نادیده گرفت.

مدل در مقایسه با Claude 3 یا GPT-4o در:

  • استدلال پیچیده ضعیف‌تره
  • کدنویسی و ریاضیات عقب‌تره
  • دانش عمومی به‌روز ندارد (cutoff مشخص داره)

اما چرا اهمیت داره؟

PersianMind یه اثبات مفهوم (proof of concept) مهمه: نشون داد که با منابع محدود می‌شه یه مدل قابل استفادهٔ فارسی ساخت. LoRA + vocabulary expansion یه روش تکرارپذیره که تیم‌های دیگه‌ای هم ازش استفاده کردن (از جمله PersianLLaMA).

نسخه‌ها و دسترسی

روی Hugging Face

مدل با نام PersianMind-v1.0 روی Hugging Face موجوده و می‌شه با کتابخانهٔ Transformers لودش کرد. چند سطح quantization داره:

  • BF16: کامل‌ترین نسخه، نیاز به GPU قوی
  • INT8: نسبتاً کارآمد، برای اجرای محلی قابل استفاده
  • NF4 (4-bit): سبک‌ترین، روی GPU های ۸-۱۶ گیگ اجرا می‌شه

مثال استفاده با Python

from transformers import AutoTokenizer, AutoModelForCausalLM

model_name = "universitytehran/PersianMind-v1.0"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForCausalLM.from_pretrained(model_name, load_in_4bit=True)

prompt = "پایتخت ایران کجاست؟"
inputs = tokenizer(prompt, return_tensors="pt")
outputs = model.generate(**inputs, max_new_tokens=100)
print(tokenizer.decode(outputs[0]))

مقایسه با بقیهٔ رویکردها

رویکردمثالمزیتایراد
Fine-tune از LLaMAPersianMindمتن‌باز، قابل اجرا محلیمحدودیت دانش
Multilingual modelsmBERT, XLM-Rآماده از قبلفارسی ضعیف‌تر
مدل‌های بزرگ تجاریGPT-4o, Claudeقوی‌ترینتحریم، هزینه
بومی از صفربهترین تئورینیاز به منابع زیاد

جایگاه PersianMind در ۱۴۰۵

اکوسیستم LLM فارسی در حال رشده. PersianMind نقطهٔ شروع خوبیه برای کسی که می‌خواد یه مدل فارسی را محلی اجرا کنه یا روش fine-tune بزنه. اما برای کاربرد روزانه، مدل‌های تجاری بزرگ با دسترسی از طریق VPN (با همهٔ دردسرهایش) همچنان قوی‌ترن.

اگه به دنبال یه دستیار AI هستی که زبان و فرهنگ فارسی رو بفهمه و حافظهٔ بلندمدت هم داشته باشه، آیراچت با ویژگی شناخت پیوسته مسیر متفاوتی رو طی کرده — ترکیب مدل‌های قوی با حافظهٔ ساختارمند از تو.

همچنین بخوان

#LLM فارسی

ادامهٔ مسیر

همهٔ مقاله‌ها ←

بیشتر در «LLM فارسی»