كلاود
ذكاء اصطناعي

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

كلاود|٢ أكتوبر ٢٠٢٥|4 دقائق قراءة|٦١٣ مشاهدة
تخصيص نماذج 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

قواعد جودة البيانات

  1. التنوع: أمثلة تغطي كل الحالات المتوقعة
  2. الدقة: كل إجابة يجب أن تكون صحيحة 100%
  3. التنسيق: نفس التنسيق في كل الأمثلة
  4. التوازن: عدد متقارب من الأمثلة لكل فئة
  5. اللغة: إذا الهدف عربي، كل الأمثلة بالعربي

خطوات الضبط العملية (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

تقييم النتائج

بعد التدريب، قيّم النموذج:

  1. اختبار يدوي: اسأل 20-30 سؤال من خارج بيانات التدريب
  2. مقارنة: قارن الإجابات مع النموذج الأصلي
  3. دقة التصنيف: إذا المهمة تصنيف، احسب الدقة على مجموعة اختبار
  4. مراجعة بشرية: شخص يراجع عينة من الإجابات

الأخطاء الشائعة

  • 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 أو صمم سيرفرك بالمواصفات المطلوبة.

مشاركة