الكتابات/blog/2026/05
Blog12 مايو 2026·6 دقيقة

ضبط نماذج اللغة المفتوحة المصدر بـ LoRA وQLoRA: دليل 2026

تعلم كيفية ضبط نماذج LLM مفتوحة المصدر مثل Llama وMistral باستخدام LoRA وQLoRA على أجهزة عادية. دليل عملي مع أمثلة برمجية وخطوات النشر.

تقدم النماذج الأساسية مثل Llama 3 وMistral وQwen نتائج مبهرة دون الحاجة إلى أي ضبط إضافي. لكن التطبيقات المؤسسية تتطلب في الغالب معرفة متخصصة بمجال بعينه، أو أسلوباً لغوياً محدداً، أو تنسيقات مخرجات خاصة. يتيح لك الضبط الدقيق تكييف هذه النماذج القوية وفق احتياجاتك — دون الحاجة إلى التدريب من الصفر.

التحدي؟ يتطلب الضبط الكامل لنموذج بحجم 7 مليار معامل عشرات الغيغابايتات من ذاكرة GPU وساعات من الحوسبة. هنا يأتي دور LoRA (التكيف منخفض الرتبة) وQLoRA (LoRA الكمّي) — اللذان يتيحان الضبط الدقيق على أجهزة اعتيادية بجزء بسيط من التكلفة.

ما هو LoRA؟

LoRA تقنية ضبط دقيق موفّرة للمعاملات، أطلقتها مايكروسوفت عام 2021. بدلاً من تحديث جميع أوزان النموذج، تُدرج مصفوفات تدريب صغيرة تُسمى "المحوّلات" في طبقات الانتباه.

كيف يعمل:

  • مصفوفة الأوزان الأصلية: W بأبعاد d × d
  • يضيف LoRA تحديثاً منخفض الرتبة يساوي A × B
  • تُدرَّب فقط المصفوفتان A وB، حيث الرتبة r أصغر بكثير من d

مع رتبة r=8 ونموذج 7 مليار معامل، تُدرِّب نحو 4 ملايين معامل بدلاً من 7 مليارات — تخفيض يتجاوز 1,700 ضعف في المعاملات القابلة للتدريب.

from peft import LoraConfig, get_peft_model
 
lora_config = LoraConfig(
    r=8,
    lora_alpha=32,
    target_modules=["q_proj", "v_proj"],
    lora_dropout=0.05,
    bias="none",
    task_type="CAUSAL_LM"
)
 
model = get_peft_model(base_model, lora_config)
model.print_trainable_parameters()
# trainable params: 4,194,304 || all params: 6,738,415,616 || trainable%: 0.06%

QLoRA: الضبط الدقيق على الأجهزة الاستهلاكية

يأخذ QLoRA الكفاءة خطوةً أبعد عبر تكميم النموذج الأساسي إلى دقة 4 بت قبل تطبيق محوّلات LoRA، مما يخفض استخدام الذاكرة بشكل جذري:

حجم النموذجضبط كاملLoRAQLoRA
7 مليارنحو 112 GBنحو 28 GBنحو 6 GB
13 مليارنحو 208 GBنحو 52 GBنحو 10 GB
70 مليارنحو 1.1 TBنحو 280 GBنحو 48 GB

مع QLoRA، يمكنك ضبط نموذج 7 مليار معامل على بطاقة RTX 3090 واحدة أو حتى GPU مجاني من Google Colab.

import torch
from transformers import AutoModelForCausalLM, BitsAndBytesConfig
 
bnb_config = BitsAndBytesConfig(
    load_in_4bit=True,
    bnb_4bit_use_double_quant=True,
    bnb_4bit_quant_type="nf4",
    bnb_4bit_compute_dtype=torch.bfloat16
)
 
model = AutoModelForCausalLM.from_pretrained(
    "mistralai/Mistral-7B-v0.1",
    quantization_config=bnb_config,
    device_map="auto"
)

تحضير مجموعة البيانات

جودة مجموعة بيانات الضبط الدقيق أهم بكثير من حجمها. إليك المبادئ الجوهرية:

اختيار التنسيق المناسب

اختر تنسيق التعليمات الملائم للنموذج الأساسي الذي تستخدمه:

# تنسيق Alpaca (مدعوم على نطاق واسع)
def format_prompt(sample):
    return f"""### Instruction:
{sample['instruction']}
 
### Input:
{sample.get('input', '')}
 
### Response:
{sample['output']}"""

إرشادات حجم مجموعة البيانات

  • تكييف السلوك (النبرة، تنسيق المخرجات): 100–500 مثال
  • حقن المعرفة المتخصصة بالمجال: 1,000–10,000 مثال
  • تعلم المهارات (توليد الكود، الاستدلال المعقد): 5,000–50,000 مثال

