انتقل إلى المحتوى

مصطلح في خيطين

تحجيم دالة الخسارةLoss Scaling

المعنى في سطر

تقنية في التدريب بدقة مختلطة بتضرب قيمة الخسارة في رقم كبير قبل الاشتقاق التلقائي، عشان تمنع قيم التدرجات الصغيرة من الاختفاء في صيغة FP16.

تحجيم الخسارة (Loss Scaling) تقنية بتُستخدم في التدريب بدقة مختلطة (Mixed Precision Training) لحل مشكلة إن قيم التدرجات الصغيرة بتختفي (تبقى صفر) لما بتتحول لصيغة FP16 محدودة المدى.

باختصار

ضرب قيمة الخسارة في عامل تحجيم كبير قبل الاشتقاق التلقائي، عشان كل التدرجات تكبر بنفس النسبة وتفضل داخل مدى FP16 القابل للتمثيل، بعدين قسمة أوزان التدرج على نفس العامل قبل تحديث الأوزان.

بالتفصيل

في تجربة على شبكة Multibox SSD، 31% من قيم التدرجات كانت بتتحول لصفر لما تتحول من FP32 لـ FP16 مباشرة، وده كان بيمنع النموذج من التعلم بشكل صحيح. الحل إن ضرب الخسارة في عامل (غالباً بين 8 و32000 حسب الشبكة) بيكبّر كل التدرجات تلقائياً بفضل قاعدة السلسلة في الاشتقاق، من غير ما تحتاج عمليات إضافية.

بعد حساب التدرجات، النظام بيضربها في مقلوب نفس العامل عشان يرجّعها لحجمها الطبيعي قبل ما يحدّث الأوزان، فديناميكية التدريب بتفضل زي ما هي بالظبط لو كنت مدرب بصيغة FP32 كاملة.

مثال عملي

استخدام FP16 مع Tensor Cores بيدي تسريع يوصل لـ 8 أضعاف في بعض الأحمال، مع نص استهلاك الذاكرة تقريباً، لكن من غير تحجيم الخسارة كان التدريب هيتباعد أو يفشل في التقارب.

خلي بالك: عامل التحجيم لازم يتضبط بعناية؛ لو كبير قوي ممكن يسبب فيضان (Overflow) في الاتجاه التاني.

مصطلحات مرتبطة

Mixed Precision Training، Gradient Accumulation، VRAM.

المصادر: NVIDIA