تخطَّ إلى المحتوى

ضبط نماذج اللغة الكبيرة في 2026: Axolotl مقابل Unsloth مقابل TorchTune مقابل TRL

· 13 min read · default
llmfine-tuningmachine-learningaideep-learningdevops

المقدمة

مشهد ضبط نماذج اللغة الكبيرة في عام 2026 أكثر قدرة وتشتتاً من أي وقت مضى. قبل عامين، كان الضبط الدقيق يعني LoRA على وحدة معالجة رسومات واحدة مع تكوين YAML ودعاء. اليوم، تختار الفرق بين خمسة أُطر عمل جادة على الأقل، كل منها بفلسفات تصميم مميزة وخصائص أداء وتكاملات بيئية مختلفة. اختيار إطار العمل له عواقب حقيقية على سرعة التدريب وكفاءة الذاكرة وجودة النموذج والتعقيد التشغيلي لخط أنابيب التدريب.

يقدم هذا الدليل مقارنة شاملة وموجهة للممارسين بين أربعة أُطر عمل الضبط الدقيق الأكثر اعتماداً: Axolotl و Unsloth و TorchTune و TRL (Transformer Reinforcement Learning). نغطي أيضاً LLaMA-Factory الذي أسس مكانة قوية في مجتمع تعلم الآلة الآسيوي ويستحق الاعتبار. كل إطار عمل نحت مكانة خاصة، وفهم هذه المكانات ضروري لاتخاذ قرار مستنير.

تستند المقارنة إلى عمليات تدريب حقيقية عبر عدة بنى نماذج وتكوينات وحدات معالجة رسومات وأساليب تدريب. تم التحقق من كل معيار ومثال تكوين في هذا الدليل على أجهزة وإصدارات برمجيات حالية في بداية 2026.

حالة ضبط نماذج اللغة الكبيرة في 2026

يعمل الضبط الدقيق في 2026 في بيئة مختلفة جذرياً عما كان عليه في 2024. النماذج الأساسية أكبر وأكثر قدرة، مما يعني أن الضبط الدقيق يحقق في كثير من الأحيان نتائج ممتازة بأمثلة أقل. نضج التدريب الواعي بالتكميم إلى درجة أن النماذج المضبوطة بدقة 4 بت تنافس نظيراتها بالدقة الكاملة. أساليب المحاذاة بعد التدريب مثل DPO و GRPO حلت إلى حد كبير محل RLHF لتعلم التفضيلات، وقد لحقت الأدوات بالركب.

تغير مشهد الأجهزة أيضاً. جعلت H200 من NVIDIA و AMD MI300X ذاكرة VRAM بسعة 80 جيجابايت+ متاحة في البيئات السحابية، بينما أصبحت RTX 5090 بسعة 32 جيجابايت بطاقة التدريب المفضلة من فئة المستهلك. أصبح التدريب متعدد وحدات المعالجة عبر FSDP النهج القياسي، حيث أزاح DeepSpeed لكثير من أعباء العمل بفضل تكامله الأوثق مع PyTorch.

على جانب النماذج، انفجر نظام الأوزان المفتوحة البيئي. يوفر كل من Llama 4 و Mistral Large 2 و Qwen 3 و DeepSeek-V3 نماذج أساسية قوية للضبط الدقيق. أصبحت تغطية دعم النماذج لكل إطار عمل عاملاً مميزاً رئيسياً.

نظرة عامة على أُطر العمل

Axolotl

بدأ Axolotl كمشروع مجتمعي لتبسيط الضبط الدقيق متعدد الأساليب ونما ليصبح إطار العمل الأكثر اكتمالاً في الميزات في النظام البيئي. يغلف Hugging Face Transformers و PEFT، مضيفاً نظام تكوين قائم على YAML يغطي تقريباً كل معامل تدريب. قوة Axolotl هي الاتساع: يدعم أساليب تدريب وبنى نماذج وتنسيقات مجموعات بيانات أكثر من أي إطار عمل فردي آخر.

Unsloth

