تخصيص نماذج AI: أساسيات Fine-tuning

Fine-tuning يخلي النموذج يفهم مجالك. بيانات تدريب + GPU + صبر. نشرح المفهوم والخطوات — ومتى يستاهل الجهد.
ما هو ضبط النماذج (Fine-Tuning)؟
ضبط النماذج هو عملية تخصيص نموذج ذكاء اصطناعي مدرب مسبقاً ليتخصص في مهمة معينة أو يتحدث بأسلوب محدد. بدلاً من تدريب نموذج من الصفر (يكلف ملايين الدولارات)، تأخذ نموذجاً جاهزاً مثل Llama 3 أو Mistral وتعيد تدريبه على بيانات محددة.
مثال عملي: نموذج Llama 3 يعرف اللغة العربية، لكنه لا يعرف سياسات شركتك أو منتجاتك أو أسلوب تواصلك. بعد الضبط، يصبح النموذج خبيراً في مجالك تحديداً.
متى تحتاج Fine-Tuning ومتى لا تحتاج؟
| الحاجة | الحل الأنسب | السبب |
|---|---|---|
| الإجابة على أسئلة من مستنداتك | RAG (بدون Fine-Tuning) | أسهل وأرخص — البيانات تتحدث |
| أسلوب كتابة مخصص | Fine-Tuning | النموذج يتعلم الأسلوب |
| تصنيف بيانات بمعاييرك | Fine-Tuning | يحتاج فهم سياقك |
| دعم فني آلي | RAG أولاً، Fine-Tuning إذا لزم | ابدأ بالأسهل |
| ترجمة متخصصة | Fine-Tuning | المصطلحات تختلف حسب المجال |
| استخراج بيانات من مستندات | Fine-Tuning | يحتاج تعلم التنسيق |
| محادثة عامة | لا تحتاج أي شيء | النماذج الأساسية كافية |
القاعدة الذهبية: جرب RAG أولاً. إذا النتائج غير مرضية، انتقل لـ Fine-Tuning.
أنواع الضبط
1. Full Fine-Tuning (ضبط كامل)
تحديث كل معاملات النموذج. النتيجة الأفضل لكنه يحتاج:
- GPU بذاكرة ضخمة (A100 80GB أو أكثر)
- بيانات تدريب كبيرة (آلاف الأمثلة)
- وقت طويل (ساعات إلى أيام)
2. LoRA (Low-Rank Adaptation)
تحديث جزء صغير من المعاملات فقط. الخيار العملي:
- يعمل على GPU أصغر (RTX 4090 يكفي)
- بيانات أقل (مئات الأمثلة)
- أسرع بكثير
- النتائج قريبة جداً من الضبط الكامل
3. QLoRA (Quantized LoRA)
LoRA مع نموذج مضغوط (4-bit). الأكثر كفاءة:
- يعمل على 24 GB VRAM
- نفس جودة LoRA تقريباً
- أقل استهلاكاً للذاكرة بنسبة 60%
| النوع | VRAM المطلوب (7B) | VRAM المطلوب (13B) | جودة النتيجة |
|---|---|---|---|
| Full Fine-Tuning | 28+ GB | 52+ GB | الأفضل |
| LoRA | 16 GB | 24 GB | ممتازة |
| QLoRA | 8 GB | 16 GB | ممتازة |
تجهيز بيانات التدريب
تنسيق البيانات
أشهر تنسيق هو JSONL (سطر JSON لكل مثال):
{"instruction": "ما سياسة الإرجاع؟", "output": "سياسة الإرجاع تسمح بالإرجاع خلال 14 يوم من تاريخ الشراء بشرط أن يكون المنتج بحالته الأصلية."}
{"instruction": "كم مدة الشحن؟", "output": "الشحن داخل الرياض 1-2 يوم عمل. المدن الأخرى 3-5 أيام عمل."}
{"instruction": "هل تدعمون الدفع بالتقسيط؟", "output": "نعم، ندعم التقسيط عبر تمارا وتابي بدون فوائد لمدة 4 أشهر."}
حجم البيانات المطلوب
| المهمة | عدد الأمثلة (حد أدنى) | عدد الأمثلة (مثالي) |
|---|---|---|
| تصنيف نصوص | 100 | 500-1,000 |
| إجابة أسئلة | 200 | 1,000-3,000 |
| أسلوب كتابة | 500 | 2,000-5,000 |
| استخراج بيانات | 300 | 1,000-2,000 |
قواعد جودة البيانات
- التنوع: أمثلة تغطي كل الحالات المتوقعة
- الدقة: كل إجابة يجب أن تكون صحيحة 100%
- التنسيق: نفس التنسيق في كل الأمثلة
- التوازن: عدد متقارب من الأمثلة لكل فئة
- اللغة: إذا الهدف عربي، كل الأمثلة بالعربي
خطوات الضبط العملية (QLoRA)
1. تجهيز البيئة
pip install torch transformers datasets peft bitsandbytes trl accelerate
2. تحميل النموذج بتنسيق 4-bit
from transformers import AutoModelForCausalLM, BitsAndBytesConfig
import torch
bnb_config = BitsAndBytesConfig(
load_in_4bit=True,
bnb_4bit_quant_type="nf4",
bnb_4bit_compute_dtype=torch.bfloat16,
)
model = AutoModelForCausalLM.from_pretrained(
"meta-llama/Meta-Llama-3-8B",
quantization_config=bnb_config,
device_map="auto",
)
3. إعداد LoRA
from peft import LoraConfig, get_peft_model
lora_config = LoraConfig(
r=16,
lora_alpha=32,
target_modules=["q_proj", "v_proj", "k_proj", "o_proj"],
lora_dropout=0.05,
bias="none",
task_type="CAUSAL_LM",
)
model = get_peft_model(model, lora_config)
4. التدريب
from trl import SFTTrainer, SFTConfig
training_config = SFTConfig(
output_dir="./results",
num_train_epochs=3,
per_device_train_batch_size=4,
gradient_accumulation_steps=4,
learning_rate=2e-4,
logging_steps=10,
save_strategy="epoch",
)
trainer = SFTTrainer(
model=model,
train_dataset=dataset,
args=training_config,
)
trainer.train
5. حفظ النموذج
model.save_pretrained("./my-finetuned-model")
# تحويل لتنسيق GGUF للاستخدام مع Ollama
# python convert_hf_to_gguf.py ./my-finetuned-model
تقييم النتائج
بعد التدريب، قيّم النموذج:
- اختبار يدوي: اسأل 20-30 سؤال من خارج بيانات التدريب
- مقارنة: قارن الإجابات مع النموذج الأصلي
- دقة التصنيف: إذا المهمة تصنيف، احسب الدقة على مجموعة اختبار
- مراجعة بشرية: شخص يراجع عينة من الإجابات
الأخطاء الشائعة
- Overfitting: النموذج يحفظ بيانات التدريب بدل أن يتعلم — الحل: زد التنوع وقلل عدد الحقب
- بيانات قليلة: أقل من 100 مثال غالباً لا يكفي — الحل: اجمع بيانات أكثر
- بيانات غير نظيفة: أخطاء في الإجابات تنتقل للنموذج — الحل: مراجعة يدوية
- Learning rate عالي: النموذج ينسى معرفته السابقة — الحل: ابدأ بـ 2e-5 أو 2e-4
متطلبات السيرفر
للضبط باستخدام QLoRA على نموذج 7B:
- 8 vCPU كحد أدنى
- 32 GB RAM نظام
- GPU مع 24 GB VRAM (أو CPU فقط مع صبر)
- 100 GB+ SSD سريع
خادم سحابي من كلاود (cloud.net.sa) بباقة مؤسسة مع ذاكرة إضافية يوفر الموارد اللازمة. البيانات تبقى في الرياض — مهم جداً إذا بيانات التدريب حساسة.
الخلاصة
Fine-Tuning ليس للجميع ولا لكل حالة. ابدأ بـ RAG، إذا ما كفى انتقل لـ QLoRA. جهّز بيانات نظيفة ومتنوعة، ابدأ صغيراً، وقيّم النتائج بعناية. النموذج المضبوط جيداً يتفوق على نموذج أكبر منه بـ 10 مرات — إذا البيانات صح.
ابدأ الآن
جاهز تشغّل الذكاء الاصطناعي على سيرفرك؟ اكتشف حلول استضافة AI أو صمم سيرفرك بالمواصفات المطلوبة.


