انتقل إلى المحتوى
الموارد/دليل تقني
تعمّق تقني

دليل مهارات الذكاء الاصطناعي والضبط الدقيق

دليل شامل لتعليم نماذج الذكاء الاصطناعي مهارات جديدة: الضبط الدقيق المُشرَف (SFT)، وLoRA/QLoRA، وRLHF، وDPO، وGRPO، وتقطير النماذج، ودمج النماذج، والتقييم. من الفكرة إلى الإنتاج — مع كود عملي في كل خطوة.

11 قسماً
قراءة 45 دقيقة
كود جاهز للإنتاج
مارس 2026

مشهد الضبط الدقيق

يمنح التدريب المسبق النموذج معرفة واسعة بالعالم، لكنه يمنحه مهارة واحدة فقط: التنبؤ بالـ token التالي. لقد رأى النموذج ويكيبيديا والكود والكتب والويب — لكنه لا يعرف كيف يكون مفيداً، أو يتبع التعليمات، أو يرفض الطلبات الخطرة. الضبط الدقيق هو عملية تعليم هذه السلوكيات بعد التدريب المسبق.

تقارب القطاع نحو سلّم تدريب قياسي تتبعه جميع النماذج الرائدة الكبرى (GPT-4o وClaude Opus 4.6 وLlama 4 وGemini 2.5). تبني كل مرحلة على سابقتها — لا يمكنك تخطّي SFT والقفز مباشرة إلى RLHF.

سلّم التدريب

graph LR
  A[Raw Text Corpus] -->|Pretraining cross-entropy| B[Base Model]
  B -->|Supervised Fine-Tuning| C[Instruction-Following Model]
  C -->|RLHF / DPO / GRPO| D[Aligned Model]
  D -->|Evaluation & Red-teaming| E[Production Model]

التدريب المسبق

تنبؤ ذاتي الإشراف بالـ token التالي على مجموعات نصية ضخمة. يرمّز معرفة العالم.

SFT

ضبط دقيق مُشرَف على أزواج تعليمات-استجابة. يعلّم النموذج أن يكون مفيداً.

مواءمة التفضيلات

RLHF أو DPO أو GRPO على بيانات تفضيلات بشرية. يجعل المخرجات آمنة ومُفضَّلة.

التقييم

اختبارات أداء آلية + red-teaming. اكتشف الانحدارات قبل الإطلاق.

الضبط الدقيق مقابل هندسة الـ prompt
تجعل هندسة الـ prompt السلوكيات مشروطة (لا تظهر إلا عندما يطلبها الـ prompt). أما الضبط الدقيق فيجعل السلوكيات افتراضية — يُظهرها النموذج باستمرار دون أن يُطلب منه ذلك. وعلى نطاق واسع، يكون هذا الفرق في الموثوقية كبيراً.

الضبط الدقيق المُشرَف (SFT)

يدرّب SFT النموذج على التنبؤ بـ tokens المساعد بناءً على سياق محادثة. التفصيل الأساسي هو loss masking: تُحسَب خسارة الإنتروبيا المتقاطعة على tokens المساعد فقط، وليس على الـ prompt الخاص بالنظام أو أدوار المستخدم. وهذا يمنع النموذج من «تعلّم» جانب المستخدم في المحادثة.

تنسيقات البيانات

تهيمن ثلاثة تنسيقات على مشهد SFT. وقد أصبح ChatML الأوسع اعتماداً بفضل tokens الخاصة الواضحة لديه.

text (ChatML format)
<|im_start|>system
You are a helpful AI assistant specialized in European AI regulation.
<|im_end|>
<|im_start|>user
What are the key obligations under the EU AI Act for high-risk systems?
<|im_end|>
<|im_start|>assistant
High-risk AI systems under the EU AI Act (in force August 2024) must comply with...
<|im_end|>

المعاملات الفائقة الأساسية