التحقق من جودة البيانات

def validate_dataset(data):
    issues = []
    for i, sample in enumerate(data):
        if len(sample.get('output', '')) < 10:
            issues.append(f"Sample {i}: output too short")
        if len(sample.get('instruction', '')) < 5:
            issues.append(f"Sample {i}: instruction too short")
    print(f"Dataset: {len(data)} samples, {len(issues)} issues found")
    return issues

التدريب باستخدام TRL

تجعل مكتبة trl من Hugging Face عملية الضبط الدقيق الخاضع للإشراف بالغة البساطة:

from trl import SFTTrainer
from transformers import TrainingArguments
 
training_args = TrainingArguments(
    output_dir="./results",
    num_train_epochs=3,
    per_device_train_batch_size=4,
    gradient_accumulation_steps=4,
    warmup_steps=100,
    learning_rate=2e-4,
    fp16=True,
    logging_steps=10,
    optim="paged_adamw_32bit",
)
 
trainer = SFTTrainer(
    model=model,
    train_dataset=dataset,
    peft_config=lora_config,
    dataset_text_field="text",
    max_seq_length=2048,
    args=training_args,
)
 
trainer.train()

الدمج والنشر

بعد اكتمال التدريب، ادمج محوّلات LoRA مع النموذج الأساسي للحصول على استدلال فعّال:

from peft import PeftModel
 
base_model = AutoModelForCausalLM.from_pretrained(
    "mistralai/Mistral-7B-v0.1",
    torch_dtype=torch.float16,
    device_map="auto"
)
 
model = PeftModel.from_pretrained(base_model, "./results/checkpoint-final")
merged_model = model.merge_and_unload()
merged_model.save_pretrained("./my-fine-tuned-model")

يمكنك تشغيل النموذج محلياً عبر vLLM أو Ollama، أو رفعه إلى Hugging Face Hub للنشر السحابي:

# التشغيل عبر vLLM مع واجهة متوافقة مع OpenAI
python -m vllm.entrypoints.openai.api_server \
  --model ./my-fine-tuned-model \
  --port 8000

حالات الاستخدام الواقعية

روبوتات دعم العملاء — اضبط النموذج على سجل تذاكر الدعم لمطابقة صوت علامتك التجارية ومعرفة منتجك. 500 مثال من التذاكر المحلولة تتفوق في الغالب على أداة عامة مبنية فوق GPT.

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

معالجة اللغة العربية لأسواق الشرق الأوسط وشمال أفريقيا — كيّف النماذج متعددة اللغات على بيانات عربية متخصصة لأداء أفضل في المجالات القانونية والطبية والتقنية.

معالجة الفواتير والمستندات — درّب نماذج لاستخراج البيانات المنظمة من الفواتير بتنسيقاتك المحددة، مما يُحل محل الأنماط الصعبة برمجياً.

التحليل القانوني والطبي — اضبط النماذج على المصطلحات المتخصصة لفهم الوثائق بعمق يتفوق على أسلوب الإيجاز الصفري.

تقديرات التكلفة لعام 2026

الإعدادGPUتكلفة التدريبالوقت لنموذج 7 مليار
Google Colab ProT4 16 GBنحو 0.50 دولار لكل 1000 مثالنحو 45 دقيقة
RunPodRTX 4090نحو 0.30 دولار لكل 1000 مثالنحو 20 دقيقة
Lambda LabsA100 80 GBنحو 0.15 دولار لكل 1000 مثالنحو 8 دقائق
GPU محليRTX 3090تكلفة الكهرباء فقطنحو 25 دقيقة

الخاتمة

أصبح الضبط الدقيق لنماذج LLM المفتوحة المصدر باستخدام LoRA وQLoRA في متناول المطورين الأفراد والفرق الصغيرة. بوحدة GPU استهلاكية أو حساب سحابي بعشرة دولارات، يمكنك بناء نماذج متخصصة تتفوق على واجهات برمجية عامة في نطاق استخدامك المحدد.

نضج نظام المصادر المفتوحة — Hugging Face وTRL وPEFT وUnsloth — بشكل لافت. في عام 2026، لم يعد السؤال ما إذا كنت تستطيع تحمّل تكاليف الضبط الدقيق؛ بل ما إذا كنت تستطيع تحمّل عدم القيام به.

ابدأ صغيراً: 200–500 مثال عالي الجودة، تحقق من نهجك بمقاييس موضوعية، ثم توسّع. النماذج المتخصصة التي تبنيها ستصبح ميزة تنافسية لا يمكن لأي مزود API تكرارها.