Key Takeaways
- LoRA = إضافة طبقات قابلة للتدريب صغيرة إلى نموذج مُدرَّب مسبقاً. 1–5% فقط من أوزان النموذج قابلة للتدريب، مما يقلّص VRAM والوقت بشكل كبير.
- متطلبات الضبط الدقيق: 500–1000 مثال عالي الجودة، 8–16 GB من VRAM، 1–4 ساعات تدريب.
- أفضل الأدوات: unsloth (الأسرع)، Hugging Face TRL، Axolotl (الأكثر مرونة).
- رتبة LoRA (r): أقل (r=8) أصغر وأسرع؛ أعلى (r=64) أكثر تعبيراً. الافتراضي: r=16–32.
- في أبريل 2026، LoRA جاهز للإنتاج ومدعوم على نطاق واسع في محركات الاستدلال.
كيف يعمل LoRA؟
يضيف LoRA مصفوفات "مُكيِّفة" صغيرة بجانب أوزان النموذج الأصلية. أثناء التدريب، تُحدَّث المُكيِّفات فقط. تبقى الأوزان الأصلية مجمّدة.
مثال: نموذج 13B يملك 13 مليار وزن. يضيف LoRA 50 مليون معامل قابل للتدريب فقط (~0.4% من الأصل). التدريب أسرع بـ 100×.
في الاستدلال، تُدمَج مخرجات المُكيِّف مع مخرجات النموذج الرئيسي عبر ضرب المصفوفات. عقوبة السرعة ضئيلة (~5%).
النتيجة: نموذج خاص بالمجال يؤدي أفضل في مهامك مستخدماً 8 GB من VRAM فقط بدلاً من 26 GB.
ما هو QLoRA (LoRA مُكمَّم بـ 4 بت)؟
يجمع QLoRA بين LoRA والتكميم بـ 4 بت — يُحمَّل النموذج الأساسي بـ 4 بت (QLoRA) بينما يُدرَّب المُكيِّف وحده بـ 16 بت. يقلّص هذا متطلبات VRAM إلى النصف:
في أبريل 2026، QLoRA هو المعيار للعتاد الاستهلاكي. يفعّل علم `load_in_4bit=True` في Unsloth في مثال الكود أعلاه QLoRA تلقائياً. فرق الجودة البالغ 2% مقارنة بـ LoRA الكامل ضئيل لمعظم مهام تكييف المجال.
متى تستخدم LoRA (16 بت) بدلاً من QLoRA (4 بت):
• المهام التي تتطلب أقصى دقة (التحليل الطبي، تحليل العقود القانونية)
• لديك 16+ GB من VRAM متاحة
• الضبط الدقيق لنماذج 3B أو أصغر (وفورات QLoRA ضئيلة في الأحجام الصغيرة)
| الطريقة | VRAM نموذج 7B | VRAM نموذج 13B | الجودة مقابل الكامل |
|---|---|---|---|
| الضبط الدقيق الكامل | 28 GB | 52 GB | 100% (مرجع) |
| LoRA (أساس 16 بت) | 16 GB | 30 GB | ~97% |
| QLoRA (أساس 4 بت) | 8 GB | 14 GB | ~95% |
هل يجب أن تجري الضبط الدقيق أم تستخدم RAG؟
مصفوفة القرار:
قبل الاستثمار في الضبط الدقيق بـ LoRA، تحقق من أن موجّهات أفضل لا يمكنها حل المشكلة أولاً — هندسة الموجّهات أسرع وقابلة للعكس ومستقلة عن النموذج. لإطار القرار الكامل، راجع هندسة الموجّهات مقابل الضبط الدقيق: كيف تقرر.
الضبط الدقيق طريقة للحفاظ على سير عمل برمجة منتج دون اتصال. لأكمل إعداد دون اتصال — النموذج، بيئة التطوير، ذاكرة الحزم المؤقتة، مرآة التوثيق — راجع LLM برمجة محلي دون إنترنت.
| المعيار | الضبط الدقيق | RAG |
|---|---|---|
| تكرار تغيير المستندات | سنوياً أو أقل | أسبوعياً أو أكثر |
| متطلبات المعرفة | يحتاج النموذج إلى فهم عميق | الاسترجاع كافٍ |
| بيانات التدريب المتاحة | يلزم 500+ مثال عالي الجودة | أي مستند يعمل |
| التكلفة (المدى الطويل) | لمرة واحدة (50–200 دولار) | تضمينات مستمرة |
| زمن الاستجابة | أسرع (دون استرجاع) | أبطأ (استرجاع + LLM) |
| مثالي لـ | البرمجة، الكتابة الإبداعية، أسلوب المجال | قواعد المعرفة، الأسئلة والأجوبة |
كيف تُعِدّ بيانات التدريب؟
تحدّد جودة بيانات التدريب نجاح الضبط الدقيق. بيانات سيئة = نموذج سيئ.
الحد الأدنى: 500 مثال. كل مثال = مدخل + مخرج متوقع.
الأمثل: 1000–5000 مثال. بيانات أكثر = دقة أعلى.
التنسيق: JSON أو JSONL. كل سطر = مثال تدريب واحد.
[
{"instruction": "Translate to French", "input": "Hello world", "output": "Bonjour le monde"},
{"instruction": "Summarize", "input": "Long text...", "output": "Summary..."},
{"instruction": "Code review", "input": "Python code...", "output": "Review comments..."}
]
# OR instruction-only format:
[
{"text": "<|user|>Translate to French\nHello<|assistant|>Bonjour"},
{"text": "<|user|>Summarize\nText<|assistant|>Summary"}
]إعداد الضبط الدقيق بـ Unsloth
Unsloth هو إطار LoRA الأسرع (سرعة تصل إلى 2× مقارنة بالتدريب القياسي، وفق unsloth.ai):
# Install unsloth
pip install unsloth[colab-new] xformers bitsandbytes
from unsloth import FastLanguageModel
from datasets import load_dataset
# Load base model with LoRA
model, tokenizer = FastLanguageModel.from_pretrained(
model_name="unsloth/llama-3.1-8b-bnb-4bit",
max_seq_length=2048,
load_in_4bit=True,
lora_r=16, lora_alpha=32,
lora_dropout=0.05
)
# Load training data
dataset = load_dataset("json", data_files="training.jsonl")
# Configure trainer
from trl import SFTTrainer
trainer = SFTTrainer(
model=model,
tokenizer=tokenizer,
train_dataset=dataset["train"],
dataset_text_field="text",
max_seq_length=2048,
args=TrainingArguments(
per_device_train_batch_size=4,
num_train_epochs=3,
learning_rate=2e-4,
output_dir="output"
)
)
# Train
trainer.train()المعاملات الفائقة الرئيسية للضبط الدقيق بـ LoRA
| المعامل الفائق | القيمة الموصى بها | النطاق النموذجي | التأثير |
|---|---|---|---|
| learning_rate | 2e-4 | 1e-5 إلى 1e-3 | أقل = مستقر، تقارب أبطأ |
| lora_r (rank) | 16 | 4 إلى 64 | أعلى = أكثر تعبيراً، أبطأ |
| lora_alpha | 32 | 8 إلى 256 | أعلى = تأثير LoRA أقوى |
| num_train_epochs | 3 | 1 إلى 10 | حقب أكثر = خطر فرط التخصيص |
| batch_size | 4 | 1 إلى 32 | أكبر = تدريب أسرع، VRAM أكثر |
| warmup_steps | 100 | 0 إلى 1000 | زيادة تدريجية لمعدل التعلّم، يثبّت التدريب |
كيف تقيّم النماذج المضبوطة بدقة؟
خسارة التدريب: يجب أن تنخفض عبر الحقب. إذا بقيت مسطّحة، فقد يكون معدل التعلّم منخفضاً جداً.
خسارة التحقق: يجب أن تنخفض لكن تبقى فوق خسارة التدريب (طبيعي). إذا ارتفعت، فهناك فرط تخصيص.
الاختبار اليدوي: شغّل النموذج المضبوط بدقة على أمثلة اختبار وقارن المخرجات بالنتائج المتوقعة.
مهام المعايير: استخدم معايير قياسية (MMLU، HumanEval) لقياس التحسن.
ما الأخطاء الأكثر شيوعاً في الضبط الدقيق؟
- أمثلة تدريب قليلة جداً. أقل من 200 مثال يسبب غالباً فرط التخصيص. اجمع 500 على الأقل.
- التدريب لعدد حقب كثير جداً. يحفظ النموذج البيانات بدلاً من تعلّم أنماط قابلة للتعميم. 3–5 حقب كحد أقصى.
- عدم التحقق ببيانات غير مرئية. قسّم البيانات دائماً إلى تدريب/تحقق (80/20). تحقق بشكل متكرر لاكتشاف فرط التخصيص.
- استخدام نفس البيانات للضبط الدقيق والتقييم. الدقة المُبلَّغ عنها بلا معنى إذا قُيِّمت على بيانات التدريب.
- عدم حفظ نقاط التحقق. قد يستمر التدريب لساعات. احفظ كل حقبة لتتمكن من التعافي من الأعطال.
الأسئلة الشائعة حول الضبط الدقيق بـ LoRA
كم بيانات تدريب يلزم؟
الحد الأدنى 500 مثال، الأمثل 1000–5000. الجودة أهم من الكمية. 100 مثال عالي الجودة > 1000 منخفض الجودة.
هل يمكنني الضبط الدقيق على لابتوب؟
نعم. استخدم التكميم بـ 4 بت وLoRA. يتطلب نموذج 7B 8 GB من VRAM؛ يستغرق التدريب 1–2 ساعة على CPU (بطيء) أو 10–15 دقيقة على GPU.
كيف أدمج مُكيِّفات LoRA في النموذج الأساسي؟
استخدم unsloth أو HF transformers: `model.merge_and_unload()`. يُنشئ ملف نموذج واحداً (~3–4 GB لـ 7B)، جاهزاً للاستدلال.
هل يمكنني دمج عدة مُكيِّفات LoRA؟
نعم، مع قيود. كدّس المُكيِّفات للتطبيق التتابعي، أو استخدم تقنيات تركيب المُكيِّفات (مثل DoRA).
هل جودة النموذج المضبوط بدقة أفضل من RAG؟
لمعظم المهام، نعم. تفهم النماذج المضبوطة بدقة مفاهيم المجال بعمق. RAG أفضل عندما تكون المستندات ضخمة وتتغير بشكل متكرر.
ما الفرق بين LoRA وQLoRA؟
يحمّل LoRA النموذج الأساسي بـ 16 بت ويدرّب طبقات مُكيِّفة صغيرة. يحمّل QLoRA النموذج الأساسي بـ 4 بت ويدرّب المُكيِّفات بـ 16 بت. يستخدم QLoRA نحو نصف VRAM: 8 GB لـ 7B مقابل 16 GB لـ LoRA. فرق الجودة ~2% — ضئيل لمعظم المهام. يفعّل Unsloth QLoRA بـ `load_in_4bit=True`.
كيف أستخدم نموذج LoRA مضبوطاً بدقة في Ollama؟
بعد التدريب، ادمج المُكيِّف في النموذج الأساسي: `model.merge_and_unload()`. حوّل إلى GGUF باستخدام سكربت `convert.py` من llama.cpp. أنشئ Modelfile لـ Ollama يشير إلى ملف GGUF: `FROM ./my-finetuned-model.gguf` ثم: `ollama create my-model -f Modelfile` و`ollama run my-model`. يعمل النموذج المضبوط بدقة بشكل مطابق لأي نموذج Ollama.
هل يمكنني الضبط الدقيق لـ Llama 3.3 70B بـ LoRA على عتاد استهلاكي؟
نعم، بـ QLoRA. يتطلب Llama 3.3 70B بـ 4 بت ~40 GB من VRAM — يتسع في بطاقتي RTX 4090 (2×24 GB) أو A100 80GB واحدة. وقت التدريب: 4–8 ساعات على 1000 مثال. لمعظم المستخدمين، الضبط الدقيق لنماذج 7B أو 13B أكثر عملية ويحقق 90%+ من مكاسب جودة نموذج 70B لمهام المجال.
المصادر
- Hu, E. et al. (2021). "LoRA: Low-Rank Adaptation of Large Language Models." https://arxiv.org/abs/2106.09685 — الورقة الأصلية لـ LoRA التي تثبت أن 0.4% من المعاملات القابلة للتدريب تضاهي جودة الضبط الدقيق الكامل.
- Dettmers, T. et al. (2023). "QLoRA: Efficient Finetuning of Quantized LLMs." https://arxiv.org/abs/2305.14314 — ورقة QLoRA: نموذج أساسي مُكمَّم بـ 4 بت + مُكيِّفات LoRA بـ 16 بت تقلّص متطلبات VRAM إلى النصف.
- Unsloth. (2026). "Train LLMs up to 2× faster with 70% less VRAM (Unsloth)." https://github.com/unslothai/unsloth — إطار LoRA الأسرع، متوافق مع Llama 3.x وQwen3 وMistral بتسريع تدريب يصل إلى 2×.
- Hugging Face. (2025). "TRL: Transformer Reinforcement Learning." https://github.com/huggingface/trl — SFTTrainer للضبط الدقيق المُشرَف بدعم مُكيِّفات LoRA.
- Test PE link content
- يعمل الضبط الدقيق بأفضل شكل عندما تكون الأساسيات متينة. قبل استثمار الوقت في LoRA، تأكد من أن موجّهاتك الأساسية محسّنة: يغطي دليل هندسة الموجّهات 80 تقنية تحسّن جودة المخرجات في النماذج غير المضبوطة.