المعاملالقيمة النموذجيةملاحظات
Learning rate2e-5أقل من التدريب المسبق؛ تناقص جيب التمام
Epochs2–3مزيد من الحقب → فرط تكيّف على مجموعات البيانات الصغيرة
Batch size (effective)64–128استخدم تراكم التدرّج لذاكرة GPU الصغيرة
Warmup ratio0.110% من الخطوات لإحماء معدل التعلّم
Max sequence length2048–8192طابق نافذة سياق الاستدلال لديك

SFT باستخدام SFTTrainer من trl

python
from transformers import AutoModelForCausalLM, AutoTokenizer
from trl import SFTConfig, SFTTrainer
from datasets import load_dataset
import torch

model_name = "meta-llama/Llama-4-Scout-17B-16E-Instruct"  # 2026: Llama 4 Scout replaces Llama 3.1 8B
model = AutoModelForCausalLM.from_pretrained(
    model_name, torch_dtype=torch.bfloat16, device_map="auto"
)
tokenizer = AutoTokenizer.from_pretrained(model_name)

dataset = load_dataset("HuggingFaceH4/ultrachat_200k", split="train_sft")

sft_config = SFTConfig(
    output_dir="./sft-llama-4-scout",
    num_train_epochs=3,
    per_device_train_batch_size=2,
    gradient_accumulation_steps=8,
    learning_rate=2e-5,
    lr_scheduler_type="cosine",
    warmup_ratio=0.1,
    logging_steps=10,
    save_strategy="epoch",
    bf16=True,
)

trainer = SFTTrainer(
    model=model,
    args=sft_config,
    train_dataset=dataset,
    processing_class=tokenizer,
)
trainer.train()
trainer.save_model()
جودة البيانات تتفوّق على الكمية
1000 زوج تعليمات-استجابة عالية الجودة ومتنوعة تتفوّق باستمرار على 100000 مثال مليء بالضوضاء. تنجح أفضل مجموعات بيانات ضبط التعليمات (Alpaca 52K وWizardLM 196K وOpenHermes 1M وUltraChat 200K) بفضل التنسيق المُنتقى، لا بسبب الحجم الخام.

الضبط الدقيق الفعّال في المعاملات: LoRA

يعدّل الضبط الدقيق الكامل جميع المعاملات الـ ~7 مليار لنموذج 7B. وعند bfloat16 يبلغ ذلك 14 غيغابايت لمجرد تخزين المعاملات، إضافة إلى التدرّجات وحالات المُحسِّن. يستغل LoRA (Low-Rank Adaptation، Hu et al. 2021) ملاحظة تجريبية أساسية: تغيّرات الأوزان أثناء الضبط الدقيق منخفضة الرتبة.

بدلاً من تعلّم تحديث أوزان كامل ΔW ∈ ℝ^(d×k)، يتعلّم LoRA مصفوفتين صغيرتين: A ∈ ℝ^(d×r) وB ∈ ℝ^(r×k) حيث r ≪ min(d, k). وعند الاستدلال، يُطوى المحوّل من جديد: W′ = W + αAB/r. وبمجرد الدمج، تكون نفقات الاستدلال صفراً.

r = 4
تكيّف أدنى (النبرة، الأسلوب)
~21M (0.3%)
r = 8
افتراضي — جودة متوازنة
~42M (0.6%)
r = 16
سعة أكبر، مهام مجال
~83M (1.0%)
r = 64
جودة قريبة من الضبط الدقيق الكامل
~335M (4.1%)
نسبة alpha/الرتبة
احتفظ بـ lora_alpha = 2 × r كنقطة بداية (مثلاً r=16، alpha=32). يتحكّم هذا في معدل التعلّم الفعّال للمحوّل. alpha أعلى = تكيّف أقوى؛ مرتفع جداً = عدم استقرار.

LoRA باستخدام PEFT

python
from peft import LoraConfig, TaskType, get_peft_model

config = LoraConfig(
    task_type=TaskType.CAUSAL_LM,
    r=16,
    lora_alpha=32,
    lora_dropout=0.05,
    target_modules=[
        "q_proj", "k_proj", "v_proj", "o_proj",
        "gate_proj", "up_proj", "down_proj",
    ],
    bias="none",
)

