Meet YOLO26: next-gen vision AI.

Link to this sectionوصفة تدريب YOLO26#

Link to this sectionمقدمة#

يوثق هذا الدليل وصفة التدريب الدقيقة المستخدمة لإنتاج نقاط التحقق (checkpoints) الرسمية المدربة مسبقاً لـ YOLO26 على COCO. كل معامل تشعبي معروض هنا مدمج بالفعل في أوزان .pt التي تم إصدارها ويمكن فحصها برمجياً.

إن معرفة ما تم تضمينه في نقاط التحقق الرسمية — ليس فقط البنية، بل أيضاً جداول معدل التعلم، وخطوط أنابيب التوسيع (augmentation pipelines)، وأوزان الفقد (loss weights) التي شكلت أدائها — يساعدك على اتخاذ قرارات أفضل عند الضبط الدقيق: ما هي توسيعات البيانات التي يجب الاحتفاظ بها، وما هي أوزان دالة الفقد التي يجب تعديلها، وما هي إعدادات المحسن (optimizer) التي تعمل بشكل أفضل لحجم مجموعة البيانات الخاصة بك.

Link to this sectionنظرة عامة على التدريب#

تم تدريب جميع نماذج YOLO26 الأساسية على COCO بدقة 640x640 باستخدام محسن MuSGD مع حجم دفعة 128. بدلاً من البدء من أوزان عشوائية في تشغيل واحد، تمت تهيئة النماذج من أوزان مدربة مسبقاً وسيطة وتم تحسينها بمعاملات تشعبية تم العثور عليها عبر البحث التطوري. سجلات التدريب الكاملة والمقاييس لكل حجم نموذج متاحة على منصة Ultralytics:

خيارات التصميم الرئيسية عبر جميع الأحجام:

  • تدريب شامل (End-to-end) (end2end=True) مع رأس واحد لواحد (one-to-one) خالٍ من NMS
  • محسن MuSGD يجمع بين SGD وتحديثات متعامدة بأسلوب Muon لمصفوفات الأوزان (المعاملات ذات ndim >= 2، مثل أوزان التلافيف والخطية)
  • توسيع فسيفسائي (Mosaic) كثيف (احتمالية ~0.9-1.0) تم تعطيله في آخر 10 حقب (epochs) (close_mosaic=10)
  • توسيع مقياس (Scale) قوي (0.56-0.95) للتعامل مع الكائنات بأحجام مختلفة
  • دوران/قص (Rotation/shear) بحد أدنى لمعظم الأحجام، للحفاظ على تشوه هندسي منخفض

Link to this sectionفحص وسائط تدريب نقطة تحقق 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 — الإصدارات الرسمية ونماذجك الخاصة التي قمت بضبطها بدقة على حد سواء. للحصول على القائمة الكاملة لوسائط التدريب القابلة للتكوين، راجع مرجع تكوين التدريب.

Link to this sectionالمعاملات التشعبية لتدريب YOLO26 حسب حجم النموذج#

تجمع الجداول أدناه الوصفة حسب الفئة — المحسن والجدول الزمني، وأوزان الفقد، والتوسيع. تأتي كل قيمة مباشرة من train_args المدمجة في نقاط التحقق التي تم إصدارها.

Link to this sectionالمحسن ومعدل التعلم#

أدت إعدادات المحسن والجدول الزمني هذه إلى دفع التدريب المسبق على COCO لكل حجم؛ لاحظ كيف يبرز نموذج N عن البقية:

الإعدادNSMLX
optimizerMuSGDMuSGDMuSGDMuSGDMuSGD
lr00.00540.000380.000380.000380.00038
lrf0.04950.8820.8820.8820.882
momentum0.9470.9480.9480.9480.948
weight_decay0.000640.000270.000270.000270.00027
warmup_epochs0.980.990.990.990.99
epochs24570806040
batch128128128128128
imgsz640640640640640
استراتيجية معدل التعلم

استخدم نموذج N معدل تعلم أولياً أعلى مع تلاشٍ حاد (lrf=0.0495)، بينما استخدمت نماذج S/M/L/X معدل تعلم أولياً أقل بكثير مع جدول زمني أكثر لطفاً (lrf=0.882). يعكس هذا ديناميكيات التقارب المختلفة للنماذج الأصغر مقابل الأكبر — تحتاج النماذج الأصغر إلى تحديثات أكثر قوة للتعلم بفعالية.

Link to this sectionأوزان الخسارة#

