إنتقل إلى المحتوى الرئيسي

الفصل 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تناقص متعدد الحدودالتدريب الأطول

إرشادات المعاملات الفائقة​

المعاملLoRAQLoRA
معدل التعلم1e-4 إلى 5e-41e-4 إلى 2e-4
العصور1-51-3
حجم الدفعة (الفعلي)8-328-16
التسخين3-10%3-5%

استكشاف الأخطاء وإصلاحها​

المشكلةالحل
الخسارة لا تنخفضزيادة معدل التعلم
خسارة NaNتقليل LR، تمكين قطع التدرج
خطأ OOMتقليل حجم الدفعة، تمكين التحقق من النقاط
الإفراط في التخصيصالتوقف المبكر، المزيد من البيانات، التنظيم

الانتقال إلى الاختبار →