model = get_peft_model(base_model, config)
model.print_trainable_parameters()
# trainable params: 83,886,080 || all params: 8,030,261,248 || trainable%: 1.044

# After training, merge adapter back into the base weights
merged = model.merge_and_unload()
merged.save_pretrained("./my-lora-merged")

مقارنة LoRA مقابل الضبط الدقيق الكامل

الطريقةالمعاملات القابلة للتدريبذاكرة GPU (8B)الجودةسرعة التدريب
Full Fine-Tuning7B (100%)~80 GBالأفضلالأبطأ
LoRA r=4~21M (0.3%)~16 GBجيدةسريعة
LoRA r=16~83M (1.0%)~18 GBجيدة جداًسريعة
LoRA r=64~335M (4.1%)~24 GBقريبة من الضبط الكاملمعتدلة
DoRA: LoRA مُحلَّل الأوزان
يحلّل DoRA (Liu et al. 2024) تحديثات الأوزان إلى مكوّني المقدار والاتجاه، مُطبّقاً معدل تعلّم منفصلاً لكل منهما. ويحقق باستمرار درجات اختبار أداء أفضل بنسبة 1–2% من LoRA القياسي دون أي تكلفة استدلال إضافية. متاح في PEFT عبر use_dora=True في LoraConfig.

QLoRA: ضبط دقيق بـ 4 بت

حتى مع LoRA، يتطلب النموذج الأساس المُحمَّل بـ bfloat16 ‏16 غيغابايت لنموذج 8B — وهو ما يتجاوز ميزانيات وحدات GPU الاستهلاكية. يحل QLoRA (Dettmers et al. 2023) ذلك بتكميم النموذج الأساس المُجمَّد إلى NormalFloat بـ 4 بت (NF4) وتدريب محوّلات LoRA بدقة bfloat16.

تكميم NF4

NormalFloat4 هو الأمثل نظرياً من حيث المعلومات للأوزان الموزّعة توزيعاً طبيعياً في الشبكات العصبية. خطأ أقل من int4 أو fp4.

مُحسِّنات مُصفَّحة

تُصفَّح حالات المُحسِّن تلقائياً إلى ذاكرة CPU عند امتلاء ذاكرة GPU، ما يمنع أعطال نفاد الذاكرة (OOM) أثناء التدريب.

تكميم مزدوج

يُكمِّم ثوابت التكميم نفسها، موفّراً نحو 0.5 بت إضافي لكل معامل.

متطلبات العتاد

النموذجذاكرة FP16ذاكرة QLoRAأدنى GPU
Llama 4 Scout (17B)34 GB10 GBRTX 4090 24GB
Llama 4 Maverick (70B-class)140 GB40 GB2× A100 40GB
Llama 4 Behemoth (frontier)800+ GB~200 GB8× H100 80GB

QLoRA باستخدام bitsandbytes

python
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,
    bnb_4bit_use_double_quant=True,
)

model = AutoModelForCausalLM.from_pretrained(
    "meta-llama/Llama-4-Maverick-17B-128E-Instruct",  # 2026: Llama 4 Maverick replaces Llama 3.1 70B
    quantization_config=bnb_config,
    device_map="auto",
)
# Now apply LoRA to the 4-bit model — same LoraConfig + get_peft_model as before
Unsloth لأحمال العمل على GPU واحدة
يوفّر Unsloth نوى CUDA مخصّصة لـ QLoRA تحقق تدريباً أسرع بمقدار 2× وذاكرة VRAM أقل بنسبة 50% مقارنة بـ QLoRA القياسي عبر bitsandbytes. وهو يدعم عائلات Llama 4 وLlama 3 وMistral وQwen وGemma وهو الخيار المفضّل للضبط الدقيق على GPU واحدة.

المواءمة: RLHF

كان التعلّم المعزَّز من التغذية الراجعة البشرية (RLHF) الاختراق الذي حوّل GPT-3 إلى InstructGPT وفي النهاية إلى GPT-4o. فهو يواءم سلوك النموذج مع التفضيلات البشرية — ليس مجرد اتباع التعليمات، بل جعل المخرجات مُفضَّلة وآمنة ومفيدة حقاً.

