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

Fine-tuning للنماذج اللغوية: LoRA و QLoRA و Full Fine-tuning

شرح تقني معمّق لتخصيص LLMs، الفروقات بين Full Fine-tuning و LoRA و QLoRA، متى تختار كل تقنية، وأمثلة عملية بأدوات Hugging Face.

فريق مقالات، قسم التقنية ٤ سبتمبر ٢٠٢٦ 7 دقيقة قراءة

Fine-tuning هو المهارة التي تُميّز مطوّري AI الجادّين عن المستخدمين العاديّين. بدل الاعتماد على GPT-4 لكل شيء، تُخصّص نموذجاً مفتوحاً لمشكلتك بتكلفة أدنى وأداء أفضل. هذا شرح تقني عميق.

لماذا Fine-tuning؟

الحالات المناسبة

  1. الأسلوب الثابت: نموذج يكتب دائماً بصوت علامتك التجارية.
  2. اللغة/اللهجة: تحسين أداء نموذج على العربية أو لهجة معيّنة.
  3. مهامّ متخصّصة: تصنيف طبّي، تلخيص قانوني، توليد كود بأسلوب فريقك.
  4. تقليل تكلفة الاستدلال: نموذج صغير مُخصَّص = أرخص من نموذج كبير عام.
  5. الخصوصية: تُدير النموذج على خوادمك، بياناتك لا تخرج.

متى لا تحتاج

  • المهمّة تحلّ بـ Prompt Engineering.
  • تحتاج بيانات محدّثة (RAG أفضل).
  • ميزانيتك < $50.
  • ليس لديك 500+ مثال جيّد للتدريب.

Full Fine-tuning، التقليدي

كيف: تحديث كل الأوزان في النموذج.

المزايا:

  • أفضل جودة نظرياً.
  • مرونة كاملة.

العيوب:

  • مكلف جداً: تدريب Llama 70B = ذاكرة 280GB (لأنه FP16) + gradients + optimizer states = 1TB+ RAM.
  • يحتاج 8+ GPUs A100 ($10-50k للتدريب).
  • Catastrophic forgetting: النموذج قد ينسى قدراته العامّة.

لهذا Full Fine-tuning نادر حالياً، معظم المطوّرين يستخدمون LoRA.

LoRA، التغيير الجذري

الفكرة

نُشرت Low-Rank Adaptation of Large Language Models في يونيو 2021 من Microsoft.

الملاحظة: تحديثات الأوزان أثناء fine-tuning لها rank منخفض، يمكن تمثيلها بمصفوفتَين صغيرتَين.

الرياضيات:

  • الوزن الأصلي: W (مصفوفة كبيرة، مثلاً 4096×4096).
  • بدل تحديث W مباشرة، نُضيف: W' = W + BA
    • B: 4096×r
    • A: r×4096
    • r (rank) صغير (8, 16, 32).
  • نُدرّب B و A فقط، W مُجمَّدة.

التوفير

مثال Llama 7B:

  • Full Fine-tuning: 7 مليار معامل قابلة للتدريب.
  • LoRA (r=16): ~4 مليون معامل قابلة للتدريب (0.06%).

النتيجة:

  • ذاكرة GPU أقلّ 10-20×.
  • سرعة تدريب أعلى 2-3×.
  • جودة قريبة جداً من Full Fine-tuning (95%+ في معظم الحالات).

حجم الملف

LoRA weights = 10-100 MB (بدل 14GB للنموذج الكامل).

يمكنك:

  • تخزين مئات LoRAs لنفس النموذج الأساسي.
  • تبديلها بسرعة.
  • مشاركتها بسهولة.

أين تُطبَّق LoRA

عادةً على مصفوفات Attention (Q, K, V, Output projection).

يمكن توسيعها لـ MLP layers أيضاً لجودة أعلى.

QLoRA، الثورة الأكبر

نُشرت QLoRA: Efficient Finetuning of Quantized LLMs مايو 2023 من جامعة واشنطن (Tim Dettmers).

الفكرة: LoRA + النموذج الأساسي مضغوط لـ 4-bit.

