Half-Precision
تعرّف على كيفية تسريع الدقة النصفية (FP16) للذكاء الاصطناعي. اكتشف كيفية تحسين Ultralytics YOLO26 لاستدلال أسرع واستهلاك أقل للذاكرة على وحدات GPU والأجهزة الطرفية.
الدقة النصفية، التي يُشار إليها غالبًا بالرمز FP16، هي تنسيق بيانات بالفاصلة العائمة يشغل 16 بتًا من ذاكرة الحاسوب، خلافًا للتنسيق القياسي أحادي الدقة (FP32) الذي يستخدم 32 بتًا. وفي مجال الذكاء الاصطناعي والتعلم الآلي، تُعد الدقة النصفية تقنية تحسين أساسية تُستخدم لتسريع تدريب النماذج والاستدلال بها مع خفض استهلاك الذاكرة بدرجة كبيرة. ومن خلال تخزين القيم العددية—مثل أوزان النموذج وتدرجات الشبكات العصبية—باستخدام عدد أقل من البتات، يستطيع المطورون تشغيل نماذج أكبر على وحدات معالجة الرسومات GPU أو تشغيل النماذج الحالية بسرعة أكبر بكثير. وتُعد مكاسب الكفاءة هذه ضرورية لنشر بُنى حديثة ومعقدة مثل YOLO26 على أجهزة محدودة الموارد دون التضحية بقدر كبير من الدقة.
آلية عمل تنسيقات الفاصلة العائمة#
لفهم الدقة النصفية، من المفيد مقارنتها بالدقة الكاملة. فالعدد القياسي بالفاصلة العائمة ذي 32 بتًا (FP32) يخصص عددًا أكبر من البتات للأس والمُعامل، ما يوفر نطاقًا ديناميكيًا واسعًا جدًا ودقة عددية عالية. لكن نماذج التعلم العميق تتحمل الأخطاء العددية الصغيرة بدرجة ملحوظة. وغالبًا ما تستطيع الشبكات العصبية التعلم بفعالية حتى مع النطاق الديناميكي والدقة الحبيبية الأقل اللذين يوفرهما تنسيق 16 بتًا.
يؤدي الانتقال إلى الدقة النصفية إلى خفض متطلبات عرض نطاق الذاكرة إلى النصف. وهذا يتيح استخدام أحجام دفعات أكبر أثناء التدريب، ما قد يثبّت تحديثات التدرجات ويسرّع عملية التدريب الإجمالية. وقد صُممت مسرّعات العتاد الحديثة، مثل Tensor Cores من NVIDIA، خصيصًا لتنفيذ عمليات ضرب المصفوفات بدقة FP16 بسرعات أعلى بكثير من FP32.
الفوائد الرئيسية في مسارات عمل الذكاء الاصطناعي#
يوفر اعتماد الدقة النصفية عدة مزايا ملموسة لممارسي الذكاء الاصطناعي:
- تقليل استهلاك الذاكرة: تتطلب النماذج نصف مساحة VRAM (ذاكرة الفيديو)، ما يتيح للمطورين تدريب شبكات أكبر أو استخدام بيانات تدريب أعلى دقة على العتاد نفسه.
- استدلال أسرع: في التطبيقات الفورية، مثل المركبات ذاتية القيادة أو تحليلات الفيديو، يمكن لـFP16 مضاعفة معدل الإنتاجية (عدد الإطارات في الثانية)، ما يقلل زمن استجابة الاستدلال.
- كفاءة الطاقة: تتطلب معالجة عدد أقل من البتات طاقة أقل، وهو أمر بالغ الأهمية لأجهزة الذكاء الاصطناعي الطرفي والهواتف المحمولة التي يشكل عمر البطارية فيها قيدًا.
- التدريب بدقة مختلطة: تستخدم أُطر عمل حديثة كثيرة الدقة المختلطة، حيث يحتفظ النموذج بنسخة رئيسية من الأوزان بدقة FP32 لتحقيق الاستقرار، لكنه ينفذ العمليات الحسابية المكثفة بدقة FP16. ويوفر ذلك «أفضل ما في العالمين»—السرعة واستقرار التقارب.
تطبيقات عملية#
تُستخدم الدقة النصفية على نطاق واسع في أنظمة الذكاء الاصطناعي الجاهزة للإنتاج. وفيما يلي مثالان عمليان:
-
كشف الكائنات في الوقت الفعلي على الأجهزة الطرفية: لنفترض وجود نظام كاميرات أمنية يشغّل Ultralytics YOLO26 لكشف المتسللين. يتيح نشر النموذج بدقة FP16 تشغيله بسلاسة على شريحة مدمجة مثل NVIDIA Jetson أو Raspberry Pi AI Kit. ويضمن خفض العبء الحسابي معالجة النظام لبث الفيديو في وضع الاستدلال الفوري دون تأخير، وهو أمر حيوي لإرسال التنبيهات في الوقت المناسب.
-
نشر نماذج اللغة الكبيرة (LLM): تحتوي نماذج الذكاء الاصطناعي التوليدي، مثل GPT-4 أو إصدارات Llama، على مليارات المعلمات. يتطلب تحميل هذه النماذج بدقة كاملة (FP32) كميات هائلة من ذاكرة الخوادم، وغالبًا ما تكون تكلفة توفيرها باهظة. ومن خلال تحويل هذه النماذج إلى FP16 (أو حتى إلى تنسيقات أقل دقة)، يستطيع موفرو الخدمات السحابية تقديم النماذج الأساسية لآلاف المستخدمين في الوقت نفسه، ما يجعل خدمات مثل روبوتات المحادثة وتوليد المحتوى آليًا مجدية اقتصاديًا.
الدقة النصفية مقارنةً بالتكميم#
مع أن كلتا التقنيتين تهدفان إلى تقليل حجم النموذج، فمن المهم التمييز بين «الدقة النصفية» وتكميم النموذج.
- الدقة النصفية (FP16): تخفّض عرض البتات من 32 إلى 16، مع الإبقاء على البيانات كأعداد بالفاصلة العائمة. وتحافظ على نطاق ديناميكي معقول، وغالبًا ما تكون الخيار الافتراضي لـالتدريب على GPU والاستدلال.
- التكميم (INT8): يحوّل الأعداد بالفاصلة العائمة إلى أعداد صحيحة (عادةً بثمانية بتات). ويوفر ذلك مكاسب أكبر في السرعة والذاكرة، لكنه قد يؤدي أحيانًا إلى انخفاض أوضح في الدقة إذا لم يُنفذ بعناية (مثلًا عبر التدريب الواعي بالتكميم). وتُعد FP16 عمومًا أكثر أمانًا للحفاظ على أداء النموذج، بينما تُستخدم INT8 للتحسينات القصوى.
تنفيذ الدقة النصفية باستخدام Ultralytics#
تسهّل مكتبة ultralytics استخدام الدقة النصفية. وأثناء التنبؤ، يمكن للنموذج التحول تلقائيًا إلى الدقة النصفية إذا كان العتاد يدعمها، أو يمكن طلب ذلك صراحةً.
فيما يلي مثال Python يوضح كيفية تحميل نموذج YOLO26 وتنفيذ الاستدلال باستخدام الدقة النصفية. لاحظ أن التشغيل في half=True يتطلب عادةً وحدة GPU مزودة بتقنية 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 تلقائيًا كثيرًا من هذه التحسينات في السحابة، ما يبسّط الانتقال من الوسم إلى نشر النماذج المحسّنة.
مزيد من القراءة والموارد#
للاطلاع على مزيد من المعلومات حول التنسيقات العددية وتأثيرها في الذكاء الاصطناعي، راجع وثائق NVIDIA لأداء التعلم العميق بشأن Tensor Cores. ولفهم أوسع لكيفية اندراج هذه التحسينات ضمن دورة التطوير، اقرأ عن عمليات التعلم الآلي (MLOps).
إضافةً إلى ذلك، يمكن للمهتمين بالمفاضلات بين استراتيجيات التحسين المختلفة الاطلاع على التقليم، الذي يزيل الوصلات بدلًا من تقليل دقة البتات، أو الرجوع إلى معيار IEEE للحساب بالفاصلة العائمة (IEEE 754) للاطلاع على المواصفات التقنية للحساب الرقمي. ويساعد فهم هذه الأساسيات على اتخاذ قرارات مدروسة عند تصدير النماذج إلى تنسيقات مثل ONNX أو TensorRT لبيئات الإنتاج.