خط الأنابيب ثلاثي المراحل

Stage 1

إحماء SFT

ضبط دقيق للنموذج الأساس على مجموعة مُنتقاة من عروض اتباع التعليمات عالية الجودة. يُنشئ هذا السياسة الأولية التي سيُحسّنها RLHF.

Stage 2

تدريب نموذج المكافأة

درّب مصنّفاً على تفضيلات بشرية ثنائية: بإعطاء استكمالين (y_w، y_l) للـ prompt نفسه، أيهما أفضل؟ الخسارة: log σ(r(x, y_w) − r(x, y_l)).

Stage 3

تحسين PPO

استخدم Proximal Policy Optimization لتعظيم درجة نموذج المكافأة مع البقاء قريباً من سياسة SFT (تمنع عقوبة تباعد KL اختراق المكافأة).

مخطط خط أنابيب RLHF

graph LR
  A[Base Model] -->|SFT on demos| B[SFT Model]
  B -->|Sample completions| C[Completion Pairs]
  C -->|Human labelers rank| D[Preference Dataset]
  D -->|Train| E[Reward Model]
  B -->|Initialize policy| F[Policy Model]
  F -->|Rollout + PPO| G[RL Optimization]
  E -->|Score rollouts| G
  G -->|Converged| H[RLHF Model]
تعقيد PPO
يتطلب RLHF مع PPO أربعة نماذج في آن واحد: السياسة، وسياسة المرجع (نموذج SFT المُجمَّد)، ونموذج المكافأة، ونموذج القيمة. وهذا يجعل RLHF كثيف استهلاك الذاكرة ويصعب تثبيته على نحو سيئ السمعة. ويُعدّ اختراق المكافأة (حيث تجد السياسة طرقاً لتحقيق درجات عالية دون أن تكون جيدة فعلاً) تحدياً مستمراً. ولهذا أصبح DPO مُفضَّلاً على نطاق واسع.

المواءمة: DPO وGRPO

يلغي DPO (Direct Preference Optimization) (Rafailov et al. 2023) نموذج المكافأة بالكامل. وقد أثبت رياضياً أنه يمكن التعبير عن سياسة RLHF المثلى مباشرة كدالة في بيانات التفضيل، ما يختزل خط أنابيب من ثلاث مراحل إلى خطوة ضبط دقيق واحدة.

تُحسّن خسارة DPO السياسة مباشرة على أزواج التفضيل (prompt، chosen، rejected) باستخدام نموذج SFT كمرجع مُجمَّد. لا PPO، ولا نموذج مكافأة، ولا جمع منفصل لبيانات تدريب نموذج المكافأة.

DPO باستخدام DPOTrainer من trl

python
from trl import DPOConfig, DPOTrainer
from datasets import load_dataset

# Dataset needs: prompt, chosen, rejected columns
dataset = load_dataset("HuggingFaceH4/ultrafeedback_binarized", split="train_prefs")

dpo_config = DPOConfig(
    output_dir="./dpo-output",
    num_train_epochs=3,
    per_device_train_batch_size=2,
    gradient_accumulation_steps=8,
    learning_rate=5e-7,   # much smaller than SFT lr
    beta=0.1,             # KL penalty coefficient
    bf16=True,
)

trainer = DPOTrainer(
    model=sft_model,          # your SFT fine-tuned model
    ref_model=sft_ref_model,  # frozen reference
    args=dpo_config,
    train_dataset=dataset,
    processing_class=tokenizer,
)
trainer.train()

GRPO: نهج DeepSeek

تلغي Group Relative Policy Optimization (GRPO) (المستخدمة في DeepSeek-R1) نموذج المرجع. فلكل prompt، تأخذ عينات من مخرجات متعددة وتستخدم متوسط مكافأة المجموعة كخط أساس لتقدير الميزة. وهذا أرخص من PPO (لا نموذج قيمة) وأنسب لمهام الاستدلال التي يمكنك التحقق من صحتها برمجياً.