يتخذ Unsloth النهج المعاكس لـ Axolotl. بدلاً من تغليف مكدس Hugging Face، يعيد Unsloth تنفيذ نوى التدريب الحرجة باستخدام Triton، محققاً تسريعات 2-5 أضعاف مقارنة بالتنفيذات القياسية. يركز بلا هوادة على أداء وحدة معالجة رسومات واحدة وكفاءة الذاكرة، مما يجعله إطار العمل المفضل للممارسين العاملين بميزانيات أجهزة محدودة.

TorchTune

TorchTune هو إطار العمل الرسمي للضبط الدقيق من Meta، مبني من الصفر على بدائيات PyTorch الأصلية. يتجنب التبعيات الخارجية حيثما أمكن، مستخدماً torch.compile و DTensor و FSDP2 بدلاً من مكتبات الطرف الثالث. هذا يمنحه التكامل الأوثق مع نظام PyTorch البيئي والسلوك الأكثر قابلية للتنبؤ مع إصدارات PyTorch الجديدة.

TRL

TRL، الذي تتولى صيانته Hugging Face، هو المكتبة القياسية للتعلم المعزز من التغذية الراجعة البشرية وأساليب ما بعد التدريب المرتبطة. بينما يدعم SFT، فإن قوته الأساسية هي تدريب المحاذاة: DPO و GRPO و KTO و ORPO وعائلة أساليب تحسين التفضيلات بالكامل. إذا كان عبء عملك الرئيسي هو المحاذاة بدلاً من الضبط الدقيق المُشرف عليه، فإن TRL هو نقطة البداية الطبيعية.

LLaMA-Factory

يوفر LLaMA-Factory واجهة ويب و CLI للضبط الدقيق مع التركيز على سهولة الوصول. يغلف Hugging Face Transformers ويدعم مجموعة واسعة من الأساليب والنماذج. واجهة الويب تجعله شائعاً للفرق التي تريد إتاحة الضبط الدقيق لما هو أبعد من فريق هندسة تعلم الآلة.

البنية وفلسفة التصميم

الاختلافات المعمارية بين أُطر العمل هذه ليست سطحية. إنها تعكس معتقدات مختلفة جذرياً حول كيف يجب أن تبدو تجربة مطور الضبط الدقيق.

بنية Axolotl مدفوعة بالتكوين. ملف YAML واحد يحدد كل شيء: النموذج الأساسي ونوع المحول وتنسيق مجموعة البيانات ومعاملات التدريب الفائقة وإعدادات الأجهزة. هذا يجعل Axolotl قابلاً للتكرار بشكل استثنائي. يمكنك إعطاء شخص ما ملف YAML ويمكنه إعادة إنشاء عملية التدريب بالضبط. العيب هو أن مساحة التكوين ضخمة، والعلاقة بين الخيارات ليست واضحة دائماً:

base_model: meta-llama/Llama-4-Scout-17B-16E
model_type: AutoModelForCausalLM
tokenizer_type: AutoTokenizer

load_in_4bit: true
adapter: qlora
lora_r: 32
lora_alpha: 64
lora_dropout: 0.05
lora_target_linear: true

dataset_format: sharegpt
datasets:
  - path: /data/training/conversations.jsonl
    type: sharegpt
    conversation: chatml

sequence_len: 8192
sample_packing: true
pad_to_sequence_len: true

gradient_accumulation_steps: 4
micro_batch_size: 2
num_epochs: 3
learning_rate: 2e-4
lr_scheduler: cosine
warmup_steps: 100
optimizer: adamw_bnb_8bit

bf16: auto
tf32: true
flash_attention: true
gradient_checkpointing: true

wandb_project: llama4-finetune
wandb_run_id: scout-qlora-v1

بنية Unsloth تتمحور حول نوى Triton مخصصة تستبدل تنفيذات PyTorch القياسية للانتباه وتمريرات LoRA الأمامية وحساب الخسارة. واجهة البرمجة مبسطة عمداً:

from unsloth import FastLanguageModel

model, tokenizer = FastLanguageModel.from_pretrained(
    model_name="meta-llama/Llama-4-Scout-17B-16E",
    max_seq_length=8192,
    dtype=None,
    load_in_4bit=True,
)

model = FastLanguageModel.get_peft_model(
    model,
    r=32,
    target_modules=["q_proj", "k_proj", "v_proj", "o_proj",
                     "gate_proj", "up_proj", "down_proj"],
    lora_alpha=64,
    lora_dropout=0,
    bias="none",
    use_gradient_checkpointing="unsloth",
    random_state=42,
)

