وصفة تدريب 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.pt | yolo26n-objv1-150.pt |
yolo26s.pt | yolo26s-objv1-150.pt |
yolo26m.pt | yolo26m-objv1-150.pt |
yolo26l.pt | yolo26l-objv1-150.pt |
yolo26x.pt | yolo26x-objv1-150.pt |
استخدم التدريب المسبق إعدادات افتراضية في الغالب بدلًا من القيم التي جرى البحث عنها. تطابق lr0 وlrf وmomentum وweight_decay وbox وcls القيمة default.yaml، بينما جرى تجاوز warmup_epochs وclose_mosaic وdfl. الإعدادات مشتركة بين الأحجام، باستثناء warmup_epochs في X، وقوى زيادة البيانات، وأوزان MuSGD والرأس الداخلية المدرجة بعد الجدولين:
| الإعداد | القيمة |
|---|---|
data | Objects365v1 |
epochs | 150 |
imgsz | 640 |
batch | 128 |
optimizer | MuSGD |
lr0 / lrf | 0.01 / 0.01 |
momentum | 0.937 |
weight_decay | 0.0005 |
warmup_epochs | 1 (2 لـ X) |
close_mosaic | 8 |
box / cls / dfl | 7.5 / 0.5 / 6.0 |
| زيادة البيانات | N | S | M | L | X |
|---|---|---|---|---|---|
mosaic | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 |
mixup | 0.0 | 0.05 | 0.15 | 0.15 | 0.2 |
copy_paste | 0.1 | 0.15 | 0.4 | 0.5 | 0.6 |
scale | 0.5 | 0.9 | 0.9 | 0.9 | 0.9 |
تغطي هذه الجداول الإعدادات التي تشكّل التدريب المسبق، وليس الإعداد الكامل. تسجّل نقاط التحقق أكثر من 100 وسيطة، لذا اطبع train_args كما هو موضح أدناه للحصول على القائمة الموثوقة.
متقدم: معلمات التدريب المسبق الداخلية
غيّر التدريب المسبق أيضًا النوع نفسه من معلمات الفروع التجريبية الموضحة في معلمات التدريب الداخلية. كانت قيمة cls_w تساوي 1.0 لكل حجم:
| الإعداد | N | S | M | L | X |
|---|---|---|---|---|---|
muon_w | 0.45 | 0.5 | 0.45 | 0.45 | 0.5 |
sgd_w | 0.55 | 0.5 | 0.55 | 0.55 | 0.6 |
o2m | 0.1 | 0.1 | 0.1 | 1.0 | 1.0 |
لا تحتاج إلى مجموعة بيانات 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 عن بقية النماذج:
| الإعداد | 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 | تعيين التسميات لأفضل 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 - خفّض معدل التعلم باستخدام محسّن صريح:
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 للالتزام المسجّل في نقطة التحقق، ثم أجرِ التدريب على ذلك الفرع. راجع التحقق من مراجعة التعليمات البرمجية.