الميزة الأساسية لـ GRPO:
لا حاجة إلى نموذج مرجع + مكافآت نسبية للمجموعة = تدريب فعّال للمهام القابلة للتحقق (الرياضيات، الكود، المخرجات المُهيكلة).

مقارنة طرق المواءمة

الطريقةالحوسبةالاستقرارمتطلبات البياناتملاحظات
RLHF (PPO)عالية جداًمنخفضترتيبات بشرية4 نماذج في الذاكرة؛ خطر اختراق المكافأة
DPOمنخفضةعالٍأزواج تفضيللا نموذج مكافأة؛ خط أنابيب أبسط
GRPOمتوسطةمتوسطعينات rolloutلا نموذج مرجع؛ جيد للاستدلال
SimPOمنخفضةعالٍأزواج تفضيللا نموذج مرجع؛ مكافأة متوسط الاحتمال اللوغاريتمي

تقطير النماذج

يدرّب تقطير المعرفة نموذجاً صغيراً «طالباً» على محاكاة نموذج كبير «معلّم». والفكرة الأساسية هي أن المعلّم يوفّر توزيعات احتمالية ناعمة على المفردات (logits) بدلاً من تسميات one-hot. تُرمِّز هذه الأهداف الناعمة معلومات أكثر بكثير — فهي تكشف أي tokens تشبه دلالياً الإجابة الصحيحة، ما يمنح الطالب إشارة تدريب أغنى.

الخسارة المركّبة: L = α × L_CE(التسميات الصلبة) + (1 − α) × L_KL(‏logits الطالب ‖ logits المعلّم). يُنعِّم تحجيم الحرارة T > 1 توزيع المعلّم، موزّعاً كتلة الاحتمال على مزيد من tokens وجاعلاً التسميات الناعمة أكثر إفادة.

خط أنابيب التقطير

graph TB
  A["Large Teacher (70B)"] -->|"Generate on training data"| B[Soft Logits]
  C[Input Prompt] --> A
  C --> D["Small Student (7B)"]
  B -->|KL Loss| D
  E[Ground Truth] -->|CE Loss| D
  D -->|Both losses| F[Distilled Student]

تقطير الاستجابة

يحاكي الطالب مخرجات المعلّم — وَلِّد استكمالات المعلّم، ودرّب الطالب على إعادة إنتاجها. تستخدمه DeepSeek-R1-Distill لنقل آثار الاستدلال.

تقطير السمات

طابِق التمثيلات الوسيطة (الحالات المخفية، أنماط الانتباه) بين طبقات المعلّم والطالب. ينقل المعرفة البنيوية، لا مجرد المخرجات السطحية.

فك التشفير التخميني

يقترح نموذج مسودة صغير تسلسلات tokens؛ ويتحقق منها النموذج الكبير بالتوازي. يحقق تسريع استدلال بمقدار 2–4 أضعاف دون فقدان في الجودة.

التقطير on-policy

يولّد الطالب tokens؛ ويقيّمها المعلّم. يتجنّب انحياز التعرّض (عدم تطابق توزيع التدريب والاختبار) الشائع في التقطير غير المتصل.

أمثلة تقطير من العالم الواقعي
  • Phi-3 / Phi-4 (Microsoft): مُقطَّرة من GPT-4 على بيانات اصطناعية مُنتقاة
  • Gemma 2 (Google): مُقطَّر من Gemini Ultra؛ يضاهي نموذج 9B نماذج أكبر بكثير
  • DeepSeek-R1-Distill: آثار استدلال من R1 مُقطَّرة إلى نماذج Qwen2.5 بحجم 7B / 14B

دمج النماذج

يجمع دمج النماذج عدة نقاط تحقّق مضبوطة دقيقاً في نموذج واحد دون أي تدريب إضافي. وهو رخيص وسريع وفعّال على نحو مفاجئ في دمج مهارات متخصّصة — الكود والرياضيات واتباع التعليمات — في نموذج واحد قابل للنشر. وكثيراً ما تظهر النماذج المدموجة في صدارة HuggingFace Open LLM Leaderboard.

