ضبط دقيقLLMsLoRAتقني

كيف تضبط نموذج LLM على مجموعة البيانات الخاصة بك

212AY Team·2026-05-01·18 دقيقة

الضبط الدقيق يكيف نموذج LLM مدرب مسبقاً ليتفوق في مهمتك المحددة. يرشدك هذا الدليل خلال ضبط نموذج مفتوح المصدر باستخدام LoRA.

متى تلجأ للضبط الدقيق

الضبط الدقيق مثالي عندما:

  • تحتاج إلى تنسيق مخرجات متناسق
  • مجال عملك يحتوي على مفردات متخصصة
  • تريد تقليل طول الاستفسار والتكلفة
  • تبني منتجاً متخصصاً

الإعداد

pip install transformers datasets accelerate peft bitsandbytes

إعداد البيانات

قم بتنسيق بياناتك كـ JSONL مع حقلي "instruction" و "output":

{"instruction": "ما هي هندسة الاستفسار؟", "output": "هندسة الاستفسار هي ممارسة تصميم المدخلات لتوجيه مخرجات نموذج الذكاء الاصطناعي."}
{"instruction": "اشرح RAG", "output": "RAG (التوليد المعزز بالاسترجاع) يدمج LLMs مع استرجاع المعرفة الخارجية."}

تحميل النموذج الأساسي

import torch
from transformers import AutoModelForCausalLM, AutoTokenizer
from peft import LoraConfig, get_peft_model

model_name = "microsoft/phi-2"  # أو أي نموذج مفتوح المصدر

model = AutoModelForCausalLM.from_pretrained(
    model_name,
    torch_dtype=torch.float16,
    device_map="auto"
)
tokenizer = AutoTokenizer.from_pretrained(model_name)
tokenizer.pad_token = tokenizer.eos_token

تكوين LoRA

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(model, lora_config)
print(f"المعلمات القابلة للتدريب: {model.num_parameters(only_trainable=True):,}")

التدريب

from transformers import TrainingArguments, Trainer

training_args = TrainingArguments(
    output_dir="./phi2-finetuned",
    per_device_train_batch_size=4,
    gradient_accumulation_steps=4,
    learning_rate=2e-4,
    num_train_epochs=3,
    logging_steps=10,
    save_strategy="epoch",
)

trainer = Trainer(
    model=model,
    args=training_args,
    train_dataset=dataset,
    tokenizer=tokenizer,
)

trainer.train()

التقييم

اختبر نموذجك المضبوط على مجموعة بيانات محجوزة:

  • قارن المخرجات قبل وبعد الضبط الدقيق
  • قس المقاييس الخاصة بالمهمة
  • قم بتقييم بشري للجودة

الاستدلال

def generate_response(instruction):
    inputs = tokenizer(instruction, return_tensors="pt").to("cuda")
    outputs = model.generate(
        **inputs,
        max_new_tokens=200,
        temperature=0.7
    )
    return tokenizer.decode(outputs[0], skip_special_tokens=True)

النشر الإنتاجي

  • صدّر بتنسيق GGUF لـ llama.cpp
  • انشر باستخدام vLLM للإنتاج
  • استخدم Ollama للنشر المحلي
  • راقب الانحراف وتدهور الجودة

متى لا تستخدم الضبط الدقيق

  • إذا كانت هندسة الاستفسار تحل مشكلتك
  • إذا كنت بحاجة لتغيير السلوكيات بشكل متكرر
  • إذا لم يكن لديك بيانات تدريب عالية الجودة
  • ابدأ بـ RAG قبل الضبط الدقيق

برنامجنا "ابنِ باستخدام LLMs" يغطي الضبط الدقيق مع مشاريع عملية.