LLM فارسی

ParsBERT

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

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

وقتی محققان ایرانی می‌خواستن یه مدل زبانی بسازن که واقعاً فارسی بفهمه — نه فارسی رو به‌عنوان یه زبان کم‌اهمیت در کنار صدها زبان دیگه — نتیجه‌اش ParsBERT شد. این مدل یکی از مهم‌ترین نقاط عطف در تاریخ پردازش زبان طبیعی فارسیه و فهمیدنش به کمک می‌کنه بدونی چرا LLMهای امروزی فارسی می‌تونن این‌قدر بهتر از ده سال پیش باشن.

BERT چیه و چرا اهمیت داشت؟

قبل از اینکه به ParsBERT بپردازیم، باید بدونی BERT چیه. در سال ۲۰۱۸، گوگل مدلی به اسم BERT (Bidirectional Encoder Representations from Transformers) منتشر کرد که نحوهٔ آموزش مدل‌های زبانی رو متحول کرد. BERT بر خلاف مدل‌های قبلی، متن رو از هر دو طرف (چپ و راست) همزمان می‌خوند — بنابراین معنای هر کلمه رو در بافت کامل جمله می‌فهمید.

BERT اصلی روی انگلیسی آموزش دیده بود. برای زبان‌هایی مثل فارسی، عربی، چینی و سایر زبان‌ها باید یا از نسخهٔ چندزبانه (mBERT) استفاده می‌شد — که کیفیتش پایین‌تر بود — یا یه نسخهٔ اختصاصی ساخته می‌شد.

ParsBERT: اولین BERT تک‌زبانهٔ فارسی

ParsBERT توسط تیم HooshvareLab (یه گروه تحقیقاتی ایرانی) توسعه یافت و مقالهٔ اصلی‌اش در سال ۲۰۲۱ در مجلهٔ Neural Processing Letters منتشر شد.

پیش‌آموزش روی یه پیکرهٔ عظیم فارسی انجام شد: بیش از ۲ میلیون سند از منابع متنوع — اخبار، رمان، مقالات علمی، وب — تا مدل با سبک‌های مختلف نوشتاری فارسی آشنا بشه.

نتایج

ParsBERT در سه وظیفهٔ اصلی NLP ارزیابی شد:

وظیفهنتیجه
تحلیل احساساتبهتر از mBERT و سایر مدل‌های ترکیبی
دسته‌بندی متنبهترین عملکرد در بنچمارک‌های فارسی
تشخیص موجودیت‌های نام‌دار (NER)بهبود چشمگیر نسبت به روش‌های قبلی

نسخه‌ها و مدل‌های موجود

روی Hugging Face چندین مدل از HooshvareLab در دسترسه:

  • bert-base-parsbert-uncased — مدل پایه، مناسب fine-tuning
  • bert-fa-base-uncased — نسخهٔ به‌روزتر با واژگان بهبودیافته
  • bert-fa-zwnj-base — نسخهٔ v3.0 که مشکل نیم‌فاصله (ZWNJ) فارسی رو بهتر مدیریت می‌کنه
  • bert-base-parsbert-ner-uncased — نسخهٔ fine-tune شده برای NER

نسخهٔ ZWNJ مهمه چون نیم‌فاصله در فارسی (مثلاً «می‌رود» در مقابل «میرود») یه چالش واقعیه که مدل‌های ساده اغلب اشتباه می‌کنن.

چطور ازش استفاده کنی؟

ParsBERT از طریق کتابخانهٔ transformers هاگینگ‌فیس قابل استفاده‌ست. یه نمونهٔ ساده:

from transformers import AutoTokenizer, AutoModel

tokenizer = AutoTokenizer.from_pretrained("HooshvareLab/bert-fa-base-uncased")
model = AutoModel.from_pretrained("HooshvareLab/bert-fa-base-uncased")

text = "هوش مصنوعی در ایران در حال رشد است"
inputs = tokenizer(text, return_tensors="pt")
outputs = model(**inputs)

برای وظایف خاص (مثلاً تحلیل احساسات نظرات محصول فارسی)، باید مدل رو روی دیتاست خودت fine-tune کنی.

کجا کاربرد داره؟

ParsBERT و مشتقاتش امروز در موارد واقعی استفاده می‌شن:

  • تحلیل احساسات — طبقه‌بندی نظرات دیجی‌کالا، نظرات توییتر فارسی
  • تشخیص موجودیت — شناسایی اسامی خاص، شرکت‌ها، مکان‌ها در متون خبری
  • دسته‌بندی اخبار — فیلتر و تگ‌گذاری خودکار محتوای فارسی
  • جستجوی معنایی — پیدا کردن مدارک مرتبط در سیستم‌های RAG فارسی

محدودیت‌ها: صادقانه بگیم

ParsBERT یه مدل encode‌کننده‌ست (encoder-only) — یعنی خودش متن جدید تولید نمی‌کنه. برای کارهایی مثل خلاصه‌سازی، ترجمه یا چت، به مدل‌های generative مثل Llama یا GPT نیاز داری.

همچنین از سال ۲۰۲۱ به بعد مدل‌های بزرگ‌تر و قوی‌تر ظاهر شدن (مثل مدل‌های فارسی مبتنی بر Llama-3). ParsBERT برای وظایف classification و NER هنوز هم گزینهٔ سبک و کارآمدیه، اما برای مکالمه یا تولید متن طولانی دیگه انتخاب اول نیست.

جایگاه ParsBERT در اکوسیستم NLP فارسی

ParsBERT نقطهٔ شروع یه مسیر بود. بعد از اون، تیم‌های مختلف ایرانی و غیرایرانی مدل‌های بهتری برای فارسی ساختن. اما ParsBERT یه سابقهٔ علمی مستقل داره — مقاله، بنچمارک، کد باز — و هنوز هم به‌عنوان baseline در تحقیقات NLP فارسی ذکر می‌شه.

اگه می‌خوای بفهمی چقدر یه مدل فارسی «واقعاً» فارسی می‌فهمه، بنچمارک‌هایی که روی ParsBERT آزمایش شدن هنوز معیار مقایسه هستن.

همچنین بخوان

#LLM فارسی

ادامهٔ مسیر

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

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