SLERPالاستيفاء الخطي الكروي

استيفاء سلس بين نقطتي تحقّق لنموذجين في فضاء الأوزان. يعامل الأوزان كنقاط على كرة فائقة الأبعاد. الأفضل لمزج نموذجين وثيقي الصلة.

Task Arithmeticجمع/طرح فروق الضبط الدقيق

احسب ΔW = W_FT − W_base لكل نموذج مضبوط دقيقاً، ثم اجمع الفروق معاً. يتيح لك تركيب القدرات أو طرح السلوكيات غير المرغوبة.

TIES-MergingTrim, Elect Signs, Merge

يحلّ التعارضات بين النماذج: قلّم المعاملات صغيرة المقدار، وانتخب الإشارة المهيمنة لكل وزن، ثم ادمج. يتعامل بنظافة مع 3 نماذج أو أكثر.

DAREDrop and Rescale

يُسقط فروق أوزان الضبط الدقيق عشوائياً (باحتمال p) ويعيد تحجيم الناجين للحفاظ على المعيار. يقلّل التداخل بين النماذج.

إعداد MergeKit‏ (TIES)

yaml
# mergekit config.yaml
models:
  - model: meta-llama/Llama-4-Scout-17B-16E
    parameters:
      weight: 0.4
  - model: ./llama-4-scout-code-finetuned
    parameters:
      weight: 0.3
  - model: ./llama-4-scout-math-finetuned
    parameters:
      weight: 0.3
merge_method: ties
base_model: meta-llama/Llama-4-Scout-17B-16E
parameters:
  density: 0.7
  normalize: true
bash
mergekit-yaml config.yaml ./merged-model --cuda
Frankenmerge (تكديس الطبقات)
تقنية أكثر جذرية: كدّس طبقات مختلفة من نقاط تحقّق نماذج مختلفة — مثلاً الطبقات 0–16 من النموذج A، والطبقات 17–32 من النموذج B. لا تتطلب تدريباً وقد تُنتج قدرات مفاجئة، لكنها تحتاج إلى تجريب لإيجاد تركيبات طبقات جيدة. يدعم MergeKit ذلك عبر طريقة الدمج passthrough.

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

جودة مجموعة البيانات هي العامل الأهم على الإطلاق في نجاح الضبط الدقيق — أهم من بنية النموذج أو مدة التدريب أو اختيار المُحسِّن. مجموعة بيانات سيئة التنسيق تضمن نتائج سيئة بصرف النظر عن أي شيء آخر.

مكتوبة بشرياًالأعلى
الأغلى

أمثلة من تأليف الخبراء؛ أعلى نسبة إشارة إلى ضوضاء. تُستخدم للسلوكيات الحرجة.

مُولَّدة بـ GPT-4 / Claudeعالية
معتدلة

توليد اصطناعي بنماذج رائدة. جيد لبدء تغطية المجال على نطاق واسع.

Evol-Instruct / Magpieجيدة
منخفضة

طوّر تعليمات أولية إلى متغيّرات أصعب وأكثر تنوعاً. تُستخدم في WizardLM وOpenHermes.

مُرشَّحة من الإنترنتمتغيّرة
الأرخص

تتطلب ترشيح جودة صارماً: إزالة التكرار، ومرشّح الطول، ومرشّح الحيرة (perplexity)، ومرشّح الأمان.

تنسيق بيانات ShareGPT

json
{
  "conversations": [
    {"from": "system", "value": "You are an expert in EU AI regulation."},
    {"from": "human", "value": "Explain the risk categories in the EU AI Act."},
    {"from": "gpt", "value": "The EU AI Act categorizes AI systems into four risk levels..."}
  ]
}

توليد البيانات الاصطناعية على نطاق واسع

python
from openai import OpenAI  # or use Mistral/Llama locally

client = OpenAI()