المكوّنات

  1. 4-bit NormalFloat (NF4): نظام تكميم مصمَّم للأوزان (بدل INT4).
  2. Double Quantization: تكميم ثوابت التكميم نفسها.
  3. Paged Optimizers: إدارة ذاكرة GPU لتجنّب Out-of-Memory.
  4. LoRA أدابتر بـ 16-bit (BF16) للتدريب.

النتائج المذهلة

قبل QLoRA:

  • Fine-tuning Llama 65B = يحتاج 8× A100 (80GB) = $30/ساعة على AWS.

بعد QLoRA:

  • Fine-tuning Llama 65B = GPU واحدة بذاكرة 48GB = $2/ساعة.
  • 15× أرخص.

Guanaco (أوّل نموذج مُدرَّب بـ QLoRA): وصل إلى 99.3% من أداء ChatGPT في تقييم Vicuna بعد 24 ساعة على GPU واحد.

الأنواع الأخرى من PEFT

PEFT = Parameter-Efficient Fine-Tuning.

Prefix Tuning

  • تُضاف tokens افتراضية قابلة للتدريب في بداية كل طبقة.
  • Rank أقلّ من LoRA لكن أحياناً أقلّ فعالية.

P-Tuning v2

  • Prefix tuning على كل طبقة.

Adapters

  • طبقات صغيرة تُدخَل بين طبقات النموذج.
  • الأسلاف الفكري لـ LoRA.
  • نادراً ما تُستخدم اليوم (LoRA أفضل).

IA3

  • ضرب المصفوفات الوسيطة بمتّجهات صغيرة.
  • أخفّ من LoRA لكن أقلّ مرونة.

الملخّص: LoRA/QLoRA هما المهيمنان في 2024-2026.

Full Fine-tuning vs LoRA: متى تختار كل واحد؟

| المعيار | Full Fine-tuning | LoRA / QLoRA | |---|---|---| | التكلفة | $$$ | $ | | الوقت | أيام-أسابيع | ساعات | | الذاكرة | ضخمة | معتدلة | | الجودة | الأفضل نظرياً | 95%+ من Full | | حجم الملف | كامل النموذج | ~1% من النموذج | | مرونة نشر | نموذج واحد | مئات LoRAs | | الحاجة للخبرة | عالية | متوسّطة |

التوصية العامّة: ابدأ دائماً بـ LoRA. اذهب لـ Full فقط إذا:

  • LoRA لم يحقّق الجودة المطلوبة.
  • المهمّة تختلف جذرياً عن التدريب الأصلي.
  • لديك ميزانية كبيرة.

بيانات التدريب

الشكل

بيانات fine-tuning للمحادثة تكون عادةً بشكل:

{
  "messages": [
    {"role": "system", "content": "أنت مساعد قانوني سعودي."},
    {"role": "user", "content": "ما هو نظام مكافحة الاحتيال المالي؟"},
    {"role": "assistant", "content": "نظام مكافحة الاحتيال المالي في المملكة صدر بالمرسوم الملكي..."}
  ]
}

الكمّية

  • حدّ أدنى: 50-100 مثال (نتائج متواضعة).
  • مقبول: 500-2000.
  • جيّد: 5000-10000.
  • ممتاز: 10000+.

الجودة > الكمّية. 500 مثال ممتاز > 5000 متوسّط.

الجودة

  • تنوّع: غطّ كل السيناريوهات المتوقّعة.
  • الدقّة: كل إجابة يجب أن تكون صحيحة (النموذج سيتعلّم منها كوحدة حقيقية).
  • الاتّساق في الأسلوب: إذا تريد نبرة موحّدة، طبّقها في كل مثال.
  • بلا تكرار: يجعل النموذج overfit.

مصادر البيانات

  • صنع يدوي: أفضل جودة، أعلى تكلفة.
  • توليد بـ GPT-4/Claude: أرخص، جودة أدنى قليلاً، استراتيجية "Distillation".
  • بيانات موجودة: محادثات دعم عملاء، وثائق داخلية، سجلّات.
  • Datasets عامّة: Alpaca, ShareGPT, OpenAssistant.

