Ultralytics YOLO27:
Get Started

وصفة تدريب YOLO26#

مقدمة#

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

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

اقرأ الورقة البحثية للاطلاع على الصورة الكاملة

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

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

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

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

  • التدريب المسبق على Objects365 لكل حجم قبل مرحلة COCO
  • التدريب برأسين باستخدام الإشراف one-to-many وone-to-one؛ ويستخدم الاستدلال NMS افتراضيًا، بينما يحدد nms=False الرأس الخالي من 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، ويمكن لأي ملف .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) — لذا تكون الزيادة معطّلة فعليًا.

تستخدم النماذج الأكبر زيادة أشد عمومًا (قيم أعلى لـmixup وscale)، نظرًا إلى سعتها الأكبر واستفادتها من التنظيم الأقوى. والنموذج 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 البرمجية. راجع فحص وسائط تدريب نقطة تحقق 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. تخزّن كل نقطة تحقق results.csv الكاملة لكل حقبة من تشغيلها، لذا يؤدي إسقاط ملف .pt في مشروع على المنصة إلى رسم الخسائر وتطور mAP ومعدلات التعلّم دون الحاجة إلى أي شيفرة. راجع عرض منحنيات التدريب. وللمرحلة الخاصة بـObjects365 سجلها الخاص في نقاط التحقق yolo26*-objv1-150.pt.

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

التعليقات