def generate_training_example(topic: str, difficulty: str) -> dict:
    prompt = (
        f"Generate a challenging {difficulty}-level question about {topic} "
        "and a comprehensive expert answer."
    )
    response = client.chat.completions.create(
        model="gpt-4o",
        messages=[{"role": "user", "content": prompt}],
        temperature=0.8,
    )
    content = response.choices[0].message.content
    # Parse and structure output (question/answer split)...
    return {"instruction": topic, "response": content}

التوزيع المُوصى به لتنوّع التعليمات

الإجابة عن الأسئلة
30%
الكتابة والتلخيص
20%
توليد الكود وتصحيح الأخطاء
20%
التحليل والاستدلال
15%
أخرى (ترجمة، استخراج، إلخ.)
15%
تلوّث البيانات
تلوّث مجموعة الاختبار هو المشكلة رقم 1 في تقييم الضبط الدقيق. إذا ظهر أي من اختبارات أداء التقييم لديك (MT-Bench وHumanEval وMMLU) في بيانات التدريب، فستكون درجاتك متضخّمة وبلا معنى. أجرِ دائماً فحوص تداخل n-gram بين مجموعة التدريب واختبارات أداء التقييم قبل التدريب.

التقييم والتكرار

حلقة الضبط الدقيق هي: تدريب → تقييم على مجموعة محجوزة → تشخيص أنماط الفشل → تحسين البيانات → إعادة التدريب. التقييم الجيد هو ما يحوّل التجربة والخطأ إلى تحسين منهجي.

MT-Bench

الجودة العامة

اختبار أداء متعدد الأدوار من 80 سؤالاً عبر 8 فئات (الكتابة، الرياضيات، البرمجة، إلخ.). يقيّم GPT-4 كل استجابة من 1–10.

AlpacaEval

اتباع التعليمات

معدل فوز نموذجك مقابل نموذج مرجعي (GPT-4o) كما يحكم به GPT-4o. تقييم آلي سريع لجودة اتباع التعليمات.

IFEval

الامتثال للتنسيق

دقة اتباع التعليمات على قيود قابلة للتحقق (مثلاً 'أجِب في أقل من 100 كلمة'). متغيّرات تقييم صارمة وفضفاضة.

HumanEval / MBPP

توليد الكود

اختبارات أداء توليد الكود. مقياس Pass@k: نسبة المسائل المحلولة في k محاولات. حالات اختبار قابلة للتنفيذ كمرجع للحقيقة.

نمط LLM-as-Judge

python
import json
from openai import OpenAI

client = OpenAI()

def evaluate_response(question: str, answer: str, judge_model: str = "gpt-4o") -> dict:
    prompt = f"""Rate the following AI assistant response on a scale of 1-10.

Question: {question}
Answer: {answer}

Evaluate: helpfulness (1-10), factuality (1-10), safety (1-10).
Return JSON: {{"helpfulness": N, "factuality": N, "safety": N, "rationale": "..."}}"""

    response = client.chat.completions.create(
        model=judge_model,
        messages=[{"role": "user", "content": prompt}],
        response_format={"type": "json_object"},
    )
    return json.loads(response.choices[0].message.content)
مزالق التقييم الشائعة
  • انحياز الطول: يميل حُكّام LLM إلى تفضيل الاستجابات الأطول بصرف النظر عن الجودة. عايِر حَكَمَك.
  • التملّق: تقيّم النماذج مخرجاتها هي أعلى. استخدم نموذجاً مختلفاً كحَكَم، أو تحققاً بشرياً.
  • التلوّث: بيانات اختبار الأداء في مجموعة التدريب تضخّم الدرجات. تحقّق دائماً من التداخل.
  • مزالق المقياس الواحد: تحسين مقياس واحد كثيراً ما يضرّ بغيره. تتبّع بطاقة أداء متوازنة.

قالب تتبّع التجارب

التشغيلالنموذج الأساسالطريقةمجموعة البياناتMT-BenchAlpacaEval Win%ملاحظات
v1Llama-4-ScoutSFTUltraChat 200K7.470%خط الأساس
v2Llama-4-ScoutSFT+DPO+ UltraFeedback8.076%‏+DPO حسّن الأمان
v3Llama-4-ScoutSFT+DPO (r=16)+ UltraFeedback8.177%LoRA r=16 مقابل الضبط الكامل

