YOLO Vision 2026:

وصفة تدريب YOLO26#

مقدمة#

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

إن معرفة ما دخل في تكوين نقاط التحقق الرسمية — وليس البنية فقط، بل جداول معدل التعلم وخطوط أنابيب زيادة البيانات وأوزان دالة الخسارة التي شكّلت أداءها — تساعدك على اتخاذ قرارات أفضل عند إجراء الضبط الدقيق: أي زيادات البيانات تُبقي، وأي أوزان لـ دالة الخسارة تُعدّل، وما إعدادات المحسّن الأفضل لحجم مجموعة بياناتك.

اقرأ الورقة البحثية لفهم الصورة كاملة

تغطي هذه الصفحة المعلمات الفائقة المسجّلة في نقاط التحقق المُصدرة. لفهم الأساس المنطقي وراءها، بما في ذلك البنية وتغييرات الخسارة وتعيين التسميات ودراسات الإزالة، اقرأ Ultralytics YOLO26: نماذج رؤية موحّدة وفورية من طرف إلى طرف.

نظرة عامة على التدريب#

دُرّبت جميع النماذج الأساسية لـ YOLO26 على مرحلتين: التدريب المسبق على Objects365v1 لمدة 150 حقبة، يليه الضبط الدقيق على COCO. جرت كلتا المرحلتين بدقة 640x640 باستخدام المحسّن MuSGD وحجم دفعة batch size يبلغ 128. لم تُدرّب أي نقطة تحقق لـ YOLO26 على COCO من أوزان عشوائية، ولذلك تكون مرحلة COCO قصيرة لمعظم الأحجام، كما عُثر على المعلمات الفائقة لمرحلة COCO عبر بحث تطوري. تُخزّن سجلات التدريب والمقاييس الكاملة لكل حجم نموذج داخل نقاط التحقق المُصدرة، وتُعرض في شكل مخططات على Ultralytics Platform.

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

  • التدريب المسبق على Objects365 لكل حجم قبل مرحلة COCO
  • التدريب من طرف إلى طرف (end2end=True) مع رأس أحادي إلى أحادي خالٍ من NMS
  • محسّن MuSGD يجمع بين SGD والتحديثات المتعامدة بأسلوب Muon لمصفوفات الأوزان (الأوزان الخطية ثنائية الأبعاد ومرشحات الالتفاف رباعية الأبعاد، التي يُعاد تشكيلها إلى بُعدين)
  • زيادة الفسيفساء القوية (احتمال ~0.9-1.0) مع تعطيلها في الحقَب الأخيرة (close_mosaic=8 في التدريب المسبق، وclose_mosaic=10 على COCO)
  • زيادة المقياس القوية (0.5-0.95) للتعامل مع الكائنات ذات الأحجام المختلفة
  • تدوير/قص محدود لمعظم الأحجام، مع إبقاء التشوه الهندسي منخفضًا

المرحلة 1: التدريب المسبق على Objects365#

ضُبطت كل نقطة تحقق لـ YOLO26 COCO دقيقًا انطلاقًا من نقطة تحقق Objects365v1 بالحجم نفسه. نُشرت هذه الأوزان المدربة مسبقًا أيضًا، ووُثّقت في صفحة مجموعة بيانات Objects365. تسمّي كل نقطة تحقق لـ COCO أوزان البداية في إعداد التدريب المضمّن في ملف .pt، ويوضح قسم فحص وسائط تدريب نقطة تحقق YOLO26 أدناه كيفية قراءتها:

نقطة تحقق COCOأوزان البداية
yolo26n.ptyolo26n-objv1-150.pt
yolo26s.ptyolo26s-objv1-150.pt
yolo26m.ptyolo26m-objv1-150.pt
yolo26l.ptyolo26l-objv1-150.pt
yolo26x.ptyolo26x-objv1-150.pt

