Half-Precision
تعلم كيف تسرع الدقة النصفية (FP16) الذكاء الاصطناعي. اكتشف كيفية تحسين Ultralytics YOLO26 لاستنتاج أسرع وتقليل الذاكرة على وحدات معالجة الرسومات وأجهزة الحافة.
نصف الدقة، والذي يُشار إليه غالباً بـ FP16، هو تنسيق بيانات الفاصلة العائمة الذي يشغل 16 بت من ذاكرة الكمبيوتر، على عكس تنسيق الدقة الفردية القياسي (FP32) الذي يستخدم 32 بت. في سياق الذكاء الاصطناعي والتعلم الآلي، تعد نصف الدقة تقنية تحسين حاسمة تُستخدم لتسريع تدريب النماذج والاستدلال مع تقليل استهلاك الذاكرة بشكل كبير. ومن خلال تخزين القيم الرقمية - مثل أوزان النموذج والدرجات في الشبكة العصبية - باستخدام عدد أقل من البتات، يمكن للمطورين ملاءمة نماذج أكبر على وحدات معالجة الرسومات GPU أو تشغيل النماذج الحالية بشكل أسرع بكثير. يعد هذا المكسب في الكفاءة أمراً ضرورياً لنشر بنيات حديثة ومعقدة مثل YOLO26 على الأجهزة ذات الموارد المحدودة دون التضحية بدقة كبيرة.
Link to this sectionآليات تنسيقات الفاصلة العائمة#
لفهم نصف الدقة، من المفيد مقارنتها بالدقة الكاملة. يخصص رقم الفاصلة العائمة القياسي المكون من 32 بت (FP32) المزيد من البتات للأس والكسر (mantissa)، مما يوفر نطاقاً ديناميكياً واسعاً جداً ودقة رقمية عالية. ومع ذلك، فإن نماذج التعلم العميق معروفة بمقاومتها للأخطاء الرقمية الصغيرة. وغالباً ما يمكن لـ الشبكات العصبية التعلم بفعالية حتى مع النطاق الديناميكي والحبيبية المحدودين اللذين يوفرهما تنسيق 16 بت.
يؤدي الانتقال إلى نصف الدقة إلى خفض متطلبات النطاق الترددي للذاكرة إلى النصف. وهذا يسمح بـ أحجام دفعات أكبر أثناء التدريب، مما يمكن أن يساعد في استقرار تحديثات التدرج وتسريع عملية التدريب بشكل عام. كما تم تحسين مسرعات الأجهزة الحديثة، مثل Tensor Cores من NVIDIA، بشكل خاص لإجراء عمليات ضرب المصفوفات في FP16 بسرعات أعلى بكثير من FP32.
Link to this sectionالفوائد الرئيسية في سير عمل الذكاء الاصطناعي#
يوفر اعتماد نصف الدقة العديد من المزايا الملموسة لممارسي الذكاء الاصطناعي:
- تقليل استخدام الذاكرة: تتطلب النماذج نصف سعة VRAM (ذاكرة الوصول العشوائي للفيديو)، مما يسمح للمطورين بتدريب شبكات أكبر أو استخدام بيانات تدريب ذات دقة أعلى على نفس الأجهزة.
- استدلال أسرع: بالنسبة للتطبيقات في الوقت الفعلي، مثل المركبات ذاتية القيادة أو تحليل الفيديو، يمكن لـ FP16 مضاعفة الإنتاجية (الإطارات في الثانية)، مما يقلل من زمن وصول الاستدلال.
- كفاءة الطاقة: تتطلب معالجة عدد أقل من البتات طاقة أقل، وهو أمر بالغ الأهمية لأجهزة الذكاء الاصطناعي الطرفي والهواتف المحمولة حيث يعد عمر البطارية قيداً مهماً.
- تدريب الدقة المختلطة: تستخدم العديد من الأطر الحديثة الدقة المختلطة، حيث يحتفظ النموذج بنسخة رئيسية من الأوزان بصيغة FP32 من أجل الاستقرار، ولكنه يقوم بعمليات حسابية ثقيلة بصيغة FP16. وهذا يوفر "أفضل ما في العالمين" - السرعة واستقرار التقارب.
Link to this sectionتطبيقات العالم الحقيقي#
تنتشر نصف الدقة بشكل واسع في أنظمة الذكاء الاصطناعي المخصصة للإنتاج. وإليك مثالان ملموسان:
-
اكتشاف الكائنات في الوقت الفعلي على الأجهزة الطرفية: لننظر في نظام كاميرات أمنية يشغل Ultralytics YOLO26 لاكتشاف المتسللين. يسمح نشر النموذج بصيغة FP16 بتشغيله بسلاسة على شريحة مدمجة مثل NVIDIA Jetson أو Raspberry Pi AI Kit. يضمن الحمل الحسابي المنخفض قدرة النظام على معالجة موجزات الفيديو في وضع الاستدلال في الوقت الفعلي دون تأخير، وهو أمر حيوي للتنبيهات في الوقت المناسب.
-
نشر نماذج اللغات الكبيرة (LLM): تحتوي نماذج الذكاء الاصطناعي التوليدي، مثل GPT-4 أو إصدارات Llama، على مليارات المعلمات. تحميل هذه النماذج بالدقة الكاملة (FP32) سيتطلب كميات هائلة من ذاكرة الخادم التي غالباً ما تكون باهظة التكلفة. ومن خلال تحويل هذه النماذج إلى FP16 (أو حتى تنسيقات أقل)، يمكن لمزودي الخدمات السحابية خدمة النماذج الأساسية لآلاف المستخدمين في وقت واحد، مما يجعل خدمات مثل روبوتات الدردشة وإنشاء المحتوى الآلي مجدية اقتصادياً.
Link to this sectionنصف الدقة مقابل التكميم#
بينما تهدف كلتا التقنيتين إلى تقليل حجم النموذج، من المهم التمييز بين 'نصف الدقة' وتكميم النموذج.
- نصف الدقة (FP16): يقلل عرض البت من 32 إلى 16 ولكنه يحتفظ بالبيانات كرقم فاصلة عائمة. وهو يحتفظ بنطاق ديناميكي معقول وغالباً ما يكون الخيار الافتراضي لـ تدريب GPU والاستدلال.
- التكميم (INT8): يحول أرقام الفاصلة العائمة إلى أعداد صحيحة (عادة 8 بت). يوفر هذا سرعة أكبر وتوفيراً في الذاكرة ولكنه قد يؤدي أحياناً إلى انخفاض أكثر وضوحاً في الدقة إذا لم يتم ذلك بعناية (على سبيل المثال، عبر التدريب الواعي بالتكميم). يعد FP16 أكثر أماناً بشكل عام للحفاظ على أداء النموذج، بينما يُستخدم INT8 للتحسين الشديد.
Link to this sectionتنفيذ نصف الدقة مع Ultralytics#
تجعل مكتبة ultralytics استخدام نصف الدقة أمراً مباشراً. أثناء التنبؤ، يمكن للنموذج التبديل تلقائياً إلى نصف الدقة إذا كان الجهاز يدعم ذلك، أو يمكن طلب ذلك صراحةً.
إليك مثال بلغة Python يوضح كيفية تحميل نموذج YOLO26 وإجراء الاستدلال باستخدام نصف الدقة. لاحظ أن التشغيل بـ half=True يتطلب عادةً وحدة معالجة رسومات تدعم CUDA.
import torch
from ultralytics import YOLO
# Check if CUDA (GPU) is available, as FP16 is primarily for GPU acceleration
device = "cuda" if torch.cuda.is_available() else "cpu"
# Load the latest YOLO26n model
model = YOLO("yolo26n.pt")
# Run inference on an image with half-precision enabled
# The 'half=True' argument tells the engine to use FP16
results = model.predict("https://ultralytics.com/images/bus.jpg", device=device, half=True)
# Print the device and precision status
print(f"Inference device: {results[0].orig_img.shape}, Speed: {results[0].speed}")بالنسبة للمستخدمين الذين يديرون مجموعات البيانات وخطوط أنابيب التدريب، تتعامل منصة Ultralytics مع العديد من هذه التحسينات تلقائياً في السحابة، مما يبسط الانتقال من وضع التعليقات التوضيحية إلى نشر النماذج المحسنة.
Link to this sectionمزيد من القراءة والموارد#
لاستكشاف المزيد حول التنسيقات الرقمية وتأثيرها على الذكاء الاصطناعي، راجع وثائق أداء التعلم العميق من NVIDIA المتعلقة بـ Tensor Cores. وللحصول على فهم أوسع لكيفية ملاءمة هذه التحسينات في دورة حياة التطوير، اقرأ عن عمليات التعلم الآلي (MLOps).
بالإضافة إلى ذلك، قد يبحث المهتمون بالمفاضلات بين استراتيجيات التحسين المختلفة في التقليم، الذي يزيل الاتصالات بدلاً من تقليل دقة البت، أو يستكشفون معيار IEEE للحساب بالفاصلة العائمة (IEEE 754) للحصول على المواصفات الفنية للحساب الرقمي. يساعد فهم هذه الأساسيات في اتخاذ قرارات مستنيرة عند تصدير النماذج إلى تنسيقات مثل ONNX أو TensorRT لبيئات الإنتاج.