متى الضبط الدقيق مقابل RAG مقابل هندسة الـ prompt

الضبط الدقيق قوي لكنه ليس دائماً الأداة الصحيحة. يعتمد القرار على ما تحاول تغييره: المعرفة، أو السلوك، أو التنسيق، أو التفضيلات. الاختيار الخاطئ يكلّف أسابيع من الهندسة والحوسبة.

السيناريوأفضل نهجلماذا
تأصيل الإجابات في مستندات الشركةRAGقد تتغير المعرفة؛ ولا يُحدَّث الضبط الدقيق بسهولة
الرغبة في نبرة/أسلوب متّسقSFTالنبرة تنسيق، لا معرفة
استخدام مصطلحات خاصة بالمجالSFT + بيانات قليلةتغيير السلوك الافتراضي بتكلفة زهيدة
التعامل مع تنسيقات مخرجات محددةSFTالالتزام بالمخطط مهارة مُكتسَبة
تقليل المخرجات الضارةDPO / RLHFتستهدف مواءمة التفضيلات هذا مباشرة
الحاجة إلى قدرات استدلالGRPO أو التقطير من R1أنماط الاستدلال قابلة للتدريب
إضافة معرفة واقعية جديدةRAG (لا الضبط الدقيق)يحفظ الضبط الدقيق عن ظهر قلب ولا يمكنه الاستشهاد بالمصادر
تقليل تكاليف API على نطاق واسعضبط دقيق لنموذج صغيرمضاهاة جودة النموذج الكبير في مهمة ضيّقة
نموذج أوّلي / تجربة سريعةهندسة الـ prompt أولاًتكلفة تدريب صفرية؛ تحقّق من الفكرة أولاً

سلّم LLM

ابدأ من الأسفل. لا تصعد إلا عندما يكون المستوى الحالي غير كافٍ فعلاً — فكل درجة تضيف تكلفة وتعقيداً وكموناً.

1
هندسة الـ prompt
مجاني، فوري، تكلفة تدريب صفرية
2
أمثلة few-shot
أضف أمثلة في السياق
3
RAG
أصِّل الإجابات في مستندات مُسترجَعة
4
SFT
علّم التنسيق والأسلوب ومعرفة المجال
5
DPO / RLHF
واءِم مع التفضيلات والأمان
6
التقطير
اضغط إلى نموذج صغير خاص بمهمة

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

  • نبرة/تنسيق متّسق على نطاق واسع
  • يجب أن تكون مصطلحات المجال افتراضية
  • مطلوب مخطط مخرجات محدد
  • تقليل تكاليف API في مهمة ضيّقة
  • الحاجة إلى مواءمة التفضيلات/الأمان

استخدم RAG عندما

  • تتغير المعرفة بشكل متكرر
  • تحتاج الإجابات إلى استشهادات/مصادر
  • قاعدة معرفة خاصة/مملوكة
  • مجموعة مستندات كبيرة (>1M tokens)
  • الحاجة إلى التحديث دون إعادة تدريب

تجنّب الضبط الدقيق عندما

  • إضافة معرفة واقعية جديدة (استخدم RAG)
  • مرحلة نموذج أوّلي سريع أو إثبات مفهوم
  • مجموعة بيانات صغيرة جداً (<100 مثال)
  • عدم توفّر ميزانية GPU
  • الـ prompting يحقق الهدف بالفعل
هل أنت مستعد للضبط الدقيق؟

ابنِ نموذج الذكاء الاصطناعي المخصّص الخاص بك

سواء كنت بحاجة إلى مساعد خاص بمجال، أو نماذج مُواءَمة مع التفضيلات، أو عمليات نشر إنتاجية مُقطَّرة — فقد بناها فريقنا وأطلقها. لنتحدث عن حالة استخدامك.

مزيد من الأدلة
دليل مهارات الذكاء الاصطناعي والضبط الدقيق: SFT وLoRA وRLHF وDPO وتقطير النماذج | Hyperion Consulting