Ultralytics YOLO27: انضم إلى قائمة الانتظار.
ترخيص YOLO
العودة إلى مسرد Ultralytics

Mixed Precision

يدرّب التدريب مختلط الدقة الشبكات العصبية بحسابات 16 بت وأوزان رئيسية بدقة FP32، ما يقلل استخدام الذاكرة ووقت التدريب. يتناول تحجيم الخسارة وBF16 وAMP.

الدقة المختلطة تقنية تدريب تنفذ معظم العمليات الحسابية في الشبكة العصبية بتنسيق فاصلة عائمة ذي 16 بت، إما FP16 (دقة نصفية) أو BF16، مع الاحتفاظ بنسخة رئيسية من أوزان النموذج ذات 32 بت (FP32) وتنفيذ العمليات الحساسة عدديًا بدقة FP32. تستهلك قيم 16 بت نصف الذاكرة وعرض النطاق الترددي الذي تستهلكه قيم FP32، وتضرب أنوية Tensor في وحدات GPU الحديثة هذه القيم بسرعة أكبر بكثير، لذا تقلل الدقة المختلطة مدة التدريب وتتيح احتواء أحجام دفعات أكبر في الذاكرة مع الحفاظ على دقة FP32. والوصفة التي وصفها Micikevicius وآخرون عام 2018، باستخدام أوزان رئيسية FP32 وحسابات FP16 وتحجيم الخسارة، هي ما تؤتمته الآن أطر التعلم العميق تحت مسمى الدقة المختلطة التلقائية (AMP).

آلية عمل الدقة المختلطة#

تتيح ثلاثة عناصر مطابقة دقة الانتشار العكسي وتحديثات الأوزان في التدريب ذي 16 بت لدقة التدريب باستخدام FP32:

  1. الأوزان الرئيسية FP32: يطبّق المحسّن كل تحديث على نسخة FP32 من الأوزان. وغالبًا ما يُقرَّب تحديث ضئيل يُضاف مباشرةً إلى وزن FP16 إلى الصفر، لأن FP16 لا يحتفظ إلا بنحو ثلاثة أرقام عشرية معنوية.
  2. الدقة لكل عملية: ينفذ سياق autocast عمليات ضرب المصفوفات والالتفافات بدقة 16 بت، حيث تمنح أنوية Tensor أكبر تسريع، ويُبقي عمليات الاختزال وسوفت ماكس والخسارة بدقة FP32.
  3. تحجيم الخسارة: لا يستطيع FP16 تمثيل مقادير أصغر من نحو 6 × 10⁻⁸، لذلك قد يهبط العديد من التدرجات الصغيرة إلى الصفر. ويؤدي ضرب الخسارة بعامل تحجيم قبل الانتشار العكسي إلى نقل كل تدرج إلى نطاق FP16، ثم تُقسم التدرجات على العامل نفسه قبل تحديث الأوزان.

في AMP في PyTorch، يتولى torch.autocast التحويل لكل عملية، ويتولى GradScaler تحجيم الخسارة:

import torch
from torch import nn

# Use FP16 on an NVIDIA GPU and BF16 on CPU
device = "cuda" if torch.cuda.is_available() else "cpu"
dtype = torch.float16 if device == "cuda" else torch.bfloat16

model = nn.Linear(512, 10).to(device)  # master weights stay in FP32
optimizer = torch.optim.SGD(model.parameters(), lr=0.01)
scaler = torch.amp.GradScaler(device, enabled=dtype == torch.float16)  # loss scaling for FP16 only

x = torch.randn(64, 512, device=device)
with torch.autocast(device_type=device, dtype=dtype):
    out = model(x)  # the matrix multiply runs in 16-bit
    loss = out.float().pow(2).mean()

scaler.scale(loss).backward()
scaler.step(optimizer)
scaler.update()
print(f"Output: {out.dtype}, weights: {model.weight.dtype}, gradients: {model.weight.grad.dtype}")

