الفصل 2: تقنيات دمج النماذج
دمج النماذج للحصول على نتائج أفضل
دمج النماذج يجمع بين نماذج متعددة محسنة في نموذج واحد.
طرق الدمج
| الطريقة | الوصف | الأفضل لـ |
|---|---|---|
| خطي | متوسط الأوزان | دمج بسيط |
| SLERP | استيفاء كروي | دمج سلس |
| TIES | حل النزاعات | خبراء متعددون |
| DARE | إسقاط وإعادة قياس | نماذج متنوعة |
دمج LoRA
# دمج LoRA في النموذج الأساسي
from peft import PeftModel
model = PeftModel.from_pretrained(base_model, "adapter_path")
merged_model = model.merge_and_unload()
merged_model.save_pretrained("merged_model")
مثال MergeKit
# config.yaml
slices:
- sources:
- model: base_model
layer_range: [0, 32]
- model: finetuned_model
layer_range: [0, 32]
merge_method: slerp
base_model: base_model
parameters:
t: 0.5 # عامل الاستيفاء
dtype: bfloat16
mergekit-yaml config.yaml ./merged_output
متى يتم الدمج
✅ ادمج عندما:
- تجمع بين نماذج مخصصة لمهام معينة
- تنشر بنية أبسط
- لا حاجة لتبديل المحولات
❌ احتفظ بها منفصلة عندما:
- تحتاج إلى تبديل المهام ديناميكيًا
- التخزين محدود
- ترغب في تحديث المهام بشكل مستقل