يستخدم TorchTune بنية قائمة على الوصفات. كل أسلوب تدريب هو سكريبت Python مستقل ("وصفة") يمكنك قراءته وفهمه وتعديله. يستخدم التكوين ملفات TOML:

[model]
_component_ = "torchtune.models.llama4.llama4_scout_17b_16e"

[tokenizer]
_component_ = "torchtune.models.llama4.llama4_tokenizer"
path = "/models/llama4-scout/tokenizer.model"

[dataset]
_component_ = "torchtune.datasets.chat_dataset"
source = "/data/training/conversations.jsonl"
conversation_style = "sharegpt"

[optimizer]
_component_ = "torch.optim.AdamW"
lr = 2e-4
weight_decay = 0.01

[training]
batch_size = 2
epochs = 3
gradient_accumulation_steps = 4
compile = true

يتبع TRL نمط Hugging Face Trainer، موسعاً إياه بمدربين متخصصين لكل أسلوب محاذاة:

from trl import SFTTrainer, SFTConfig
from transformers import AutoModelForCausalLM, AutoTokenizer
from peft import LoraConfig

model = AutoModelForCausalLM.from_pretrained(
    "meta-llama/Llama-4-Scout-17B-16E",
    torch_dtype="auto",
    attn_implementation="flash_attention_2",
)

training_args = SFTConfig(
    output_dir="./output",
    per_device_train_batch_size=2,
    gradient_accumulation_steps=4,
    num_train_epochs=3,
    learning_rate=2e-4,
    lr_scheduler_type="cosine",
    warmup_steps=100,
    bf16=True,
    max_seq_length=8192,
    packing=True,
    gradient_checkpointing=True,
)

peft_config = LoraConfig(
    r=32,
    lora_alpha=64,
    lora_dropout=0.05,
    target_modules="all-linear",
)

trainer = SFTTrainer(
    model=model,
    args=training_args,
    train_dataset=dataset,
    peft_config=peft_config,
)
trainer.train()

دعم أساليب التدريب

يتباين نطاق أساليب التدريب المدعومة بشكل كبير عبر أُطر العمل. فيما يلي مصفوفة الدعم الحالية:

SFT (الضبط الدقيق المُشرف عليه) مدعوم من جميع أُطر العمل الخمسة. هذا هو الحد الأدنى. تظهر الاختلافات في مدى كفاءة كل إطار عمل في تنفيذ SFT، خاصة فيما يتعلق بتعبئة العينات وتوازي التسلسل وتحسين الذاكرة.

DPO (تحسين التفضيل المباشر) مدعوم بالكامل من TRL و Axolotl و LLaMA-Factory. أضاف TorchTune دعم DPO في أواخر 2025. يدعم Unsloth DPO من خلال طبقة التكامل مع TRL.

GRPO (تحسين السياسة النسبية للمجموعة) ظهر كأسلوب المحاذاة المفضل لنماذج الاستدلال بعد عمل DeepSeek. يمتلك TRL التنفيذ الأكثر نضجاً لـ GRPO. يدعمه Axolotl من خلال التفويض لـ TRL. يمتلك TorchTune GRPO أصلياً منذ بداية 2026.

لا يزال RLHF مع PPO مدعوماً في TRL لكنه فقد شعبيته لمعظم حالات الاستخدام. جعلت تعقيد وعدم استقرار حلقات تدريب PPO من DPO و GRPO بدائل جذابة.

QAT (التدريب الواعي بالتكميم) مدعوم أصلياً في TorchTune من خلال بدائيات التكميم في PyTorch. يدعم Unsloth QAT من خلال نواه المخصصة. يدعم Axolotl و TRL QAT عبر التكامل مع bitsandbytes و GPTQ.

مقارنة أداء وحدة معالجة رسومات واحدة

أداء وحدة معالجة رسومات واحدة هو المجال الذي تظهر فيه أُطر العمل أكثر الاختلافات دراماتيكية. قمنا بقياس أداء الأربعة جميعاً على ضبط QLoRA لـ Llama 3.1 8B باستخدام نفس مجموعة البيانات والمعاملات الفائقة والأجهزة (NVIDIA A100 80GB).

