فهم الضبط الدقيق
اختيار نهجك
3 دقيقة للقراءة
الآن بعد أن فهمت طرق الضبط الدقيق المختلفة، لنبني إطار قرار لمساعدتك في اختيار النهج الصحيح لوضعك المحدد.
شجرة القرار
البداية: هل تحتاج لتخصيص نموذج؟
│
├─ لا → استخدم النموذج الأساسي مع توجيه جيد
│
└─ نعم → كم VRAM لديك؟
│
├─ <8GB → استخدم ضبط API (OpenAI، Together AI)
│
├─ 8-16GB → QLoRA على نماذج 7-8B
│
├─ 16-24GB → QLoRA على نماذج 7-70B
│
└─ 24GB+ → LoRA أو QLoRA على أي نموذج
الأسئلة الرئيسية للطرح
1. ما عتادك؟
| VRAM | النهج الموصى | الحجم الأقصى للنموذج |
|---|---|---|
| 8GB | QLoRA + Unsloth | 7B |
| 16GB | QLoRA + Unsloth | 13B |
| 24GB | QLoRA أو LoRA | 70B (QLoRA) |
| 48GB+ | LoRA أو ضبط كامل | 70B (LoRA) |
2. ما هدفك؟
| الهدف | الطريقة الموصاة | لماذا |
|---|---|---|
| تعليم معرفة المجال | SFT | يتدرب على أزواج التعليمة-الاستجابة |
| تحسين جودة الاستجابة | SFT + DPO | DPO يحاذي المخرجات للتفضيلات |
| تغيير صيغة الإخراج | SFT | سهل لتعلم المخرجات المهيكلة |
| تقليل المخرجات الضارة | DPO | تعلم التفضيل مثالي |
| تخصيص أقصى | ضبط دقيق كامل | يحدّث كل المعاملات |
3. كم بيانات لديك؟
| حجم مجموعة البيانات | التوصية |
|---|---|
| <100 مثال | استخدم التوجيه بأمثلة قليلة بدلاً |
| 100-1,000 | SFT مع LoRA، راقب الإفراط في التعلم |
| 1,000-10,000 | SFT مع LoRA، النطاق الأمثل |
| 10,000+ | SFT + DPO، أو اعتبر الضبط الكامل |
التوصيات العملية
لمعظم المستخدمين: QLoRA + SFT
# تكوين "الافتراضي الآمن"
from peft import LoraConfig
from transformers import BitsAndBytesConfig
# التكميم 4-bit
bnb_config = BitsAndBytesConfig(
load_in_4bit=True,
bnb_4bit_quant_type="nf4",
bnb_4bit_compute_dtype=torch.bfloat16
)
# تكوين LoRA
lora_config = LoraConfig(
r=16,
lora_alpha=16,
target_modules="all-linear",
lora_dropout=0.0
)
لماذا يعمل هذا:
- يناسب GPUs المستهلك (8-24GB)
- جودة ممتازة لمعظم المهام
- تدريب سريع (ساعات، ليس أيام)
- سهل للتكرار والتجريب
للسرعة: Unsloth
from unsloth import FastLanguageModel
model, tokenizer = FastLanguageModel.from_pretrained(
model_name="unsloth/Llama-3.2-3B-Instruct",
max_seq_length=2048,
load_in_4bit=True
)
لماذا يعمل هذا:
- أسرع مرتين من التدريب القياسي
- 70% أقل استخدام VRAM
- نفس جودة النتائج
للجودة: خط أنابيب SFT + DPO
الخطوة 1: SFT (الضبط الدقيق المُشرف عليه)
التدريب على أزواج التعليمة-الاستجابة
↓
الخطوة 2: DPO (التحسين المباشر للتفضيلات)
التدريب على أزواج التفضيل (مختار/مرفوض)
↓
النتيجة: نموذج مع المهارات والمحاذاة معاً
الأخطاء الشائعة لتجنبها
1. تخطي جودة البيانات
خطأ: "سأرمي 50,000 مثال عليه" صواب: 1,000 مثال عالي الجودة يتفوق على 50,000 مثال مشوش
2. الإفراط في التعلم على مجموعات بيانات صغيرة
خطأ: التدريب لـ 10 epochs على 500 مثال صواب: 1-3 epochs، استخدم مجموعة تحقق، راقب الخسارة
3. حجم النموذج الخاطئ
خطأ: ضبط 70B عندما 7B يكفي صواب: ابدأ صغيراً، كبّر فقط إذا احتجت
4. تجاهل اختيار النموذج الأساسي
خطأ: ضبط أي نموذج عشوائي صواب: اختر نموذجاً أساسياً جيداً بالفعل في نوع مهمتك
توصيات البدء السريع
| وضعك | افعل هذا |
|---|---|
| أول ضبط دقيق | QLoRA + Unsloth على Llama 3.2 3B |
| تحتاج جودة إنتاج | QLoRA على Llama 3.2 8B أو Mistral 7B |
| VRAM محدود | QLoRA + Unsloth، gradient checkpointing |
| تحتاج أفضل جودة ممكنة | LoRA على 70B أو ضبط كامل |
قائمة التحقق الملخصة
قبل أن تبدأ الضبط الدقيق:
- حددت مقاييس نجاح واضحة
- جمعت 500+ مثال تدريب عالي الجودة
- اخترت نموذجاً أساسياً مناسباً للمهمة
- تحققت أن العتاد يستطيع التعامل مع النهج المختار
- أعددت مجموعة تحقق (10-20% من البيانات)
- أعددت تتبع التجارب (wandb، mlflow)
في الوحدة التالية، سنتعمق في إعداد مجموعة بيانات التدريب—العامل الأكثر أهمية لنجاح الضبط الدقيق. :::