على CPU، يطبع المقتطف torch.bfloat16 لمخرج الطبقة وtorch.float32 لكل من الأوزان وتدرجاتها؛ أما على وحدة NVIDIA GPU، فالمخرج هو torch.float16. وتتعايش حسابات 16 بت والأوزان الرئيسية FP32 في خطوة تدريب واحدة.

يعدّل GradScaler في PyTorch عامل التحجيم ديناميكيًا. يبدأ من 65,536، ويخفض العامل إلى النصف ويتخطى الخطوة كلما احتوت التدرجات المحجّمة على قيم inf أو NaN، ثم يضاعف العامل بعد 2,000 خطوة متتالية من دون تجاوز، ليستقر العامل دون النقطة التي تفيض عندها التدرجات بقليل.

FP16 وBF16 ودقات أقل#

يخصص FP16 خمسة بتات للأس، وعشرة للجزء الكسري، لذا فهو دقيق لكنه يفيض عند تجاوز 65,504. ويحتفظ BF16 ببتات الأس الثمانية الخاصة بـFP32، فيغطي النطاق نفسه حتى نحو 3.4 × 10³⁸، مع سبعة بتات فقط للجزء الكسري، ولذلك لا يحتاج إلى تحجيم الخسارة مقابل تقريب أقل دقة. يعمل BF16 على وحدات NVIDIA GPU بدءًا من جيل Ampere، وعلى TPU من Google، وعلى كثير من وحدات CPU الحديثة، وهو تنسيق التدريب المعتاد لـنماذج اللغة الكبيرة. وتمتد الفكرة نفسها إلى FP8 على وحدات GPU من طرازي Hopper وBlackwell عبر Transformer Engine من NVIDIA، وإلى تنسيقات FP4 مثل NVFP4 على Blackwell.

الدقة المختلطة عمليًا#

يتمثل الخطر العملي الرئيسي لـAMP في نموذج أو وحدة GPU تنتج خسائر NaN عند استخدام دقة 16 بت. ويُفعّل تدريب Ultralytics YOLO26 تقنية AMP افتراضيًا باستخدام amp=True، إذ يقارن أولًا تنبؤات FP32 وAMP من نموذج YOLO26n على وحدات GPU التي تستخدم CUDA، ثم يعود إلى FP32 إذا اختلفت التنبؤات أو كانت وحدة GPU من سلسلة معروفة بإنتاج خسائر NaN عند استخدام AMP، مثل سلسلة GTX 16. ويحوّل إعداد amp="bf16" السياق التلقائي إلى BF16 مع تعطيل تحجيم الخسارة.

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

  • تكميم النماذج: يحوّل التكميم نموذجًا مدرّبًا إلى أعداد صحيحة منخفضة الدقة مثل INT8 لتسريع الاستدلال، بينما تسرّع الدقة المختلطة التدريب وتُبقي الأوزان بأعداد فاصلة عائمة.
  • التدريب الواعي بالتكميم: تحاكي QAT التقريب إلى أعداد صحيحة أثناء التدريب، ليحافظ النموذج على دقته بعد نشره باستخدام INT8.
  • الدقة النصفية: تشير الدقة النصفية إلى تنسيق الأعداد FP16 نفسه، أما الدقة المختلطة فهي تقنية التدريب التي تجمعه مع FP32. ويؤدي التدريب باستخدام FP16 وحده، دون أوزان رئيسية FP32 أو تحجيم للخسارة، إلى فقدان التحديثات الصغيرة بسبب التقريب والتدرجات الصغيرة بسبب الهبوط إلى ما دون النطاق، وغالبًا ما يمنع تقارب النموذج.

استكشف الحلول

الرؤية الحاسوبية في الرياضة

الرؤية الحاسوبية في الرياضة

اكتشف كيف يعزّز Ultralytics YOLO الرؤية الحاسوبية الرياضية عبر تتبّع اللاعبين والكرة، وتحليلات الأداء، ورؤى التدريب، وإعادة تأهيل الرياضيين.
معرفة المزيد
الرؤية الحاسوبية للصور الجوية

الرؤية الحاسوبية للصور الجوية