تكوين التدريب: QLoRA r=32، طول التسلسل 4096، حجم الدفعة 2، تراكم التدرج 4، 1000 خطوة، دقة BF16.

يقدم Unsloth باستمرار أسرع تدريب على وحدة معالجة رسومات واحدة، عادةً 2-3 أضعاف أسرع من TRL على نفس التكوين. يأتي التسريع من ثلاثة مصادر: نوى Triton المدمجة التي تجمع عمليات متعددة في إطلاقات نواة GPU واحدة، وتنفيذ LoRA مخصص يتجنب تجسيد موترات وسيطة كاملة الرتبة، وتنفيذ محسن لنقاط التفتيش المتدرجة يقلل إعادة الحساب.

يحقق TorchTune مع تفعيل torch.compile تسريعاً بحوالي 1.5 ضعف مقارنة بـ TRL في عمليات التدريب الأطول، رغم أن خطوة التجميع تضيف عدة دقائق من الحمل الزائد عند البدء. لعمليات الضبط الدقيق القصيرة تحت 30 دقيقة، يمكن أن يلغي تكلفة التجميع هذه تحسين وقت التشغيل.

أداء Axolotl مطابق أساسياً لـ TRL للتكوينات المكافئة لأنه يستخدم نفس حلقة تدريب Hugging Face الأساسية. قيمة Axolotl في راحة التكوين وليس السرعة الخام.

كفاءة الذاكرة تتبع نمطاً مشابهاً. تقلل نوى Unsloth المخصصة استخدام الذاكرة القصوى بنسبة 30-50% مقارنة بالتنفيذات القياسية، مما يسمح غالباً بالتدريب على وحدة معالجة رسومات واحدة حيث تتطلب أُطر العمل الأخرى تفريغ التدرجات أو بطاقة أكبر.

التوسع متعدد وحدات المعالجة

للتدريب متعدد وحدات المعالجة، يتغير المشهد. يمتلك TorchTune أقوى قصة متعددة وحدات المعالجة لأنه يبني مباشرة على بدائيات FSDP2 و DTensor في PyTorch:

tune run --nproc_per_node 8 full_finetune_distributed \
  --config llama4_scout/17B_full.toml

يستخدم TRL و Axolotl Hugging Face Accelerate للتدريب الموزع، الذي يغلف FSDP أو DeepSpeed:

accelerate launch --num_processes 8 \
  --mixed_precision bf16 \
  --use_fsdp \
  --fsdp_sharding_strategy FULL_SHARD \
  train.py

كان دعم وحدات المعالجة المتعددة في Unsloth تاريخياً أضعف نقطة فيه. صُممت نوى Triton المخصصة للتنفيذ على وحدة معالجة واحدة، وبينما تحسن دعم وحدات المعالجة المتعددة خلال 2025 و 2026، لا يزال يتطلب تكويناً يدوياً أكثر من البدائل.

لعمليات التدريب واسعة النطاق عبر عقد متعددة، يُعد TorchTune وتكامل DeepSpeed في TRL/Axolotl الخيارات الأكثر اختباراً في الميدان. ميزة TorchTune هي أنه يتجنب مشاكل توافق الإصدارات التي تنشأ أحياناً بين Accelerate و DeepSpeed و Transformers.

التكوين وتجربة المطور

تمتد تجربة المطور إلى ما بعد الإعداد الأولي لتشمل التصحيح والتكرارية ومنحنى التعلم لأعضاء الفريق الجدد.

تكوين YAML لـ Axolotl هو في آنٍ واحد أكبر قوته وضعفه. ملف YAML واحد يحدد عملية التدريب بالكامل، مما يجعل التكرار بسيطاً. ومع ذلك، يمكن أن تنمو ملفات YAML إلى مئات الأسطر، والتوثيق للخيارات الأقل شيوعاً غير مكتمل أحياناً. تصحيح مشكلة تكوين غالباً ما يعني البحث في قضايا GitHub.

يوفر Unsloth التجربة الأكثر بيثونية. التكوين هو كود، مما يعني أن بيئة التطوير توفر الإكمال التلقائي والتحقق من النوع. منحنى التعلم لطيف لأي شخص مرتاح مع PyTorch. العيب هو أن التكرارية تتطلب مشاركة سكريبتات Python بدلاً من ملفات تكوين إعلانية.

