وصفة تدريب YOLO26
مقدمة
This guide documents the exact training recipe used to produce the official YOLO26 pretrained checkpoints on COCO. Every hyperparameter shown here is already embedded in the released .pt weights and can be inspected programmatically.
يساعدك فهم كيفية تدريب النماذج الأساسية على اتخاذ قرارات أفضل عند الضبط الدقيق: ما هي تعزيزات البيانات التي يجب الاحتفاظ بها، وأوزان دالة الخسارة التي يجب تعديلها، وإعدادات المحسن التي تعمل بشكل أفضل لحجم مجموعة البيانات الخاصة بك.
هذا الدليل مخصص للممارسين الذين يرغبون في فهم ما تم تضمينه في نقاط فحص YOLO26 الرسمية - ليس فقط البنية، ولكن جداول معدل التعلم، وخطوط أنابيب التعزيز، وأوزان الخسارة التي شكلت أداءها. استخدم هذه المعلومات لاتخاذ خيارات مستنيرة عند الضبط الدقيق على بياناتك الخاصة.
فحص وسائط التدريب
تخزن كل نقطة فحص من Ultralytics تكوين التدريب الكامل المستخدم لإنتاجها. يمكنك فحص هذه الإعدادات في أي وقت:
from ultralytics import YOLO
model = YOLO("yolo26n.pt")
print(model.ckpt["train_args"])يعمل هذا مع أي نقطة فحص .pt - سواء الإصدارات الرسمية أو نماذجك التي قمت بضبطها بدقة. للحصول على القائمة الكاملة لوسائط التدريب القابلة للتكوين، راجع مرجع تكوين التدريب.
نظرة عامة على التدريب
تم تدريب جميع نماذج YOLO26 الأساسية على COCO بدقة 640x640 باستخدام محسن MuSGD مع حجم الدفعة 128. تمت تهيئة النماذج من أوزان مدربة مسبقاً وسيطة وتم تحسينها باستخدام معاملات تشعبية تم العثور عليها عبر البحث التطوري. سجلات التدريب الكاملة والمقاييس لكل حجم نموذج متاحة على Ultralytics Platform:
خيارات التصميم الرئيسية عبر جميع الأحجام:
- تدريب شامل (end-to-end) (
end2end=True) مع رأس واحد لواحد خالٍ من NMS - محسن MuSGD يجمع بين SGD وتحديثات متعامدة بنمط Muon لأوزان الالتفاف
- تعزيز فسيفساء مكثف (احتمالية ~0.9-1.0) يتم تعطيله في آخر 10 عصور (
close_mosaic=10) - تعزيز مقياس قوي (0.56-0.95) للتعامل مع الكائنات بأحجام مختلفة
- حد أدنى من الدوران/القص لمعظم الأحجام، للحفاظ على انخفاض التشوه الهندسي
المعاملات التشعبية لكل حجم نموذج
المحسن ومعدل التعلم
| الإعداد | N | S | M | 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). يعكس هذا ديناميكيات التقارب المختلفة للنماذج الأصغر مقابل الأكبر - تحتاج النماذج الأصغر إلى تحديثات أكثر قوة للتعلم بفعالية.
أوزان الخسارة
| الإعداد | N | S | M | 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.
| الإعداد | N | S | M | 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 |
تستخدم النماذج الأكبر تعزيزاً أكثر قوة بشكل عام (معدل أعلى لـ mixup، وcopy-paste، وscale)، لأن لديها سعة أكبر وتستفيد من تنظيم أقوى. نموذج N هو الحجم الوحيد الذي يحتوي على تعزيز دوران، وقص، وBGR ذو معنى.
وسائط التدريب الداخلية
متقدم: وسائط خط الأنابيب الداخلية
تحتوي نقاط الفحص أيضاً على وسائط تم استخدامها في خط أنابيب التدريب الداخلي ولكنها ليست مكشوفة كإعدادات قابلة للتكوين من قبل المستخدم في default.yaml:
| الإعداد | الوصف | N | S | M | L | X |
|---|---|---|---|---|---|---|
muon_w | وزن تحديث Muon في MuSGD | 0.528 | 0.436 | 0.436 | 0.436 | 0.436 |
sgd_w | وزن تحديث 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 | تعيين التسمية لأفضل-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)يعد الضبط الدقيق باستخدام الإعدادات الافتراضية أساساً قوياً. لا تقم بتعديل المعايير الفائقة إلا إذا كان لديك سبب محدد لذلك.
متى يجب عليك التعديل
مجموعات البيانات الصغيرة (< 1,000 صورة):
- تقليل قوة التعزيز:
mosaic=0.5,mixup=0.0,copy_paste=0.0 - خفض معدل التعلم:
lr0=0.001 - استخدم عدداً أقل من الدورات التدريبية (epochs) مع الصبر:
epochs=50,patience=20 - فكر في تجميد طبقات الهيكل الأساسي (backbone):
freeze=10
مجموعات البيانات الكبيرة (> 50,000 صورة):
- طابق وصفة التدريب المسبق بشكل أدق
- فكر في استخدام
optimizer=MuSGDللتشغيل لفترات أطول - زيادة التعزيز:
mosaic=1.0,mixup=0.3,scale=0.9
الصور الخاصة بالمجال (جوية، طبية، تحت الماء):
- زد قيمة
flipud=0.5إذا كان التوجه الرأسي متغيراً - زد قيمة
degreesإذا كانت الكائنات تظهر بزوايا دوران عشوائية - اضبط
hsv_sوhsv_vإذا كانت ظروف الإضاءة تختلف بشكل كبير عن COCO
لتحسين المعايير الفائقة بشكل آلي، راجع دليل ضبط المعايير الفائقة.
اختيار حجم النموذج
| النموذج | الأفضل لـ | إرشادات حجم الدفعة (Batch Size) |
|---|---|---|
| YOLO26n | أجهزة الحافة (Edge devices)، الهواتف المحمولة، المعالجة اللحظية على CPU | دفعات كبيرة (64-128) على وحدات معالجة الرسوميات للمستهلكين |
| YOLO26s | توازن بين السرعة والدقة | دفعات متوسطة (32-64) |
| YOLO26m | دقة أعلى مع موارد حوسبة معتدلة | دفعات أصغر (16-32) |
| YOLO26l | دقة عالية عند توفر GPU | دفعات صغيرة (8-16) أو استخدام عدة وحدات GPU |
| YOLO26x | أقصى دقة، نشر على الخادم | دفعات صغيرة (4-8) أو استخدام عدة وحدات GPU |
لخيارات التصدير والنشر، راجع دليل التصدير و خيارات نشر النموذج.
الأسئلة الشائعة
كيف يمكنني معرفة المعايير الفائقة المستخدمة بالضبط لأي نقطة تفتيش (checkpoint)؟
قم بتحميل نقطة التفتيش باستخدام torch.load() وقم بالوصول إلى مفتاح train_args، أو استخدم model.ckpt["train_args"] مع واجهة برمجة تطبيقات Ultralytics. راجع فحص وسائط التدريب للحصول على أمثلة كاملة.
لماذا تختلف أعداد الدورات التدريبية (epochs) لكل حجم نموذج؟
النماذج الأكبر تتقارب بشكل أسرع على COCO لأنها تمتلك سعة أكبر. احتاج نموذج N إلى 245 دورة بينما احتاج نموذج X إلى 40 دورة فقط. عند الضبط الدقيق على مجموعة بياناتك الخاصة، يعتمد العدد الأمثل للدورات على حجم وتعقيد مجموعة بياناتك، وليس على حجم النموذج. استخدم التوقف المبكر (patience) للعثور على نقطة التوقف الصحيحة آلياً.
هل يجب أن أستخدم MuSGD للضبط الدقيق؟
عندما يكون optimizer=auto (الإعداد الافتراضي)، يختار Ultralytics تلقائياً MuSGD لعمليات التدريب الأطول (>10,000 تكرار) و AdamW للعمليات الأقصر. يمكنك تعيين optimizer=MuSGD بشكل صريح إذا كنت تفضل ذلك. لمزيد من المعلومات حول اختيار المُحسن (optimizer)، راجع وثائق التدريب.
ما هي muon_w و sgd_w و cls_w و o2m و topk في نقطة التفتيش؟
هذه هي معايير داخلية من خط تدريب البيانات الذي أنتج نقاط التفتيش الأساسية. يتم تخزينها لضمان التكرار ولكنها ليست إعدادات قابلة للتكوين من قبل المستخدم في default.yaml. لا تحتاج إلى ضبطها عند إجراء الضبط الدقيق. راجع معايير التدريب الداخلية للحصول على التفاصيل.
هل يمكنني تكرار التدريب المسبق بالكامل من الصفر؟
تم إنتاج نقاط التفتيش باستخدام فرع تدريب داخلي مع ميزات إضافية غير موجودة في قاعدة الكود العامة (مثل أوزان o2m و cls_w القابلة للتكوين). يمكنك الحصول على نتائج قريبة جداً باستخدام المعايير الفائقة الموثقة في هذه الصفحة مع حزمة Ultralytics العامة، ولكن النسخ الدقيق يتطلب الفرع الداخلي.