حوّل صور الطائرات المسيّرة والصور الجوية إلى رؤى آنية للزراعة وتربية الأحياء المائية والحفاظ على البيئة والتحليل الجغرافي المكاني باستخدام Ultralytics YOLO.
معرفة المزيد
الرؤية الحاسوبية في قطاع الطيران والفضاء

الرؤية الحاسوبية في قطاع الطيران والفضاء

طبّق الرؤية الحاسوبية في مجال الطيران والفضاء باستخدام Ultralytics YOLO لفحص الطائرات، واكتشاف الأجسام الغريبة على المدارج (FOD)، والعمليات الأرضية في المطارات، واكتشاف عيوب المواد المركّبة.
معرفة المزيد
الرؤية الحاسوبية في مجال الأمن

الرؤية الحاسوبية في مجال الأمن

احمِ كل موقع باستخدام نماذج Ultralytics YOLO. يدعم الذكاء الاصطناعي البصري مراقبة المحيط، واكتشاف التهديدات، والتعرف على لوحات المركبات، والسلامة في مكان العمل.
معرفة المزيد
الرؤية الحاسوبية في الروبوتات

الرؤية الحاسوبية في الروبوتات

عزّز أداء الآلات الذكية باستخدام نماذج Ultralytics YOLO. يدعم الذكاء الاصطناعي البصري في الروبوتات الملاحة الذاتية والإدراك وتعقب الأجسام والتحكم الآني.
معرفة المزيد
الرؤية الحاسوبية في الخدمات اللوجستية

الرؤية الحاسوبية في الخدمات اللوجستية

بسّط العمليات اللوجستية باستخدام نماذج Ultralytics YOLO. يتيح الذكاء الاصطناعي البصري فحص الطرود وفرزها وتتبع المركبات ومراقبة سلامة المستودعات في الوقت الفعلي.
معرفة المزيد
الرؤية الحاسوبية في تجارة التجزئة

الرؤية الحاسوبية في تجارة التجزئة

أعِد تصور تجارة التجزئة باستخدام نماذج Ultralytics YOLO. يتيح الذكاء الاصطناعي البصري تتبع المخزون ومراقبة الرفوف وإدارة الطوابير واستخلاص رؤى أذكى عن العملاء.
معرفة المزيد
الرؤية الحاسوبية في الرعاية الصحية

الرؤية الحاسوبية في الرعاية الصحية

أنشئ حلولًا للرعاية الصحية باستخدام نماذج Ultralytics YOLO. يعزز الذكاء الاصطناعي البصري في الرعاية الصحية سرعة التصوير الطبي، وكفاءة التشخيص، ومراقبة المرضى.
معرفة المزيد
الرؤية الحاسوبية في التصنيع

الرؤية الحاسوبية في التصنيع

حسّن التصنيع باستخدام نماذج Ultralytics YOLO. يعزز الذكاء الاصطناعي للرؤية مراقبة الجودة واكتشاف العيوب والالتزام بمعدات الوقاية الشخصية وأتمتة خطوط التجميع.
معرفة المزيد
الرؤية الحاسوبية في قطاع السيارات

الرؤية الحاسوبية في قطاع السيارات

طبّق الرؤية الحاسوبية في قطاع السيارات باستخدام نماذج Ultralytics YOLO. يعزز الذكاء الاصطناعي للرؤية سلامة الطرق ومساعدة السائق وأتمتة المركبات لإنشاء طرق أكثر ذكاءً.
معرفة المزيد
الرؤية الحاسوبية في الزراعة

الرؤية الحاسوبية في الزراعة

أدخل الذكاء الاصطناعي البصري إلى الزراعة الذكية باستخدام نماذج Ultralytics YOLO. عزّز مراقبة المحاصيل وتتبع الماشية والزراعة الدقيقة لزيادة الإنتاجية وتحسينها.
معرفة المزيد

لنبنِ مستقبل الذكاء الاصطناعي معًا!

ابدأ رحلتك نحو مستقبل تعلّم الآلة