وصفة تدريب YOLO26
مقدمة
يوثق هذا الدليل بالضبط تدريب الوصفة المستخدمة في إعداد النسخة الرسمية YOLO26 نقاط تفتيش مُدرَّبة مسبقًا على COCO. كل المعلمة الفائقة ما يظهر هنا مدمج بالفعل في الإصدار .pt القيم ويمكن فحصها برمجياً.
إن فهم كيفية تدريب النماذج الأساسية يساعدك على اتخاذ قرارات أفضل عند إجراء الضبط الدقيق: أي عمليات توسيع البيانات يجب الاحتفاظ بها، وأي أوزان لدالة الخسارة يجب تعديلها، وما هي إعدادات المُحسِّن التي تناسب حجم مجموعة البيانات لديك بشكل أفضل.
لمن هذا الدليل؟
هذا الدليل موجه للممارسين الذين يرغبون في فهم العناصر التي شكلت نقاط التفتيش الرسمية في YOLO26 — ليس فقط البنية، بل أيضًا جداول معدلات التعلم ، ومسارات التوسيع، وأوزان الخسارة التي أثرت على أدائها. استخدم هذه المعلومات لاتخاذ قرارات مستنيرة عند إجراء الضبط الدقيق على بياناتك الخاصة.
فحص معلمات التدريب
يحتفظ كل Ultralytics بإعدادات التدريب الكاملة التي استُخدمت لإنشائها. يمكنك الاطلاع على هذه الإعدادات في أي وقت:
فحص معلمات تدريب نقاط التفتيش
from ultralytics import YOLO
model = YOLO("yolo26n.pt")
print(model.ckpt["train_args"])
import torch
# Load any official checkpoint
ckpt = torch.load("yolo26n.pt", map_location="cpu", weights_only=False)
# Print all training arguments
for k, v in sorted(ckpt["train_args"].items()):
print(f"{k}: {v}")
هذا ينطبق على أي .pt نقطة التحقق — الإصدارات الرسمية والنماذج الخاصة بك التي تم ضبطها بدقة على حد سواء. للاطلاع على القائمة الكاملة لوسائط التدريب القابلة للتكوين، راجع مرجع إعدادات التدريب.
نظرة عامة على التدريب
تم تدريب جميع نماذج YOLO26 الأساسية على COCO بدقة 640x640 باستخدام مُحسِّن MuSGD مع حجم دفعة 128. تم تهيئة النماذج من أوزان مُدربة مسبقًا وسيطة وتم تحسينها باستخدام معلمات فائقة تم العثور عليها عبر البحث التطوري. سجلات التدريب الكاملة والمقاييس لكل حجم نموذج متاحة على منصة Ultralytics:
الخيارات التصميمية الرئيسية في جميع الأحجام:
- تدريب شامل (
end2end=True) مع رأس واحد لواحد خالٍ من NMS - مُحسِّن MuSGD الذي يجمع بين SGD والتحديثات المتعامدة على غرار Muon لأوزان الالتفاف (conv weights)
- تكبير الفسيفساء بكثافة (احتمالية ~0.9-1.0) معطلة في آخر 10 حقب (
close_mosaic=10) - توسيع النطاق القوي (0.56-0.95) للتعامل مع الأجسام بأحجام مختلفة
- الحد الأدنى من الدوران/القص لمعظم الأحجام، مع الحفاظ على تشوه هندسي منخفض
المعلمات الفائقة حسب حجم النموذج
المُحسِّن ومعدل التعلم
| إعداد | ن | S | م | L | X |
|---|---|---|---|---|---|
optimizer | MuSGD | MuSGD | MuSGD | MuSGD | MuSGD |
lr0 | 0.0054 | 0.00038 | 0.00038 | 0.00038 | 0.00038 |
lrf | 0.0495 | 0.882 | 0.882 | 0.882 | 0.882 |
momentum | 0.947 | 0.948 | 0.948 | 0.948 | 0.948 |
weight_decay | 0.00064 | 0.00027 | 0.00027 | 0.00027 | 0.00027 |
warmup_epochs | 0.98 | 0.99 | 0.99 | 0.99 | 0.99 |
epochs | 245 | 70 | 80 | 60 | 40 |
batch | 128 | 128 | 128 | 128 | 128 |
imgsz | 640 | 640 | 640 | 640 | 640 |
استراتيجية معدل التعلم
استخدم نموذج N معدل تعلم أولي أعلى مع انخفاض حاد (lrf=0.0495، بينما استخدمت نماذج S/M/L/X معدل تعلم أولي أقل بكثير مع جدول زمني أكثر اعتدالًا (lrf=0.882). يعكس هذا ديناميكيات التقارب المختلفة للنماذج الأصغر مقابل الأكبر — فالنماذج الأصغر تحتاج إلى تحديثات أكثر قوة للتعلم بفعالية.
أوزان الخسارة
| إعداد | ن | S | م | L | X |
|---|---|---|---|---|---|
box | 5.63 | 9.83 | 9.83 | 9.83 | 9.83 |
cls | 0.56 | 0.65 | 0.65 | 0.65 | 0.65 |
dfl | 9.04 | 0.96 | 0.96 | 0.96 | 0.96 |
يعطي النموذج N الأولوية لخسارة DFL، بينما تركز النماذج S/M/L/X على انحدار الصندوق المحيط. وتبقى خسارة التصنيف ثابتة نسبيًا عبر جميع الأحجام.
خط أنابيب التعزيز
للاطلاع على شرح مفصل لكل تقنية، راجع دليل تعزيزYOLO .
| إعداد | ن | S | م | L | X |
|---|---|---|---|---|---|
mosaic | 0.909 | 0.992 | 0.992 | 0.992 | 0.992 |
mixup | 0.012 | 0.05 | 0.427 | 0.427 | 0.427 |
copy_paste | 0.075 | 0.404 | 0.304 | 0.404 | 0.404 |
scale | 0.562 | 0.9 | 0.95 | 0.95 | 0.95 |
fliplr | 0.606 | 0.304 | 0.304 | 0.304 | 0.304 |
degrees | 1.11 | ~0 | ~0 | ~0 | ~0 |
shear | 1.46 | ~0 | ~0 | ~0 | ~0 |
translate | 0.071 | 0.275 | 0.275 | 0.275 | 0.275 |
hsv_h | 0.014 | 0.013 | 0.013 | 0.013 | 0.013 |
hsv_s | 0.645 | 0.353 | 0.353 | 0.353 | 0.353 |
hsv_v | 0.566 | 0.194 | 0.194 | 0.194 | 0.194 |
bgr | 0.106 | 0.0 | 0.0 | 0.0 | 0.0 |
تستخدم النماذج الأكبر حجماً أساليب تعزيز أكثر جرأة بشكل عام (مستويات أعلى من التبديل العشوائي والنسخ واللصق والتحجيم)، نظراً لامتلاكها سعة أكبر واستفادتها من تنظيم أقوى. ويُعد النموذج N هو الحجم الوحيد الذي يتميز بتعزيزات ذات مغزى من حيث الدوران والانزياح وBGR.
معايير التدريب الداخلي
متقدم: معلمات المسار الداخلي
تحتوي نقاط الفحص أيضًا على معلمات كانت تُستخدم في مسار التدريب الداخلي ولكنها لا متاحة كإعدادات يمكن للمستخدم تهيئتها في default.yaml:
| إعداد | الوصف | ن | S | م | L | X |
|---|---|---|---|---|---|---|
muon_w | تحديث وزن الميون في MuSGD | 0.528 | 0.436 | 0.436 | 0.436 | 0.436 |
sgd_w | SGD وزن SGD في MuSGD | 0.674 | 0.479 | 0.479 | 0.479 | 0.479 |
cls_w | وزن التصنيف الداخلي | 2.74 | 3.48 | 3.48 | 3.48 | 3.48 |
o2m | معامل فقدان الضغط من واحد إلى عدة | 1.0 | 0.705 | 0.705 | 0.705 | 0.705 |
topk | تعيين علامة Top-k | 8 | 5 | 5 | 5 | 5 |
يتم تسجيل هذه القيم لضمان قابلية التكرار، ولكن لا يلزم ضبطها عند إجراء الضبط الدقيق. راجع الأسئلة الشائعة لمزيد من التفاصيل.
إرشادات الضبط الدقيق
عند ضبط نموذج YOLO26 على مجموعة البيانات الخاصة بك، لا داعي لتكرار عملية التدريب المسبق بالكامل. فالأوزان المدربة مسبقًا تحتوي بالفعل على المعرفة المتعلقة بالتوسيع والتحسين المستمدة من COCO . للاطلاع على أفضل الممارسات العامة للتدريب، راجع «نصائح لتدريب النماذج».
ابدأ ببساطة
ضبط الإعدادات باستخدام الإعدادات الافتراضية
from ultralytics import YOLO
model = YOLO("yolo26n.pt")
results = model.train(data="your-dataset.yaml", epochs=100, imgsz=640)
yolo train model=yolo26n.pt data=your-dataset.yaml epochs=100 imgsz=640
يُعد الضبط الدقيق باستخدام الإعدادات الافتراضية أساسًا قويًا. لا تقم بتعديل المعلمات الفائقة إلا إذا كان لديك سبب محدد لذلك.
متى يجب إجراء التعديل
Small datasets (< 1,000 images):
- تقليل قوة التعزيز:
mosaic=0.5,mixup=0.0,copy_paste=0.0 - معدل تعلم أقل:
lr0=0.001 - استخدم كمية أقل حقبة بصبر:
epochs=50,patience=20 - ضع في اعتبارك تجميد طبقات الشبكة الأساسية:
freeze=10
مجموعات البيانات الكبيرة (أكثر من 50,000 صورة):
- التقيد بشكل أوثق بوصفة التدريب المسبق
- ضع في اعتبارك
optimizer=MuSGDللرحلات الطويلة - زيادة التعزيز:
mosaic=1.0,mixup=0.3,scale=0.9
صور خاصة بالمجال (جوية، طبية، تحت الماء):
- زيادة
flipud=0.5إذا اختلف الاتجاه الرأسي - زيادة
degreesإذا ظهرت الكائنات بزوايا دوران عشوائية - ضبط
hsv_sوhsv_vإذا اختلفت ظروف الإضاءة بشكل كبير عن COCO
للحصول على مزيد من المعلومات حول التحسين التلقائي للمعلمات الفائقة، راجع دليل ضبط المعلمات الفائقة.
اختيار حجم النموذج
| النموذج | الأفضل لـ | إرشادات حجم الدفعة |
|---|---|---|
| YOLO26n | الأجهزة الطرفية، الأجهزة المحمولة، المعالجة في الوقت الفعلي على CPU | الدُفعات الكبيرة (64-128) على بطاقات الرسومات المخصصة للمستهلكين |
| YOLO26s | سرعة ودقة متوازنة | الدفعات المتوسطة (32-64) |
| YOLO26m | دقة أعلى مع قدر معتدل من الحوسبة | دفعات أصغر (16-32) |
| YOLO26l | دقة عالية عند GPU | مجموعات صغيرة (8-16) أوGPU |
| YOLO26x | أقصى درجات الدقة، ونشر الخوادم | مجموعات صغيرة (4-8) أوGPU |
للاطلاع على خيارات التصدير والنشر، راجع دليل التصدير وخيارات نشر النماذج.
الأسئلة الشائعة
كيف يمكنني الاطلاع على المعلمات الفائقة المستخدمة بالضبط في أي نقطة تفتيش؟
قم بتحميل نقطة التحقق باستخدام torch.load() والوصول إلى train_args المفتاح، أو استخدم model.ckpt["train_args"] باستخدام واجهة Ultralytics . انظر فحص معلمات التدريب للاطلاع على أمثلة كاملة.
لماذا يختلف عدد الدورات الزمنية باختلاف حجم النموذج؟
تتقارب النماذج الأكبر حجماً بشكل أسرع في COCO تتمتع بقدرة أكبر. فقد احتاج النموذج N إلى 245 دورة، بينما احتاج النموذج X إلى 40 دورة فقط. وعند إجراء الضبط الدقيق على مجموعة البيانات الخاصة بك، يعتمد العدد الأمثل للدورات على حجم مجموعة البيانات ومدى تعقيدها، وليس على حجم النموذج. استخدم ميزة الإيقاف المبكر (patience) للعثور على نقطة التوقف الصحيحة تلقائيًا.
هل ينبغي عليّ استخدام MuSGD في عملية الضبط الدقيق؟
عندما optimizer=auto (الافتراضي)، Ultralytics تختار تلقائيًا MuSGD للتدريبات الطويلة (أكثر من 10,000 تكرار) و AdamW للأقصر منها. يمكنك تعيين optimizer=MuSGD إذا كنت تفضل ذلك. لمزيد من المعلومات حول اختيار المُحسِّن، راجع وثائق التدريب.
ما هي muon_w, sgd_w, cls_w, o2m، و topk في نقطة التفتيش؟
هذه هي المعلمات الداخلية من مسار التدريب الذي أنتج نقاط التحقق الأساسية. يتم تخزينها لضمان قابلية التكرار، ولكنها لا الإعدادات التي يمكن للمستخدم تهيئتها في default.yaml. لا تحتاج إلى تعيينها عند الضبط الدقيق. انظر معايير التدريب الداخلي للحصول على التفاصيل.
هل يمكنني تكرار التدريب المسبق (pretraining) الدقيق من البداية؟
تم إنشاء نقاط الفحص باستخدام فرع تدريب داخلي يتضمن ميزات إضافية غير موجودة في قاعدة الكود العامة (مثل إمكانية التهيئة o2m الأوزان و cls_w). يمكنك الحصول على نتائج متقاربة جدًا باستخدام المعلمات الفائقة الموثقة في هذه الصفحة مع حزمة Ultralytics العامة، ولكن الاستنساخ الدقيق يتطلب الفرع الداخلي.