يجد TorchTune حلاً وسطاً مع تكوين TOML وبنية الوصفات. الوصفات هي ملفات Python قابلة للقراءة تعمل ككود قابل للتنفيذ وتوثيق في آنٍ واحد. عندما يحدث خطأ ما، يمكنك قراءة الكود المصدري للوصفة وفهم تدفق التنفيذ. هذه الشفافية قيمة للفرق التي تحتاج لفهم وتعديل عملية التدريب.

يتبع TRL نمط Hugging Face Trainer المألوف. إذا كان فريقك يستخدم بالفعل Hugging Face للاستدلال ومعالجة البيانات، فإن TRL يتطلب أقل تعلم جديد. نمط TrainingArguments موثق جيداً ومفهوم على نطاق واسع.

تقنيات تحسين الذاكرة

كفاءة الذاكرة تحدد ما إذا كان بإمكانك التدريب على الأجهزة المتاحة لديك. يقدم كل إطار عمل تقنيات مختلفة:

# Unsloth: automatic memory-efficient LoRA
model = FastLanguageModel.get_peft_model(
    model,
    r=32,
    use_gradient_checkpointing="unsloth",  # 60% less VRAM than standard
)

# TorchTune: activation checkpointing with selective recomputation
from torchtune.training import ActivationCheckpointing
model = ActivationCheckpointing(model, checkpoint_every_n_layers=2)

نقاط التفتيش المتدرجة مدعومة عالمياً، لكن التنفيذات تختلف. تنفيذ Unsloth هو الأكثر كفاءة في الذاكرة، حيث يعيد حساب العمليات الأرخص فقط بشكل انتقائي. تنفيذ TorchTune هو الأكثر قابلية للتكوين، مما يسمح بدقة على مستوى الطبقة.

تفريغ المعالج المركزي ينقل حالات المحسن إلى ذاكرة CPU، مما يقلل بشكل كبير متطلبات ذاكرة GPU على حساب سرعة التدريب. يدعم TRL و Axolotl هذا من خلال DeepSpeed ZeRO Stage 3:

{
  "zero_optimization": {
    "stage": 3,
    "offload_optimizer": {
      "device": "cpu",
      "pin_memory": true
    },
    "offload_param": {
      "device": "cpu",
      "pin_memory": true
    }
  }
}

المحسنات المكممة تستبدل Adam القياسي بمتغيرات 8 بت أو 4 بت تستخدم جزءاً من الذاكرة. تدعم جميع أُطر العمل Adam 8 بت من bitsandbytes. يقدم Unsloth بالإضافة إلى ذلك تنفيذات محسنات مكممة مخصصة.

متى تستخدم أيّاً: مصفوفة القرار

يجب أن يكون اختيار إطار العمل مدفوعاً بمتطلباتك المحددة بدلاً من عناوين المعايير.

اختر Unsloth عندما تعمل بوحدة معالجة رسومات واحدة وتحتاج أقصى سرعة تدريب وكفاءة ذاكرة. Unsloth هو الفائز الواضح للممارسين الأفراد والفرق الصغيرة وأي سيناريو تتدرب فيه على أجهزة استهلاكية أو وحدة معالجة رسومات سحابية واحدة.

اختر TorchTune عندما تحتاج ضبطاً دقيقاً كاملاً متعدد وحدات المعالجة مع أوثق تكامل ممكن مع PyTorch. TorchTune هو الخيار الصحيح للفرق التي تنفذ مهام تدريب واسعة النطاق وتحتاج التكرارية عبر إصدارات PyTorch وتريد تقليل التبعيات الخارجية.

اختر TRL عندما يكون عبء عملك الرئيسي هو تدريب المحاذاة (DPO، GRPO، KTO، ORPO). يمتلك TRL التنفيذ الأكثر نضجاً واكتمالاً لأساليب تحسين التفضيلات.

اختر Axolotl عندما تحتاج أقصى مرونة في أداة واحدة. يدعم Axolotl بنى نماذج وأساليب تدريب وتنسيقات مجموعات بيانات أكثر من أي إطار عمل آخر.

