الفصل 3: معاملات التدريب والتحسين
تحسين تكوين التدريب الخاص بك
المعاملات التدريبية المثلى ضرورية لضبط النماذج بنجاح.
TrainingArguments كاملة
from transformers import TrainingArguments
training_args = TrainingArguments(
# Output
output_dir="./results",
overwrite_output_dir=True,
# Training duration
num_train_epochs=3,
max_steps=-1, # -1 means use epochs
# Batch size
per_device_train_batch_size=4,
per_device_eval_batch_size=4,
gradient_accumulation_steps=4,
# Learning rate
learning_rate=2e-4,
lr_scheduler_type="cosine",
warmup_ratio=0.03,
weight_decay=0.01,
# Precision
bf16=True,
# Memory optimization
gradient_checkpointing=True,
optim="paged_adamw_8bit",
# Logging
logging_steps=10,
logging_first_step=True,
# Saving
save_strategy="epoch",
save_total_limit=2,
# Evaluation
evaluation_strategy="epoch",
load_best_model_at_end=True,
# Other
seed=42,
dataloader_num_workers=4,
)
جداول معدلات التعلم
| الجدول | السلوك | الأفضل لـ |
|---|---|---|
linear | تناقص خطي | المهام البسيطة |
cosine | تناقص جيبي | معظم عمليات الضبط |
constant | بدون تناقص | التدريب القصير جداً |
polynomial | تناقص متعدد الحدود | التدريب الأطول |
إرشادات المعاملات الفائقة
| المعامل | LoRA | QLoRA |
|---|---|---|
| معدل التعلم | 1e-4 إلى 5e-4 | 1e-4 إلى 2e-4 |
| العصور | 1-5 | 1-3 |
| حجم الدفعة (الفعلي) | 8-32 | 8-16 |
| التسخين | 3-10% | 3-5% |
استكشاف الأخطاء وإصلاحها
| المشكلة | الحل |
|---|---|
| الخسارة لا تنخفض | زيادة معدل التعلم |
| خسارة NaN | تقليل LR، تمكين قطع التدرج |
| خطأ OOM | تقليل حجم الدفعة، تمكين التحقق من النقاط |
| الإفراط في التخصيص | التوقف المبكر، المزيد من البيانات، التنظيم |