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

Llama یه مدل زبانی اوپنسورس از Metaه که هر کسی میتونه وزنهاش رو دانلود کنه، روی سرور خودش اجرا کنه، و — مهمتر از همه — روی دادههای خودش fine-tune کنه. این یعنی میتونی یه Llama فارسیدان، با لحن خاص خودت، برای کارهای خاصت بسازی. این مقاله دقیقاً توضیح میده چطور — با جزئیات واقعی، نه شعار.
چرا Llama؟ چرا نه GPT یا Claude؟
GPT-4 و Claude قویترن — این واقعیته. ولی وقتی داری fine-tuning میکنی، نمیتونی وزنهای GPT-4 رو لمس کنی. OpenAI یه سرویس fine-tuning محدود داره (روی GPT-4o Mini) که هزینهٔ توکنمحور داره و کنترل کامل نداری.
Llama فرق اساسی داره: وزنها مال توئه. دادههات از سرورت بیرون نمیره. میتونی روی GPU شخصی یا یه VPS ایرانی اجرا کنی. برای کاربر ایرانی که درگیر تحریم و مشکل پرداخت خارجیست، این تفاوت عملیه.
نسخههای Llama که میشناسیشون
Llama 3.1 (۲۰۲۴) — جدیدترین نسل. در سایزهای 8B، 70B، و 405B. نسخهٔ 70B روی اکثر بنچمارکها با GPT-4 Turbo رقابت میکنه.
Llama 3.2 (آبان ۱۴۰۳) — نسخههای 1B و 3B مخصوص اجرا روی گوشی و edge device. اولین Llamaهایی که رسماً multimodalان (1B و 3B متنفقط، 11B و 90B تصویر+متن).
Llama 3.3 (۲۰۲۵) — نسخهٔ 70B با کیفیت نزدیک به 405B. برای fine-tuning فارسی، 70B نقطهٔ شروع خوبیه — هم کافی قوی، هم قابل اجرا.
وضعیت فارسی در Llama خام
Llama 3.x فارسی میدونه — نه خوب، نه بد. در دادههای آموزشیش متن فارسی بوده، ولی نسبت به انگلیسی خیلی کمتر. چند مشکل مشخص:
- توکنیزاسیون گران — هر کلمهٔ فارسی اغلب ۳-۵ توکن مصرف میکنه در حالی که همتای انگلیسیش ۱-۲ توکنه. این هزینهٔ inference رو بالا میبره.
- لهجه و محاوره — اگه بخوای مدل فارسی محاورهای یا لحن خاصی داشته باشه، مدل خام کافی نیست.
- حوزههای تخصصی — حقوق ایران، پزشکی فارسی، اصطلاحات فنی بومی — مدل خام اطلاعات کافی نداره.
Fine-tuning دقیقاً اینجا وارد میشه.
Fine-tuning چیست؟ (کوتاه و صادقانه)
وقتی یه LLM از صفر آموزش میبینه، صدها GPU برای ماهها کار میکنن. Fine-tuning یه مرحلهٔ آموزش کوچیکتر روی یه مدل از پیش آموزشدیدهست. بهجای ساختن از صفر، مدل رو با دادههای خاص خودت «تنظیم دقیق» میکنی.
سه روش اصلی برای fine-tuning Llama:
۱. Full fine-tuning — همهٔ وزنها تغییر میکنن. گرانقیمت، نیاز به GPU پرحافظه (حداقل ۸۰GB برای 70B). برای اکثر کاربران عملی نیست.
۲. LoRA (Low-Rank Adaptation) — بهجای تغییر همهٔ وزنها، یه ماتریس کوچیک «adaptor» اضافه میکنی. هزینهٔ محاسباتی ۱۰-۲۰ برابر کمتر. برای Llama 8B روی یه A100 (80GB) یا دو A40 (48GB) ممکنه.
۳. QLoRA — ترکیب quantization با LoRA. مدل اصلی رو با دقت ۴ یا ۸ بیت ذخیره میکنی، بعد LoRA اعمال میکنی. با QLoRA میشه Llama 3.1 8B رو روی یه RTX 4090 (24GB) fine-tune کرد — سختافزاری که در ایران قابل تهیهست.
داده: مهمترین چیزی که کسی بهش توجه نمیکنه
اغلب مقالات fine-tuning وقتشون رو صرف معرفی فریمورکها میکنن. ولی واقعیت اینه که کیفیت داده مهمتر از روش fine-tuningه.
برای فارسی، چند منبع داده خوب:
- مکالمات دستی — بهترین داده، ولی گرونترین. چند صد مکالمهٔ باکیفیت فارسی درست میکنی.
- Synthetic data با GPT-4 — GPT-4 رو میگی مکالمات فارسی باکیفیت بسازه. بعد اینها رو برای fine-tuning Llama استفاده میکنی. روش «distillation» نام داره.
- Persian Alpaca — چند پروژه دادههای Alpaca رو به فارسی ترجمه کردن. کیفیتشون متفاوته.
- OSCAR Persian — یه corpus بزرگ متن فارسی از Common Crawl. برای fine-tuning عمومی مناسبه.
- دادههای حوزهمحور — اگه میخوای مدل حقوقی یا پزشکی فارسی بسازی، باید دادههای تخصصی بسازی یا پیدا کنی.
فرمت استاندارد برای fine-tuning Llama 3، فرمت Instruct هست:
<|begin_of_text|><|start_header_id|>system<|end_header_id|>
تو یه دستیار متخصص فارسی هستی...
<|eot_id|><|start_header_id|>user<|end_header_id|>
سوال کاربر اینجاست
<|eot_id|><|start_header_id|>assistant<|end_header_id|>
جواب مطلوب اینجاست
<|eot_id|>
ابزارها و فریمورکها
Unsloth — سریعترین و سادهترین راه. ادعا میکنه fine-tuning رو ۲-۵ برابر سریعتر و ۷۰٪ کمحافظهتر میکنه. یه notebook آماده برای Llama 3 داره که روی Google Colab رایگان هم کار میکنه (ولی آهستهست).
TRL از Hugging Face — کتابخونهٔ رسمیتر. SFTTrainer داخلش داری که straightforwardه. با Hugging Face ecosystem کاملاً compatibleه.
Axolotl — برای پروژههای seriousتر. config-basedه — همه چیز رو در یه YAML تعریف میکنی.
LLaMA-Factory — رابط کاربری وب هم داره. برای کسانی که دوست ندارن زیاد کد بزنن.
یه مثال واقعی: fine-tuning Llama 8B با Unsloth
from unsloth import FastLanguageModel
model, tokenizer = FastLanguageModel.from_pretrained(
model_name = "unsloth/Meta-Llama-3.1-8B-Instruct",
max_seq_length = 2048,
load_in_4bit = True, # QLoRA
)
model = FastLanguageModel.get_peft_model(
model,
r = 16, # rank LoRA
lora_alpha = 16,
target_modules = ["q_proj", "v_proj"],
)
بعد dataset فارسیت رو load میکنی و SFTTrainer رو راه میاندازی. کل فرآیند برای ۱۰۰۰ نمونهٔ داده روی A100 حدود ۳۰-۶۰ دقیقه طول میکشه.
ارزیابی مدل fine-tuned فارسی
بعد از fine-tuning، چطور بفهمیم مدل بهتر شده؟
- مقایسهٔ دستی — سادهترین راه. یه set از سوالها رو به مدل خام و fine-tuned میدی، مقایسه میکنی.
- Perplexity — متریک فنی که میگه مدل چقدر متن فارسی رو «عجیب» میبینه. کمتر بهتره.
- بنچمارکهای فارسی — پروژههایی مثل Persian LLM Benchmarks دارن معیارهای ارزیابی میسازن.
محدودیتها و چیزهایی که باید بدونی
Fine-tuning مشکلات کوچیکترش نیست:
- Catastrophic forgetting — اگه خیلی aggressive fine-tune کنی، مدل چیزهایی که قبلاً بلد بود رو فراموش میکنه.
- Overfitting — با دادههای کم، مدل فقط روی نمونههای آموزشی جواب میده، نه سوالهای جدید.
- هزینه — اجرای مدل ۷۰B در production گرانه. اکثر کاربران با 8B شروع میکنن.
جمعبندی
Llama fine-tuning برای فارسی یه ابزار قدرتمند واقعیه — نه هایپ. با QLoRA و Unsloth، کار روی سختافزار متوسط ممکن شده. مهمترین چیز کیفیت دادههای فارسیته، نه انتخاب فریمورک.
اگه کاربر نهایی هستی (نه توسعهدهنده)، نیازی به fine-tuning نداری — میتونی از ابزارهایی استفاده کنی که این کارها رو برات کردن. اگه توسعهدهندهای، با نسخهٔ 8B شروع کن، QLoRA استفاده کن، و روی کیفیت داده وقت بذار.
همچنین بخوان
ادامهٔ مسیر
همهٔ مقالهها ←
مدل زبانی فارسی چیست
مدل زبانی فارسی چیست — راهنمای فارسی از مجموعهٔ «LLM فارسی» در وبلاگ آیرا. بازنویسیشده با تمرکز روی کاربر ایرانی و روایت شناخت پیوسته.

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

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

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