اكتشف كيف تعمل الدقة النصفية (FP16) على تسريع الذكاء الاصطناعي من خلال الحساب الأسرع وتقليل استخدام الذاكرة ونشر النماذج بكفاءة.
نصف الدقة هو تنسيق رقم كمبيوتر ثنائي عائم ثنائي الفاصلة العائمة يشغل 16 بت في ذاكرة الكمبيوتر، ويشار إليه عادةً يشار إليها عادةً ب FP16. في مجال التعلم العميق، يعمل هذا التنسيق كبديل قوي بديلاً قوياً للتنسيق القياسي أحادي الدقة 32 بت (FP32) المستخدم تقليدياً في العمليات الحسابية العددية. من خلال تقليل عدد البتات المطلوبة لتمثيل كل رقم، يقلل نصف الدقة بشكل كبير من عرض النطاق الترددي ومتطلبات التخزين ل أوزان الن ماذج والتفعيلات. تسمح هذه الكفاءة للباحثين والمهندسين بتدريب شبكات عصبية أكبر أو نشر نماذج على أجهزة ذات بموارد محدودة دون المساس بشكل كبير دقة التنبؤات.
يُعرّف معيار IEEE 754 بنية أرقام الفاصلة العائمة حيث يخصص FP16 بت واحد للإشارة، و5 بتات للأس، و10 بتات للكسر (مانتيسا). يتناقض هذا التمثيل المضغوط مع FP32، الذي يستخدم 8 بتات للأس و23 بت للكسر. الميزة الأساسية الميزة الأساسية لاستخدام FP16 في الرؤية الحاسوبية ومهام الذكاء الاصطناعي الأخرى هي تسريع العمليات الحسابية. مسرعات الأجهزة الحديثة، مثل NVIDIA Tensor Cores، تم تصميمها خصيصًا لإجراء عمليات ضرب المصفوفات بنصف دقة بسرعات أعلى بكثير من العمليات أحادية الدقة.
ومع ذلك، فإن انخفاض عدد البتات يعني نطاقًا ديناميكيًا أصغر ودقة أقل. يمكن أن يؤدي ذلك إلى عدم الاستقرار العددي، مثل تلاشي التدرجات، حيث تصبح الأرقام أصغر من أن يتمكن الكمبيوتر من تمثيلها بشكل واضح من الصفر. للتخفيف من ذلك، غالبًا ما يستخدم المطورون استراتيجيات الدقة المختلطة، والتي تقوم ديناميكيًا بين FP16 و FP32 أثناء التدريب للحفاظ على الاستقرار مع الاستفادة من سرعة الدقة النصفية.
تُعد الدقة النصفية منتشرة في كل مكان في عمليات سير عمل الذكاء الاصطناعي الحديثة، خاصةً في السيناريوهات التي تتطلب إنتاجية عالية أو زمن استجابة منخفض. منخفضة.
أطر عمل مثل PyTorch والمكتبات مثل
ultralytics تجعل من السهل الاستفادة من نصف الدقة. يوضح المثال التالي كيفية
تصدير نموذج YOLO11 إلى TensorRT تنسيق باستخدام FP16، وهي
ممارسة شائعة لتحسين سرعة الاستدلال على وحدات معالجة الرسومات NVIDIA .
from ultralytics import YOLO
# Load a pretrained YOLO11 model
model = YOLO("yolo11n.pt")
# Export the model to TensorRT engine with half-precision enabled
# The 'half=True' argument ensures weights are converted to FP16
model.export(format="engine", half=True)
يتطلب فهم الدقة النصفية تمييزها عن تقنيات التحسين ذات الصلة الموجودة في المسرد:
من خلال إتقان هذه التنسيقات، يمكن للمطورين التأكد من أن أن تكون استراتيجيات نشر النماذج الخاصة بهم مناسبة الأجهزة ومتطلبات الأداء الخاصة بمشاريعهم.