الأدوات

Hugging Face PEFT

مكتبة رسمية لـ LoRA وأخواتها.

from peft import LoraConfig, get_peft_model

lora_config = LoraConfig(
    r=16,
    lora_alpha=32,
    target_modules=["q_proj", "v_proj"],
    lora_dropout=0.05,
)
model = get_peft_model(base_model, lora_config)
model.print_trainable_parameters()
# trainable params: 4M || all params: 7B || 0.06%

Axolotl

Framework شامل يدير كل شيء بملف YAML واحد.

  • يدعم LoRA, QLoRA, Full, DPO, ORPO.
  • تكامل مع wandb, tensorboard.
  • مفضّل للتدريب الجادّ.

Unsloth

تسريع 2-5× لـ LoRA/QLoRA.

  • مكتبة Python صغيرة.
  • مجّاني للاستخدام المفتوح.
  • شعبية متزايدة (2024-2026).

LLaMA Factory

  • واجهة رسومية، لا كود.
  • ممتاز للمبتدئين.
  • يدعم نماذج كثيرة.

OpenAI Fine-tuning

للنماذج المغلقة (GPT-4o mini, GPT-4.1):

  • ارفع JSONL.
  • OpenAI يُدير التدريب.
  • يُعطيك نموذج مخصّص بمعرّف.
  • الكلفة: $25/1M token training + استدلال أعلى.

Anthropic Claude Fine-tuning

  • متاح لعملاء AWS Bedrock.
  • Claude 3 Haiku قابل للـ fine-tuning.

Google Gemini

  • Fine-tuning عبر Vertex AI.
  • Gemini 1.5 Flash قابل للتخصيص.

Fine-tuning للعربية

التحدّيات

  • معظم النماذج مُدرَّبة على عربي أقلّ 5% من بيانات التدريب.
  • Tokenizer يستهلك 2-4× tokens للعربية.
  • اللهجات (خليجي، مصري، شامي) أضعف.

التوصية

النقطة الأنسب للبدء: Qwen 2.5 أو Llama 3.1، دعم عربي معقول من البداية.

للأعلى جودة: ALLaM (SDAIA) أو Jais (G42)، عربيّان أصلاً.

مثال عملي: fine-tune Llama 3.1 8B على 3000 حوار سعودي بأسلوب محدّد = نموذج يفوق GPT-3.5 في مجالك بتكلفة استدلال أقلّ 10×.

عملية Fine-tuning خطوة بخطوة

1. حدّد الهدف بوضوح

مثال: "نموذج يجيب على أسئلة عملاء صيدلية بالسعودية بأسلوب واضح، مع تحذيرات طبية دقيقة."

2. اجمع البيانات

  • ابدأ بـ 500 مثال.
  • كل مثال: سؤال حقيقي + إجابة نموذجية.

3. اختر النموذج الأساسي

  • الحجم: 7B, 13B, 70B، بحسب ميزانيتك.
  • التخصّص: general (Llama), instruction-tuned (Llama-Instruct), Arabic (ALLaM).

4. اختر التقنية

  • LoRA غالباً كافي.
  • QLoRA إذا الذاكرة محدودة.

5. اضبط Hyperparameters

  • Learning rate: 1e-4 إلى 5e-5 لـ LoRA.
  • Epochs: 1-3 (أكثر يسبّب overfit).
  • Batch size: أكبر ما يسمح به GPU.
  • LoRA r: 8-32 (أعلى = قدرة أكثر + تكلفة أعلى).

6. درِّب

  • ابدأ بـ Unsloth أو Axolotl.
  • راقب الخسارة (Loss) على مجموعة تحقّق (Validation).
  • Early stopping لتجنّب overfit.

7. قيِّم

  • اختبر يدوياً على أسئلة لم يرها النموذج.
  • استخدم LLM آخر (GPT-4) كحكم.
  • قارن مع النموذج الأساسي بلا fine-tuning.

8. انشر

  • Merge LoRA weights في النموذج (اختياري لسرعة الاستدلال).
  • استضف على vLLM, TGI, أو Ollama.
  • أو نموذج مغلق: OpenAI Fine-tuning endpoint.

