الدرس 3 من 24

فهم الضبط الدقيق

شرح طرق PEFT

3 دقيقة للقراءة

الضبط الدقيق الموفر للمعاملات (PEFT) هو عائلة من التقنيات التي تقلل بشكل كبير الموارد المطلوبة للضبط الدقيق. دعنا نستكشف الطرق الرئيسية.

LoRA: تكيف الرتبة المنخفضة

LoRA هي أشهر طريقة PEFT، تُستخدم في الغالبية العظمى من مشاريع الضبط الدقيق.

كيف يعمل LoRA

بدلاً من تحديث مصفوفة الأوزان الكاملة W، يضيف LoRA مصفوفتين صغيرتين:

الأصل: W (4096 x 4096 = 16M معامل)
LoRA: A (4096 x 16) × B (16 x 4096) = 131K معامل

التوفير: 99.2% معاملات قابلة للتدريب أقل!

تكوين LoRA

from peft import LoraConfig

config = LoraConfig(
    r=16,                    # الرتبة - حجم مصفوفات LoRA
    lora_alpha=32,           # معامل القياس
    target_modules=[         # أي الطبقات نكيّف
        "q_proj", "k_proj", "v_proj", "o_proj",
        "gate_proj", "up_proj", "down_proj"
    ],
    lora_dropout=0.05,       # التنظيم
    bias="none",             # لا تدرّب الانحيازات
    task_type="CAUSAL_LM"    # لنماذج فك التشفير
)

المعاملات الأساسية

المعاملالقيمة النموذجيةالتأثير
r (الرتبة)8-64أعلى = سعة أكثر، معاملات أكثر
lora_alpha16-64يقيّس تحديث LoRA
target_modules"all-linear"أي الطبقات نعدّل
lora_dropout0.0-0.1يمنع الإفراط في التعلم

QLoRA: LoRA المُكَمَّم

QLoRA يجمع التكميم 4-bit مع LoRA، مما يتيح ضبط نماذج 70B على GPU واحد 24GB.

كيف يعمل QLoRA

  1. تكميم النموذج الأساسي إلى 4-bit NormalFloat (NF4)
  2. إضافة محولات LoRA فوق الأوزان المكمّمة
  3. التدريب بدقة مختلطة (المحولات بـ fp16/bf16)
from transformers import BitsAndBytesConfig

bnb_config = BitsAndBytesConfig(
    load_in_4bit=True,
    bnb_4bit_quant_type="nf4",        # NormalFloat4 - الأمثل للأوزان
    bnb_4bit_compute_dtype=torch.bfloat16,
    bnb_4bit_use_double_quant=True    # تكميم ثوابت التكميم
)

مقارنة ذاكرة LoRA مقابل QLoRA

النموذجضبط كاملLoRAQLoRA
Llama 3.1 8B64GB18GB6GB
Mistral 7B56GB16GB5GB
Llama 3.3 70B560GB160GB24GB

DoRA: LoRA مفكك الأوزان

DoRA (2024) يحسّن LoRA بتفكيك الأوزان إلى الحجم والاتجاه.

LoRA:  W' = W + ΔW
DoRA:  W' = m × (W + ΔW) / ||W + ΔW||
       حيث m = الحجم المُتعلَّم، الاتجاه مُطبَّع

الفائدة: أداء أفضل، خاصة في المهام الصعبة.

طرق PEFT الأخرى

المحولات (Adapters)

وحدات شبكة عصبية صغيرة تُدخل بين طبقات المحول.

# هندسة المحول
المدخل → LayerNorm → إسقاط للأسفل → ReLU → إسقاط للأعلى → + المدخل

ضبط البادئة (Prefix Tuning)

يُلحق متجهات قابلة للتعلم للمدخل في كل طبقة.

ضبط المحث (Prompt Tuning)

يُلحق توكنات "محث ناعم" قابلة للتعلم للمدخل.

ملخص المقارنة

الطريقةالذاكرةالسرعةالأداءالأفضل لـ
LoRAمتوسطةسريعجيد جداًالخيار الافتراضي
QLoRAمنخفضةمتوسطجيد جداًVRAM محدود
DoRAمتوسطةمتوسطممتازأفضل جودة مطلوبة
ضبط كاملعالية جداًبطيءالأقصىموارد غير محدودة

أفضل الممارسات الحديثة (2026)

# التكوين الموصى للبداية
config = LoraConfig(
    r=16,
    lora_alpha=16,
    target_modules="all-linear",  # كل الطبقات الخطية
    lora_dropout=0.0,
    bias="none"
)

نصيحة: ابدأ بـ r=16 و target_modules="all-linear". قلل الرتبة أو الأهداف فقط إذا نفدت الذاكرة.

بعد ذلك، سنساعدك في اختيار النهج الصحيح لحالة استخدامك المحددة. :::

مراجعة سريعة: كيف تجد هذا الدرس؟

اختبار

الوحدة 1: فهم الضبط الدقيق

خذ الاختبار
نشرة أسبوعية مجانية

ابقَ على مسار النيرد

بريد واحد أسبوعياً — دورات، مقالات معمّقة، أدوات، وتجارب ذكاء اصطناعي.

بدون إزعاج. إلغاء الاشتراك في أي وقت.