توازن أوزان الفقد المكونات الثلاثة لفقد الكشف — انحدار IoU لـ صندوق التحديد (box)، والتصنيف (cls)، ومصطلح انحدار مسافة الصندوق (dfl). لاحظ أن YOLO26 الخالي من DFL يعيد استخدام كسب dfl لوزن فقد L1 على مسافات الصندوق المطبعة بدلاً من فقد بؤري للتوزيع:

الإعدادNSMLX
box5.639.839.839.839.83
cls0.560.650.650.650.65
dfl9.040.960.960.960.96

يعطي نموذج N الأولوية لمصطلح انحدار المسافة dfl، بينما تحول نماذج S/M/L/X التركيز إلى انحدار الصندوق القائم على IoU. يظل فقد التصنيف متسقاً نسبياً عبر جميع الأحجام.

Link to this sectionخط أنابيب التوسيع#

للحصول على شرح مفصل لكل تقنية، راجع دليل توسيع بيانات YOLO.

الإعدادNSMLX
mosaic0.9090.9920.9920.9920.992
mixup0.0120.050.4270.4270.427
copy_paste0.0750.4040.3040.4040.404
scale0.5620.90.950.950.95
fliplr0.6060.3040.3040.3040.304
degrees1.11~0~0~0~0
shear1.46~0~0~0~0
translate0.0710.2750.2750.2750.275
hsv_h0.0140.0130.0130.0130.013
hsv_s0.6450.3530.3530.3530.353
hsv_v0.5660.1940.1940.1940.194
bgr0.1060.00.00.00.0

القيم المعروضة كـ ~0 هي أقل من 0.01 في نقاط التحقق الفعلية (على سبيل المثال، degrees=0.00012 لنموذج S) — التوسيع معطل فعلياً.

تستخدم النماذج الأكبر توسيعاً أكثر قوة بشكل عام (mixup، وcopy-paste، وscale أعلى)، لأن لديها سعة أكبر وتستفيد من تنظيم أقوى. نموذج N هو الحجم الوحيد الذي يحتوي على توسيع ذي معنى للدوران، والقص، وBGR.

Link to this sectionمعاملات التدريب الداخلية#

متقدم: معاملات خط أنابيب داخلية

تحتوي نقاط التحقق أيضاً على معاملات تم استخدامها في خط أنابيب التدريب الداخلي ولكنها غير مكشوفة كإعدادات قابلة للتكوين من قبل المستخدم في default.yaml:

الإعدادالوصفNSMLX
muon_wوزن تحديث Muon في MuSGD0.5280.4360.4360.4360.436
sgd_wوزن تحديث SGD في MuSGD0.6740.4790.4790.4790.479
cls_wوزن التصنيف الداخلي2.743.483.483.483.48
o2mوزن خسارة الرأس من واحد إلى متعدد1.00.7050.7050.7050.705
topkتخصيص التصنيف من نوع Top-k85555

راجع مدخل الأسئلة الشائعة حول هذه المعلمات لمعرفة دلالتها عند الضبط الدقيق.

Link to this sectionالضبط الدقيق لنموذج YOLO26 على مجموعة بياناتك الخاصة#

عند الضبط الدقيق لنموذج YOLO26 على مجموعة بياناتك الخاصة، لا تحتاج إلى تكرار وصفة التدريب المسبق بالكامل. فالأوزان المدربة مسبقًا تحتوي بالفعل على معلومات التحسين والزيادة المستفادة من تدريب COCO. للاطلاع على أفضل الممارسات العامة للتدريب، راجع نصائح لتدريب النماذج.

Link to this sectionالضبط الدقيق باستخدام الإعدادات الافتراضية#

الضبط الدقيق باستخدام القيم الافتراضية
from ultralytics import YOLO

model = YOLO("yolo26n.pt")
results = model.train(data="your-dataset.yaml", epochs=100, imgsz=640)

يُعد الضبط الدقيق باستخدام القيم الافتراضية أساسًا قويًا. لا تقم بتعديل المعلمات الفائقة إلا إذا كان لديك سبب محدد للقيام بذلك.

Link to this sectionمتى يجب تعديل المعلمات الفائقة لنموذج YOLO26#