استخدم التدريب المسبق إعدادات افتراضية في الغالب بدلًا من القيم التي جرى البحث عنها. تطابق lr0 وlrf وmomentum وweight_decay وbox وcls القيمة default.yaml، بينما جرى تجاوز warmup_epochs وclose_mosaic وdfl. الإعدادات مشتركة بين الأحجام، باستثناء warmup_epochs في X، وقوى زيادة البيانات، وأوزان MuSGD والرأس الداخلية المدرجة بعد الجدولين:

الإعدادالقيمة
dataObjects365v1
epochs150
imgsz640
batch128
optimizerMuSGD
lr0 / lrf0.01 / 0.01
momentum0.937
weight_decay0.0005
warmup_epochs1 (2 لـ X)
close_mosaic8
box / cls / dfl7.5 / 0.5 / 6.0
زيادة البياناتNSMLX
mosaic1.01.01.01.01.0
mixup0.00.050.150.150.2
copy_paste0.10.150.40.50.6
scale0.50.90.90.90.9

تغطي هذه الجداول الإعدادات التي تشكّل التدريب المسبق، وليس الإعداد الكامل. تسجّل نقاط التحقق أكثر من 100 وسيطة، لذا اطبع train_args كما هو موضح أدناه للحصول على القائمة الموثوقة.

متقدم: معلمات التدريب المسبق الداخلية

غيّر التدريب المسبق أيضًا النوع نفسه من معلمات الفروع التجريبية الموضحة في معلمات التدريب الداخلية. كانت قيمة cls_w تساوي 1.0 لكل حجم:

الإعدادNSMLX
muon_w0.450.50.450.450.5
sgd_w0.550.50.550.550.6
o2m0.10.10.11.01.0
البدء من أوزان Objects365

لا تحتاج إلى مجموعة بيانات Objects365 لإعادة استخدام المرحلة 1. تُنزّل نقاط التحقق المدربة مسبقًا تلقائيًا مثل أي أصل آخر من Ultralytics، لذا يمكنك ضبطها دقيقًا على مجموعة بياناتك الخاصة:

from ultralytics import YOLO

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

لإعادة تشغيل مرحلة COCO بدلًا من ذلك، ابدأ من الأوزان نفسها ومرّر قيم المحسّن والخسارة وزيادة البيانات للمرحلة 2 لذلك الحجم من الجداول أدناه. تستبعد هذه الجداول الوسائط الأصغر غير الافتراضية مثل warmup_momentum وwarmup_bias_lr وperspective وflipud وcutmix، لذا اطبع train_args من نقطة التحقق للحصول على الإعداد الدقيق. ترفض الحزمة المُصدرة المعلمات الداخلية، وهي تتطلب الفرع التجريبي.

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

عرض منحنيات التدريب#

لا تُخزّن train_args وحدها. تحمل كل نقطة تحقق أيضًا results.csv الكامل لكل حقبة من التشغيل الذي أنتجها، إلى جانب مقاييس التحقق النهائية. تُنشر منحنيات نقاط التحقق الرسمية لـ YOLO26 على Ultralytics Platform، ويمكن سحب أي ملف .pt وإفلاته في مشروع لرسم البيانات نفسها، مع تحليل البيانات الوصفية من الملف تلقائيًا.

تغطي كل نقطة تحقق المرحلة التي أنتجتها، لذا توجد منحنيات COCO في yolo26s.pt، ومنحنيات Objects365 ذات الـ150 حقبة في yolo26s-objv1-150.pt.

التحقق من مراجعة التعليمات البرمجية#

يسجّل ckpt["git"] الالتزام الذي أنتج نقطة التحقق، وتوجد هذه الالتزامات في فروع تجريبية عامة من مستودع Ultralytics، لذا يمكنك سحب تعليمات التدريب البرمجية الدقيقة:

from ultralytics import YOLO

print(YOLO("yolo26n.pt").ckpt["git"])
# {'root': ..., 'branch': 'exp-main', 'commit': 'cb13d5f9cfbd6f299da3620c625f81d721dc2849', ...}
git fetch origin cb13d5f9cfbd6f299da3620c625f81d721dc2849
git checkout cb13d5f9cfbd6f299da3620c625f81d721dc2849

