Mixed Precision
تعرف على كيفية تسريع الدقة المختلطة للتدريب وتقليل الذاكرة لنماذج مثل Ultralytics YOLO26. استكشف فوائد FP16 وFP32 لرؤى ذكاء اصطناعي أسرع.
الدقة المختلطة هي تقنية محورية في تحسين النموذج تُستخدَم لتسريع تدريب نماذج التعلم العميق مع تقليل استهلاك الذاكرة. من خلال الجمع بشكل استراتيجي بين تنسيقات عددية مختلفة - عادةً أنواع الفاصلة العائمة بـ 16-بت و 32-بت - تتيح هذه الطريقة لخوارزميات التعلم الآلي إجراء الحسابات بشكل أسرع دون التضحية بالدقة النهائية للنموذج. لقد أصبحت ممارسة قياسية في تطوير الذكاء الاصطناعي الحديث، لا سيما للمهام كثيفة الموارد مثل تدريب بنية YOLO26 على مجموعات بيانات ضخمة.
كيف تعمل الدقة المختلطة#
في سير عمل التعلم العميق التقليدي، عادةً ما تقوم النماذج بإجراء الحسابات باستخدام تنسيق الفاصلة العائمة دقة واحدة (FP32). كل رقم في FP32 يتطلب 32 بت من الذاكرة. على الرغم من داقته العالية، إلا أن هذا التنسيق يمكن أن يكون مكلفاً من الناحية الحسابية ومستهككاً للذاكرة.
تُدخل الدقة المختلطة استخدام الدقة النصفية (FP16)، والتي تستخدم 16 بت فقط. ومع ذلك، فإن استخدام FP16 وحده يمكن أن يؤدي إلى عدم استقرار عددي بسبب نطاق ديناميكي أصغر. لحل هذه المشكلة، تحافظ طرق الدقة المختلطة على "نسخة رئيسية" من أوزان النموذج في FP32 لتحقيق الاستقرار بينما تستخدم FP16 للمهام الثقيلة من العمليات الرياضية، مثل الالتفافات وعمليات ضرب المصفوفات.
تتضمن العملية بشكل عام ثلاث خطوات رئيسية:
-
التحويل (Casting): تحويل مدخلات النموذج وتنشيطاته إلى FP16 لتسريع التنفيذ على الأجهزة المتوافقة، مثل NVIDIA Tensor Cores.
-
قياس الخسارة (Loss Scaling): تضخيم قيم دالة الخسارة لمنع "التدفق السفلي" (underflow)، حيث تصبح تحديثات التدرج الصغيرة أصفاراً في FP16.
-
التراكم (Accumulation): إجراء العمليات الحسابية في FP16 ولكن تراكم النتائج في FP32 للحفاظ على المعلومات الضرورية قبل تحديث الأوزان الرئيسية.
فوائد التدريب في الذكاء الاصطناعي#
يوفر تبني الدقة المختلطة مزايا كبيرة للمطورين والباحثين الذين يستفيدون من الموارد الحسابية بشكل فعال:
- سرعة تدريب أسرع: تتطلب العمليات في FP16 نطاق ترددي للذاكرة أقل وتتم معالجتها بشكل أسرع بواسطة GPUs الحديثة. يمكن أن يؤدي ذلك إلى تقليل الوقت المطلوب لـ عصر التدريب (epoch) بشكل كبير.
- استخدام مخفض للذاكرة: نظراً لأن موترات FP16 تشغل نصف ذاكرة FP32، يمكن للمطورين بشكل أساسي مضاعفة حجم الدفعة (batch size) الخاصة بهم. غالباً ما تؤدي أحجام الدفعات الأكبر إلى تقديرات تدرج أكثر استقراراً وتقارب أسرع.
- كفاءة الطاقة: يترجم العبء الحسابي المنخفض إلى استهلاك أقل للطاقة، وهو أمر بالغ الأهمية لعمليات التدريب السحابي واسعة النطاق.
تطبيقات العالم الحقيقي#
تُستخدم الدقة المختلطة عبر مختلف الصناعات للتعامل مع النماذج المعقدة ومجموعات البيانات الكبيرة بكفاءة.
القيادة الذاتية#
في تطوير المركبات المستقلة، يجب على المهندسين تدريب نماذج كشف الكائنات على ملايين إطارات الفيديو عالية الدقة. يتيح لهم استخدام الدقة المختلطة تدريب أحدث النماذج مثل YOLO26 بكفاءة. تتيح البصمة الذاكرية المخفضة معالجة المدخلات الأعلى دقة، وهو أمر بالغ الأهمية لاكتشاف الكائنات الصغيرة مثل إشارات المرور أو المشاة عن بعد.
تحليل الصور الطبية#
تحليل الصور الطبية غالباً ما يتضمن بيانات حجمية ثلاثية الأبعاد من فحوصات التصوير بالرنين المغناطيسي (MRI) أو التصوير المقطعي المحوسب (CT)، وهي كثيفة الذاكرة للغاية. غالباً ما يؤدي تدريب نماذج التجزئة (segmentation) على هذه البيانات بدقة FP32 الكاملة إلى أخطاء "نفاد الذاكرة" (OOM). تتيح الدقة المختلطة للباحثين ملاءمة هذه النماذج الثقيلة في ذاكرة GPU، مما يسهل تطوير الذكاء الاصطناعي الذي يمكنه مساعدة الأطباء في تشخيص الأمراض في وقت مبكر.
تنفيذ الدقة المختلطة مع Ultralytics#
الأطر الحديثة مثل PyTorch تتعامل عادةً مع تعقيدات الدقة المختلطة تلقائياً عبر ميزة تسمى الدقة المختلطة التلقائية (AMP). تمكّن حزمة ultralytics ميزة AMP افتراضياً أثناء التدريب لضمان الأداء الأمثل.
إليك مثال موجز حول كيفية بدء التدريب باستخدام Ultralytics YOLO26، حيث تكون الدقة المختلطة مفعلة افتراضياً (ويمكن التحكم بها عبر وسيط amp):
from ultralytics import YOLO
# Load the latest YOLO26 model
model = YOLO("yolo26n.pt")
# Train the model on the COCO8 dataset
# amp=True is the default setting for mixed precision training
results = model.train(data="coco8.yaml", epochs=5, imgsz=640, amp=True)الدقة المختلطة مقابل المفاهيم ذات الصلة#
من المفيد التمييز بين الدقة المختلطة والمصطلحات المماثلة في المسرد لتجنب الارتباك:
- كممة النماذج (Model Quantization): بينما تستخدم الدقة المختلطة أرقام فاصلة عائمة ذات دقة أقل (FP16) أثناء التدريب، فإن الكممة عادةً ما تحول الأوزان إلى أعداد صحيحة (مثل INT8) بعد التدريب للنشر. تركز الكممة أساساً على زمن انتقال الاستدلال على الأجهزة الطرفية (edge devices)، بينما تركز الدقة المختلطة على سرعة التدريب والاستقرار.
- الدقة النصفية (Half Precision): يشير هذا تحديداً إلى تنسيق بيانات FP16 نفسه. الدقة المختلطة هي التقنية التي تستخدم كل من FP16 و FP32 معاً. استخدام الدقة النصفية النقية بدون النسخة الرئيسية "المختلطة" FP32 غالباً ما يؤدي إلى نماذج تفشل في التقارب بسبب الأخطاء العددية.
الخلاصة#
لقد أحدثت الدقة المختلطة ثورة في كيفية تدريب الشبكات العصبية، لتكون بمثابة عامل تمكين حاسم لـ النماذج الأساسية الضخمة وأنظمة الرؤية التي نراها اليوم. من خلال موازنة الحاجة إلى الدقة الرياضية مع قيود سرعة الأجهزة والذاكرة، فإنها تتيح للمطورين التكرار بشكل أسرع وبناء حلول ذكاء اصطناعي أكثر قدرة.
بالنسبة لأولئك الذين يتطلعون إلى إدارة مجموعات البيانات وتدريب النماذج المحسنة بسلاسة، توفر منصة Ultralytics بيئة شاملة تستفيد من تقنيات التحسين الحديثة هذه تلقائياً.






