وصفة تدريب YOLO26#
مقدمة#
يوثق هذا الدليل وصفة التدريب الدقيقة المستخدمة لإنتاج نقاط التحقق المُدربة مسبقاً الرسمية لنموذج YOLO26 على مجموعة بيانات COCO. يتم تضمين كل المعلمات الفائقة المعروضة هنا مسبقاً في أوزان .pt المُصدرة ويمكن فحصها برمجياً.
إن معرفة ما تم تضمينه في نقاط التحقق الرسمية - ليس فقط البنية، بل جداول معدل التعلم، ومسارات التضخيم، وأوزان دالة الخسارة التي صاغت أداؤها - يساعدك على اتخاذ قرارات أفضل عند الضبط الدقيق: أي تضخيمات للبيانات يجب الاحتفاظ بها، وأي أوزان لـ دالة الخسارة يجب ضبطها، وإعدادات المُحسِّن التي تعمل بشكل أفضل مع حجم مجموعة البيانات الخاصة بك.
نظرة عامة على التدريب#
تم تدريب جميع نماذج YOLO26 الأساسية على مجموعة بيانات COCO بدقة 640x640 باستخدام مُحسِّن MuSGD مع batch size 128. بدلاً من البدء بأوزان عشوائية في تشغيل واحد، تم تهيئة النماذج من أوزان مُدربَة مسبقاً وسيطة وتحسينها باستخدام المعلمات الفائقة المُستكتشفة عبر evolutionary search. سجلات التدريب الكاملة والمقاييس لكل حجم نموذج متاحة على Ultralytics Platform.
خيارات التصميم الرئيسية عبر جميع الأحجام:
- التدريب من البداية إلى النهاية (
end2end=True) مع رأس تطابق فردي خالٍ من NMS - مُحسِّن MuSGD الذي يدمج SGD مع تحديثات متعامدة على طراز Muon لمصفوفات الأوزان (الأوزان الخطية ثنائية الأبعاد وفلاتر الالتفاف رباعية الأبعاد، والتي يتم إعادة تشكيلها إلى ثنائية الأبعاد)
- تضخيم الفسيفساء الكثيف (احتمال ~0.9-1.0) تم تعطيله في آخر 10 عصور (
close_mosaic=10) - توسيع مقياس (Scale) قوي (0.56-0.95) للتعامل مع الكائنات بأحجام مختلفة
- دوران/قص (Rotation/shear) بحد أدنى لمعظم الأحجام، للحفاظ على تشوه هندسي منخفض
فحص وسائط تدريب نقطة تحقق YOLO26#
تخزن كل نقطة تحقق من Ultralytics تكوين التدريب الكامل المستخدم لإنتاجها، بحيث يمكنك التحقق من كل رقم في هذه الصفحة بنفسك:
from ultralytics import YOLO
model = YOLO("yolo26n.pt")
print(model.ckpt["train_args"])يعرض الناتج التكوين الكامل لأكثر من 100 مدخل، بما في ذلك كل قيمة وصفة توثق في هذه الصفحة. مقتطف لـ yolo26n.pt:
batch: 128
...
box: 5.62767
...
close_mosaic: 10
cls: 0.56099
...
dfl: 9.03871
...
epochs: 245
...
lr0: 0.0054
lrf: 0.04952
...
optimizer: MuSGDيعمل هذا مع أي نقطة تحقق لـ .pt - الإصدارات الرسمية ونماذجك المُعدلة بدقة على حد سواء. للحصول على القائمة الكاملة لوسائط التدريب القابلة للتكوين، راجع مرجع تكوين التدريب.
المعاملات التشعبية لتدريب YOLO26 حسب حجم النموذج#
تُجمع الجداول أدناه الوصفة حسب الفئة - المُحسِّن والجدول، وأوزان الخسارة، والتضخيم. كل قيمة تأتي مباشرة من train_args المضمنة في نقاط التحقق المُصدرة.
المحسن ومعدل التعلم#
أدت إعدادات المحسن والجدول الزمني هذه إلى دفع التدريب المسبق على COCO لكل حجم؛ لاحظ كيف يبرز نموذج N عن البقية:
| الإعداد | 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). يعكس هذا ديناميكيات التقارب المختلفة للنماذج الأصغر مقابل النماذج الأكبر - تحتاج النماذج الأصغر إلى تحديثات أكثر عدوانية للتعلم بفعالية.
أوزان الخسارة#
توازن أوزان الخسارة المكونات الثلاثة لخسارة الاكتشاف - انحدار IoU لصندوق الإحاطة (box)، والتصنيف (cls)، ومصطلح انحدار مسافة الصندوق (dfl). لاحظ أن YOLO26 الخالي من DFL يعيد توظيف كسب dfl لوزن خسارة L1 على مسافات الصندوق المُطَبَّعة بدلاً من خسارة بؤرة التوزيع:
| الإعداد | 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 التركيز إلى انحدار الصندوق القائم على IoU. تظل خسارة التصنيف متسقة نسبياً عبر جميع الأحجام.
خط أنابيب التوسيع#
للحصول على شرح مفصل لكل تقنية، راجع دليل تضخيم بيانات 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 |
القيم المعروضة كـ ~0 تقل عن 0.01 في نقاط التحقق الفعلية (على سبيل المثال، degrees=0.00012 لنموذج S) - يتم تعطيل التضخيم فعلياً.
تستخدم النماذج الأكبر تضخيمًا أكثر عدوانية بشكل عام (خلط أعلى، نسخ ولصق، ومقياس)، نظراً لأن لديهم سعة أكبر ويستفيدون من تنظيم أقوى. نموذج 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 | تخصيص التصنيف من نوع Top-k | 8 | 5 | 5 | 5 | 5 |
راجع مدخل الأسئلة الشائعة حول هذه المعلمات لمعرفة ما تعنيه عند إجراء الضبط الدقيق.
الضبط الدقيق لنموذج YOLO26 على مجموعة بياناتك الخاصة#
عند إجراء الضبط الدقيق لـ YOLO26 على مجموعة البيانات الخاصة بك، لا تحتاج إلى تكرار وصفة التدريب الكاملة. تشفر الأوزان المُدربة مسبقاً بالفعل معرفة التضخيم والتحسين من تدريب COCO. لمزيد من أفضل ممارسات التدريب العامة، راجع نصائح لتدريب النماذج.
الضبط الدقيق باستخدام الإعدادات الافتراضية#
from ultralytics import YOLO
model = YOLO("yolo26n.pt")
results = model.train(data="your-dataset.yaml", epochs=100, imgsz=640)يُعد الضبط الدقيق باستخدام القيم الافتراضية أساسًا قويًا. لا تقم بتعديل المعلمات الفائقة إلا إذا كان لديك سبب محدد للقيام بذلك.
متى يجب تعديل المعلمات الفائقة لنموذج YOLO26#
مجموعات البيانات الصغيرة (< 1,000 صورة):
- تقليل قوة التضخيم:
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
للتحسين التلقائي للمعلمات الفائقة، راجع دليل ضبط المعلمات الفائقة.
اختيار حجم النموذج#
| النموذج | الأفضل لـ | إرشادات حجم الدفعة (Batch Size) |
|---|---|---|
| YOLO26n | أجهزة الحافة، الهواتف المحمولة، المعالجة اللحظية على CPU | دفعات كبيرة (64-128) على وحدات GPU للمستهلكين |
| YOLO26s | توازن بين السرعة والدقة | دفعات متوسطة (32-64) |
| YOLO26m | دقة أعلى مع موارد حوسبة متوسطة | دفعات أصغر (16-32) |
| YOLO26l | دقة عالية عند توفر GPU | دفعات صغيرة (8-16) أو GPU متعدد |
| YOLO26x | أقصى دقة، نشر على الخادم | دفعات صغيرة (4-8) أو GPU متعدد |
خيارات التصدير والنشر، راجع دليل التصدير وخيارات نشر النموذج.
الخلاصة#
تأتي نقاط تحقق YOLO26 مع تضمين وصفة التدريب الكاملة الخاصة بها، لذا فإن المعلمات الفائقة الدقيقة الكامنة وراء كل حجم نموذج تكون دائماً على بُعد عملية بحث واحدة عن train_args. ابدأ الضبط الدقيق من الإعدادات الافتراضية، واضبط عمداً باستخدام الجداول الموجودة في هذه الصفحة، وتحقق من كل تغيير مقابل مجموعة التحقق الخاصة بك. إذا ظهرت أسئلة على طول الطريق، فاسأل المجتمع على مستودع Ultralytics على GitHub أو خادم Ultralytics Discord.
الأسئلة الشائعة#
قم بتحميل نقطة التحقق باستخدام
torch.load()والوصول إلى مفتاحtrain_args، أو استخدمmodel.ckpt["train_args"]مع Ultralytics API. راجع فحص وسائط تدريب نقطة تحقق YOLO26 للحصول على أمثلة كاملة.تحتاج النماذج الأكبر عموماً إلى عدد أقل من العصور على COCO لأن سعتها الأكبر تسرع التقارب - تم تدريب نموذج X لمدة 40 عصراً مقابل 245 لـ N - على الرغم من أن العدد ليس تصاعدياً بدقة (استخدم S 70، واستخدم M 80). عند إجراء الضبط الدقيق على مجموعة البيانات الخاصة بك، يعتمد العدد الأمثل للعصور على حجم مجموعة البيانات وتعقيدها، وليس على حجم النموذج. استخدم التوقف المبكر (
patience) للعثور على نقطة التوقف المناسبة تلقائياً.عادةً لا تحتاج إلى الاختيار: باستخدام
optimizer=autoالافتراضي، يختار Ultralytics تلقائياً MuSGD لتشغيل التدريب الأطول (>10,000 تكرار) وAdamW للتشغيلات الأقصر. يمكنك تعيينoptimizer=MuSGDصراحةً إذا كنت تفضل ذلك. لمزيد من المعلومات حول كيفية عمل MuSGD، راجع وثائق التدريب.هذه هي المعلمات الداخلية من خط التدريب الذي أنتج نقاط التحقق الأساسية، والمسجلة في
train_argsلإمكانية إعادة الإنتاج. إنها ليست إعدادات قابلة للتكوين للمستخدم فيdefault.yaml، ومرورها إلىmodel.train()يرفع خطأ وسيط غير صالح - الحزمة العامة لا تقرأها. لا تحتاج إلى تعيينها عند إجراء الضبط الدقيق؛ راجع معلمات التدريب الداخلية لقيمها لكل حجم نموذج.ليس تماماً - تم إنتاج نقاط التحقق باستخدام فرع تدريب داخلي بميزات إضافية ليست في قاعدة الشفرات العامة (مثل أوزان
o2mالقابلة للتكوين وcls_w). يمكنك الحصول على نتائج قريبة جداً باستخدام المعلمات الفائقة الموثقة في هذه الصفحة مع حزمة Ultralytics العامة، لكن إعادة الإنتاج الدقيقة تتطلب الفرع الداخلي.