التدريب المختلط الدقة هو تقنية مستخدمة في التعلم العميق (DL) لتسريع تدريب النموذج وتقليل استهلاك الذاكرة دون التأثير بشكل كبير على دقة النموذج. ويحقق ذلك من خلال الاستخدام الاستراتيجي لمجموعة من تنسيقات الدقة العددية المختلفة لتخزين وحساب القيم داخل الشبكة العصبية (NN). عادةً ما يتضمن ذلك استخدام تنسيق الفاصلة العائمة القياسي 32 بت (FP32 أو أحادية الدقة) للأجزاء الحرجة مثل تخزين أوزان النموذج، مع استخدام تنسيقات الفاصلة العائمة الأسرع والأقل استهلاكًا للذاكرة (FP16 أو نصف دقة، وأحيانًا BF16 أو BFloat16) للعمليات الحسابية أثناء الممرات الأمامية والخلفية(الترحيل العكسي).
كيف تعمل الدقة المختلطة
تتمثل الفكرة الأساسية وراء الدقة المختلطة في الاستفادة من مزايا السرعة والذاكرة للتنسيقات منخفضة الدقة مع تخفيف مشاكل الاستقرار العددي المحتملة. يتضمن النهج الشائع هذه الخطوات:
- الاحتفاظ بالأوزان الرئيسية بتنسيق FP32: يتم الاحتفاظ بنسخة أساسية من أوزان النموذج بتنسيق FP32 القياسي لضمان دقة عالية لتحديثات الأوزان.
- استخدم FP16/BF16 للحسابات: أثناء حلقة التدريب، يتم تحويل أوزان FP32 إلى FP16 أو BF16 للتمريرات الأمامية والخلفية. تكون العمليات الحسابية التي تستخدم هذه التنسيقات ذات الدقة المنخفضة أسرع بكثير على الأجهزة الحديثة مثل وحدات معالجة الرسوماتNVIDIA المجهزة بنواةTensor والتي تم تصميمها خصيصًا لتسريع عمليات ضرب المصفوفات في دقة أقل.
- تحجيم الخسارة: عند استخدام FP16، يكون نطاق الأرقام القابلة للتمثيل أصغر بكثير من FP32. قد يتسبب هذا في أن تصبح قيم التدرج الصغيرة المحسوبة أثناء الترحيل العكسي صفرًا (أقل من التدفق)، مما يعيق التعلم. لمنع ذلك، يتم زيادة قيمة الخسارة قبل الترحيل العكسي، مما يؤدي إلى زيادة التدرجات إلى نطاق قابل للتمثيل بواسطة FP16. قبل تحديث الوزن، يتم تحجيم هذه التدرجات مرة أخرى. إن BF16، بنطاقه الديناميكي الأوسع المشابه لنطاق FP32 ولكن بدقة أقل، غالبًا ما يتجنب الحاجة إلى قياس الخسارة.
- تحديث الأوزان الرئيسية: يتم استخدام التدرجات المحسوبة (التي تم تحجيمها (في حالة استخدام مقياس الفقد) لتحديث النسخة الرئيسية للأوزان، والتي تظل في FP32.
هذا التوازن الدقيق يسمح للنماذج بالتدريب بشكل أسرع واستخدام أقل GPU أقل.
فوائد الدقة المختلطة
- تدريب أسرع: يتم تنفيذ العمليات الحسابية ذات الدقة المنخفضة (FP16/BF16) بشكل أسرع بكثير على الأجهزة المتوافقة، مما يقلل بشكل كبير من الوقت اللازم لكل حلقة تدريبية. وهذا يسمح بتكرار وتجريب أسرع.
- انخفاض استهلاك الذاكرة: تتطلب قيم FP16/BF16 نصف ذاكرة قيم FP32. وينطبق هذا التخفيض على التنشيطات المخزنة أثناء المسار الأمامي والتدرجات المحسوبة أثناء المسار الخلفي. يتيح الاستخدام الأقل للذاكرة إمكانية تدريب نماذج أكبر أو استخدام أحجام دفعات أكبر، مما يحسن أداء النموذج واستقرار التدريب.
- تحسين الكفاءة: يؤدي الجمع بين الحوسبة الأسرع ومتطلبات عرض النطاق الترددي للذاكرة المنخفضة إلى استخدام أكثر كفاءة لموارد الأجهزة، مما قد يؤدي إلى خفض تكاليف التدريب للحوسبة السحابية أو المجموعات المحلية.
الدقة المختلطة مقابل المفاهيم ذات الصلة
- الدقة الكاملة (FP32): يستخدم التدريب التقليدي FP32 لجميع عمليات التخزين والحساب. إنه أكثر استقرارًا عدديًا بشكل عام ولكنه أبطأ وأكثر استهلاكًا للذاكرة من الدقة المختلطة.
- نصف الدقة (FP16/BF16): يمكن أن يؤدي استخدام FP16 أو BF16 فقط خلال التدريب إلى عدم استقرار عددي كبير (خاصةً FP16 بدون تقنيات مثل قياس الخسارة) وفقدان محتمل للدقة. الدقة المختلطة هي نهج أكثر قوة يجمع بين FP32 و FP16/BF16.
- التكميم الكمي للنموذج: يشير هذا عادةً إلى تحويل أوزان النموذج و/أو التنشيطات إلى تنسيقات أقل دقة، مثل الأعداد الصحيحة 8 بت (INT8)، وذلك في المقام الأول لتحسين سرعة الاستدلال وكفاءته، خاصةً على الأجهزة المتطورة. على الرغم من استخدامه أحيانًا أثناء التدريب(التدريب الواعي بالتكييف الكمي)، إلا أنه يختلف عن الدقة المختلطة النموذجية FP32/FP16 المستخدمة أثناء مراحل التدريب القياسية.
التطبيقات والأمثلة
يتم اعتماد الدقة المختلطة على نطاق واسع في تدريب نماذج التعلم الآلي واسعة النطاق (ML).
- تدريب نماذج اللغات الكبيرة (LLMs): تحتوي نماذج مثل GPT-3 وBERT وT5 على مليارات المعلمات. يتطلب تدريبها باستخدام FP32 فقط كميات هائلة من ذاكرة GPU والوقت. تجعل الدقة المختلطة تدريب مثل هذه النماذج التأسيسية أمراً ممكناً من خلال تقليل احتياجات الذاكرة بشكل كبير وتسريع العمليات الحسابية. أطر عمل مثل PyTorch و TensorFlow دعمًا مدمجًا للتدريب المختلط الدقة.
- تسريع نماذج الرؤية الحاسوبية: في مجال الرؤية الحاسوبية (CV)، تعمل الدقة المختلطة على تسريع تدريب النماذج المعقدة مثل الشبكات العصبية التلافيفية (CNNs ) ومحولات الرؤية (ViTs) المستخدمة في مهام مثل اكتشاف الأجسام وتجزئة الصور وتصنيف الصور. على سبيل المثال، تعمل نماذج Ultralytics YOLO بما في ذلك أحدث نماذج Ultralytics YOLO11أن تستفيد من الدقة المختلطة أثناء التدريب من أجل تقارب أسرع واستخدام فعال للموارد، كما هو مذكور في نصائحنا الخاصة بتدريب الن ماذج ومقارنات النماذج. يتيح ذلك للمستخدمين تدريب نماذج عالية الأداء بسرعة أكبر على مجموعات بيانات مثل COCO. تعمل دورات التدريب الأسرع على تسهيل ضبط أسرع للمقياس التشعبي وتطوير النماذج داخل منصات مثل Ultralytics HUB. يمكن أيضًا استخدام الدقة المختلطة أثناء الاستدلال لتسريع النشر، خاصةً عند تصدير النماذج إلى تنسيقات مثل TensorRT التي تعمل على تحسين الدقة المنخفضة بشكل كبير.