مجموعات البيانات الصغيرة (< 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

للتحسين الآلي للمعلمات الفائقة، راجع دليل ضبط المعلمات الفائقة.

Link to this sectionاختيار حجم النموذج#

النموذجالأفضل لـإرشادات حجم الدفعة (Batch Size)
YOLO26nأجهزة الحافة، الهواتف المحمولة، المعالجة اللحظية على CPUدفعات كبيرة (64-128) على وحدات GPU للمستهلكين
YOLO26sتوازن بين السرعة والدقةدفعات متوسطة (32-64)
YOLO26mدقة أعلى مع موارد حوسبة متوسطةدفعات أصغر (16-32)
YOLO26lدقة عالية عند توفر GPUدفعات صغيرة (8-16) أو GPU متعدد
YOLO26xأقصى دقة، نشر على الخادمدفعات صغيرة (4-8) أو GPU متعدد

لخيارات التصدير والنشر، راجع دليل التصدير و خيارات نشر النموذج.

Link to this sectionالخلاصة#

تأتي نقاط تفتيش YOLO26 مع وصفة التدريب الكاملة الخاصة بها، لذا فإن المعلمات الفائقة الدقيقة لكل حجم نموذج متاحة دائماً عبر البحث عن train_args. ابدأ الضبط الدقيق من الإعدادات الافتراضية، وقم بالتعديل المتعمد باستخدام الجداول الموجودة في هذه الصفحة، وتحقق من كل تغيير مقابل مجموعة التحقق الخاصة بك. إذا ظهرت أسئلة أثناء العملية، اطرحها على المجتمع في مستودع Ultralytics على GitHub أو خادم Ultralytics على Discord.

Link to this sectionالأسئلة الشائعة#

Link to this sectionكيف يمكنني رؤية المعلمات الفائقة الدقيقة المستخدمة لأي نقطة تفتيش؟#

قم بتحميل نقطة التفتيش باستخدام torch.load() وقم بالوصول إلى مفتاح train_args، أو استخدم model.ckpt["train_args"] مع واجهة برمجة تطبيقات Ultralytics. راجع فحص وسائط تدريب نقطة تفتيش YOLO26 للحصول على أمثلة كاملة.

Link to this sectionلماذا تختلف أعداد الحقب (epochs) لكل حجم نموذج؟#

عادةً ما تحتاج النماذج الأكبر إلى عدد أقل من الحقب على COCO لأن سعتها الأكبر تسرع التقارب - نموذج X تدرب لـ 40 حقبة مقابل 245 لنموذج N - على الرغم من أن الأعداد ليست رتيبة تماماً (نموذج S استخدم 70، ونموذج M استخدم 80). عند الضبط الدقيق على مجموعة بياناتك الخاصة، يعتمد العدد الأمثل للحقب على حجم وتعقيد مجموعة بياناتك، وليس على حجم النموذج. استخدم التوقف المبكر (patience) للعثور على نقطة التوقف الصحيحة تلقائياً.

Link to this sectionهل يجب أن أستخدم MuSGD للضبط الدقيق؟#

عادةً لا تحتاج إلى الاختيار: مع الإعداد الافتراضي optimizer=auto، تختار Ultralytics تلقائياً MuSGD لجولات التدريب الأطول (>10,000 تكرار) و AdamW للأقصر منها. يمكنك تعيين optimizer=MuSGD صراحة إذا كنت تفضل ذلك. للمزيد حول كيفية عمل MuSGD، راجع وثائق التدريب.

Link to this sectionما هي muon_w و sgd_w و cls_w و o2m و topk في نقطة التفتيش؟#

هذه معلمات داخلية من خط أنابيب التدريب الذي أنتج نقاط التفتيش الأساسية، وهي مسجلة في train_args من أجل القابلية للتكرار. إنها ليست إعدادات يمكن للمستخدم تكوينها في default.yaml، وتمريرها إلى model.train() يثير خطأ في الوسائط غير الصالحة - الحزمة العامة لا تقرأها. لست بحاجة إلى تعيينها عند الضبط الدقيق؛ راجع المعلمات التدريبية الداخلية لمعرفة قيمها لكل حجم نموذج.

Link to this sectionهل يمكنني تكرار التدريب المسبق بالكامل من الصفر؟#

ليس بالضبط - تم إنتاج نقاط التفتيش باستخدام فرع تدريب داخلي مع ميزات إضافية غير موجودة في قاعدة الكود العامة (مثل أوزان o2m و cls_w القابلة للتكوين). يمكنك الحصول على نتائج قريبة جداً باستخدام المعلمات الفائقة الموثقة في هذه الصفحة مع حزمة Ultralytics العامة، ولكن التكرار الدقيق يتطلب الفرع الداخلي.

المساهمون

التعليقات