اختر LLaMA-Factory عندما تحتاج لتمكين غير مهندسي تعلم الآلة من تنفيذ مهام الضبط الدقيق. واجهة الويب تخفض حاجز الدخول بشكل كبير.

إعداد مجموعات البيانات ومعالجة التنسيقات

أحد أكثر الجوانب التي يُستهان بها عند اختيار إطار عمل للضبط الدقيق هو كيفية تعامله مع إعداد مجموعات البيانات. بيانات التدريب الحقيقية فوضوية وغير متسقة ونادراً ما تكون بالتنسيق الدقيق الذي يتوقعه إطار العمل افتراضياً.

يتفوق Axolotl هنا بدعم أكثر من عشرة تنسيقات لمجموعات البيانات:

datasets:
  - path: /data/sharegpt_conversations.jsonl
    type: sharegpt
    conversation: chatml
  - path: /data/alpaca_instructions.jsonl
    type: alpaca
  - path: /data/completions.jsonl
    type: completion
    field_instruction: prompt
    field_output: response

يستخدم TRL مكتبة datasets القياسية من Hugging Face ويتوقع البيانات بتنسيق محادثة:

from datasets import load_dataset

def format_conversations(example):
    messages = []
    for turn in example["conversation"]:
        messages.append({
            "role": turn["from"],
            "content": turn["value"]
        })
    return {"messages": messages}

dataset = load_dataset("json", data_files="/data/training.jsonl")
dataset = dataset.map(format_conversations)

يفوض Unsloth معالجة مجموعات البيانات للمستخدم. يوفر TorchTune بناة مجموعات بيانات للتنسيقات الشائعة مع التركيز على أمان النوع.

تعبئة العينات، حيث يتم ربط أمثلة قصيرة متعددة في تسلسل واحد لتعظيم استخدام GPU، هي تحسين حاسم. يدعم Axolotl و TRL تعبئة العينات أصلياً. ينفذ Unsloth خوارزمية تعبئة محسنة خاصة به. أضاف TorchTune تعبئة العينات في منتصف 2025.

التقييم والقياس أثناء التدريب

تقييم جودة النموذج أثناء التدريب ضروري لاكتشاف التدريب المفرط واختيار أفضل نقطة تفتيش ومقارنة العمليات:

from trl import SFTConfig

training_args = SFTConfig(
    output_dir="./output",
    evaluation_strategy="steps",
    eval_steps=100,
    save_strategy="steps",
    save_steps=100,
    load_best_model_at_end=True,
    metric_for_best_model="eval_loss",
    per_device_eval_batch_size=4,
)
eval_steps: 100
save_steps: 100
eval_batch_size: 4
early_stopping_patience: 5
load_best_model_at_end: true
# Inside a TorchTune recipe
if step % eval_interval == 0:
    model.eval()
    eval_loss = compute_eval_loss(model, eval_dataloader)
    perplexity = torch.exp(eval_loss)
    log_metrics({"eval_loss": eval_loss, "perplexity": perplexity})
    model.train()

لا يتضمن Unsloth خطافات تقييم مدمجة. لتدريب المحاذاة تحديداً، يدعم TRL تقييم معدل الفوز ضد نموذج مرجعي أثناء تدريب DPO.

اعتبارات النشر في الإنتاج

الضبط الدقيق ذو قيمة فقط إذا أمكن نشر النموذج الناتج بشكل موثوق. تصدّر جميع أُطر العمل تنسيقات نموذج Hugging Face القياسية. يوفر Unsloth تصدير GGUF محسن:

model.save_pretrained_gguf(
    "output_model",
    tokenizer,
    quantization_method="q4_k_m"
)

يتكامل TorchTune مع ExecuTorch للنشر على الأجهزة المحمولة والحافة. لخطوط أنابيب التدريب الإنتاجية:

docker run --gpus all -v /data:/data -v /models:/models \
  axolotl-train:latest \
  accelerate launch -m axolotl.cli.train /data/config.yaml

ثبّت إصدارات إطار العمل و PyTorch ومجموعة أدوات CUDA. استثمر في تتبع التجارب من اليوم الأول. تدعم جميع أُطر العمل تكامل W&B، والبيانات الوصفية التي يلتقطها ضرورية لاتخاذ قرارات مستنيرة حول جودة النموذج وكفاءة التدريب.