تتضمن الفروع التجريبية أعمالًا لم تُدمج قط في main، مثل o2m وcls_w القابلين للتهيئة. لن يكون التدريب على main بالمعلمات الفائقة الموثقة أدناه مطابقًا بتاتًا، لكنه سيقع ضمن فرق ضئيل عن المقاييس المنشورة.

المعلمات الفائقة لتدريب YOLO26 حسب حجم النموذج#

هذه هي قيم المرحلة 2 المطبقة فوق أوزان Objects365 المذكورة أعلاه. تجمع الجداول أدناه الوصفة حسب الفئة: المحسّن والجدول الزمني، وأوزان الخسارة، وزيادة البيانات. تأتي كل قيمة مباشرة من train_args المضمّن في نقاط التحقق المُصدرة.

المحسّن ومعدل التعلم#

قادَت إعدادات المحسّن والجدول الزمني هذه الضبط الدقيق على 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). يعكس ذلك اختلاف ديناميكيات التقارب بين النماذج الأصغر والأكبر — إذ تحتاج النماذج الأصغر إلى تحديثات أكثر حدة للتعلم بفعالية.

أوزان الخسارة#

توازن أوزان الخسارة بين المكونات الثلاثة لخسارة الكشف — انحدار 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. وتظل خسارة التصنيف متسقة نسبيًا عبر جميع الأحجام.

خط أنابيب زيادة البيانات#

للاطلاع على شرح مفصل لكل تقنية، راجع دليل زيادة بيانات 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) — أي إن زيادة البيانات معطلة فعليًا.

تستخدم النماذج الأكبر زيادة بيانات أكثر قوة عمومًا (مزيج وتدرّج أعلى)، نظرًا إلى امتلاكها سعة أكبر واستفادتها من الانتظام الأقوى. والنموذج N هو الحجم الوحيد الذي يستخدم تدويرًا وقصًا وزيادة BGR ذات دلالة.

معلمات التدريب الداخلية#

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

تحتوي نقاط التحقق أيضًا على معلمات استُخدمت في فرع التدريب التجريبي، لكنها غير مكشوفة كإعدادات قابلة للتهيئة من قِبل المستخدم في 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تعيين التسميات لأفضل k85555

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

الضبط الدقيق لـ 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
  • خفّض معدل التعلم باستخدام محسّن صريح: optimizer=AdamW و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) على 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 للاطلاع على أمثلة كاملة.

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

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

  • لا. ضُبطت كل نقطة تحقق من COCO دقيقًا انطلاقًا من نقطة تحقق Objects365v1 بالحجم نفسه، وكانت قد دُرّبت مسبقًا لمدة 150 عصرًا، كما هو موضح في المرحلة 1: التدريب المسبق على Objects365 وفي ورقة YOLO26. لا توجد عملية تشغيل لـ COCO من الصفر وراء الأرقام المنشورة، لذا فإن إجراء مقارنة من الصفر مع تلك الأرقام لا يُعد مقارنة متكافئة.

  • توجد داخل نقاط التحقق، كما أنها معروضة في Ultralytics Platform. تخزّن كل نقطة تحقق results.csv الكامل لكل عصر من عصور تشغيلها، لذا فإن إسقاط ملف .pt في مشروع على Platform يرسم الخسائر وتطور mAP ومعدلات التعلم من دون أي تعليمات برمجية. راجع عرض منحنيات التدريب. وللمرحلة الخاصة بـ Objects365 سجلها الخاص في نقاط التحقق yolo26*-objv1-150.pt.

  • ستحصل على مقاييس قريبة من المقاييس المنشورة، لكنها لن تكون مطابقة لها. للحصول على إعداد مطابق، نفّذ checkout للالتزام المسجّل في نقطة التحقق، ثم أجرِ التدريب على ذلك الفرع. راجع التحقق من مراجعة التعليمات البرمجية.

التعليقات