أخطاء شائعة

** Overfitting**: تدريب طويل جداً على بيانات صغيرة. النموذج يحفظ الأمثلة بدل التعلّم.

** Underfitting**: تدريب قصير جداً أو LoRA rank صغير. لا تحسّن ملحوظ.

** بيانات سيّئة**: أخطاء إملائية، إجابات غير صحيحة، تنسيق غير متّسق.

** تجاهل التقييم**: تدريب بلا مجموعة اختبار = تخمين.

** إعادة اختراع العجلة**: كتابة كود من الصفر بدل استخدام أدوات ناضجة.

المستقبل

  • QLoRA 2 / 3-bit / 2-bit: تكميم أعمق مع حفاظ على الجودة.
  • DoRA (Weight-Decomposed LoRA): تحسين LoRA، 2024.
  • Reinforcement Fine-tuning: OpenAI أطلقت 2024 (RFT)، قدرات جديدة.
  • Continual Learning: fine-tuning بشكل مستمرّ بلا نسيان.

اقرأ أيضاً:

هل أفادك هذا المقال؟

كن أول من يقيّم

الأسئلة الشائعة

تدريب نموذج مُدرَّب مسبقاً (Pre-trained) على بيانات متخصّصة لتحسين أدائه في مهمّة محدّدة. بدل تدريب النموذج من الصفر (مليارات الدولارات)، نأخذ نموذجاً مفتوحاً (Llama, Mistral) ونتخصّصه في مجال (طبّي، قانوني، عربي).
Low-Rank Adaptation، تقنية 2021 تُدرّب مصفوفات إضافية صغيرة (Rank منخفض) بدل الأوزان الكاملة. تُقلّل معاملات التدريب 99%+ (من مليارات إلى ملايين) مع الحفاظ على 95%+ من جودة Full Fine-tuning. أساسية لكل تدريب حديث.
Quantized LoRA، يجمع LoRA مع تكميم (Quantization) للنموذج الأساسي إلى 4-bit. النتيجة: fine-tuning لنموذج 65B على GPU واحد بذاكرة 48GB. قبله كان مستحيلاً بلا 8 GPUs. نُشر مايو 2023 من جامعة واشنطن.
Prompt Engineering أوّلاً، إذا كفى، لا تعقّد. RAG للبيانات الديناميكية والمرجعية. Fine-tuning للأسلوب الثابت، اللهجة، مهارة متخصّصة، أو تقليل تكلفة الاستدلال. القاعدة: جرّب الثلاثة بالترتيب.
لـ LoRA: 500-10,000 مثال جيّد كافية غالباً. الكمية أقلّ أهمّية من الجودة. مثال: fine-tune نموذج للردّ العربي بأسلوب علامتك يحتاج 1000-2000 حوار مكتوب باللغة والصوت المطلوبين. المزيد لا يعني الأفضل بالضرورة.
LoRA لنموذج 7B على 5000 مثال: $5-20 على AWS/RunPod (ساعتان GPU). QLoRA لنموذج 70B: $50-200. Full fine-tuning لنموذج 7B: $500-2000. Full لنموذج 70B: $10k-50k. لهذا LoRA أساسي، يجعل التخصيص متاحاً للجميع.
Hugging Face PEFT (مكتبة LoRA رسمية)، Axolotl (framework شامل)، Unsloth (تسريع كبير)، LLaMA Factory (واجهة سهلة). OpenAI و Anthropic يوفّران Fine-tuning APIs لنماذجهم المغلقة. للمبتدئين: ابدأ بـ Unsloth أو Together.ai.

مقالات ذات صلة

نشرة مقالات الأسبوعية

اشترك تصلك أحدث المقالات + مختارات نادرة كل أحد. بلا سبام، ألغي الاشتراك بضغطة.

لا نشارك بريدك مع أي طرف ثالث. راجع سياسة الخصوصية.

التعليقات

بريدك لن يظهر ولن يُرسل إليه شيء — يُستخدم فقط لمنع الإزعاج.

لا تعليقات بعد — كن أول من يكتب.