FLOPs
تعرّف على كيفية قياس FLOPs للتعقيد الحسابي لنماذج الذكاء الاصطناعي. اكتشف كيفية حساب FLOPs لـ Ultralytics YOLO26 وتحسين الأداء للذكاء الاصطناعي الطرفي.
FLOPs، أو عمليات الفاصلة العائمة، هو مقياس قياسي يُستخدم لقياس التعقيد الحسابي لنموذج التعلّم الآلي. ويحصي تحديدًا عدد العمليات الحسابية—وبصفة أساسية عمليات الجمع والضرب التي تتضمن أعدادًا عشرية—التي يجب على الشبكة العصبية تنفيذها لمعالجة مُدخل واحد، مثل صورة أو جملة. في عالم التعلّم العميق، تُستخدم FLOPs معيارًا نظريًا لتقدير مدى «ثقل» النموذج أو ارتفاع كلفته الحسابية. ويشير ارتفاع عدد FLOPs عمومًا إلى أن النموذج أكثر تعقيدًا وسيحتاج إلى قدرة معالجة وطاقة أكبر للتنفيذ، في حين يشير انخفاض العدد إلى بنية خفيفة مصممة لتحقيق الكفاءة.
دور FLOPs في اختيار النماذج#
عند تطوير تطبيقات الذكاء الاصطناعي، يواجه المهندسون غالبًا مفاضلة بين الدقة والسرعة. تعمل FLOPs كمؤشر بديل مستقل عن العتاد لـزمن استجابة الاستدلال، ما يتيح للمطورين مقارنة البنى المختلفة من دون الحاجة إلى قياس أدائها على كل جهاز محتمل. ويُعد هذا المقياس أساسيًا لاختيار النموذج المناسب لسيناريوهات نشر محددة. فعلى سبيل المثال، قد يعطي باحث يجري تجارب على خوادم الحوسبة السحابية القوية الأولوية للدقة على حساب الكفاءة، مستخدمًا نماذج ذات FLOPs مرتفعة. وعلى العكس، يجب على مهندس يطوّر لأجهزة الذكاء الاصطناعي الطرفي إعطاء الأولوية لانخفاض FLOPs لضمان تشغيل التطبيق بسلاسة ضمن حدود صارمة للطاقة والحرارة.
التطبيقات الواقعية#
تتضح الآثار العملية لـFLOPs في مختلف القطاعات التي تُعد فيها الموارد الحاسوبية عاملًا حاسمًا.
- الطائرات المسيّرة ذاتية التشغيل: في مجالات مثل الروبوتات الزراعية، تحلل الطائرات المسيّرة المزوّدة بكاميرات صحة المحاصيل في الوقت الفعلي. ونظرًا إلى محدودية بطاريات الطائرات المسيّرة، فإن كل قدر من استهلاك الطاقة مهم. ويختار المهندسون تحديدًا نماذج ذات FLOPs منخفضة، مثل إصدارات Nano من YOLO26، لتقليل استنزاف المعالج الموجود على متن الطائرة، وبالتالي زيادة مدة الطيران ونطاق التشغيل إلى أقصى حد.
- الواقع المعزّز على الأجهزة المحمولة: تعتمد تطبيقات الهواتف الذكية التي تستخدم التعرّف على الوجوه لأغراض الأمان أو تطبّق مرشحات الواقع المعزّز اعتمادًا كبيرًا على المعالجة الفعّالة. ويجب أن تعمل هذه التطبيقات من دون التسبب في ارتفاع حرارة الجهاز أو حدوث تباطؤ. ويستخدم المطورون تقديرات FLOPs لاختيار نماذج خفيفة تتوافق بسهولة مع إمكانات شرائح الأجهزة المحمولة، مثل سلسلة Snapdragon أو شرائح A-series من Apple.
FLOPs مقابل FLOPS (عمليات الفاصلة العائمة في الثانية)#
من المهم التمييز بين «FLOPs» (جمع FLOP) و«FLOPS» (بالأحرف الكبيرة كلها). فعلى الرغم من تشابههما الشديد، فإنهما يقيسان أمرين مختلفين. تشير FLOPs (بحرف 's' صغير) إلى كمية العمليات الإجمالية التي يتطلبها النموذج—وهو مقياس ثابت للتعقيد. أما FLOPS (بحرف 'S' كبير) فهي اختصار لعمليات الفاصلة العائمة في الثانية، وتقيس سرعة العتاد أو قدرته على الأداء، مثل GPU. ويمكنك التفكير في FLOPs على أنها المسافة التي تحتاج السيارة إلى قطعها (العمل المطلوب إنجازه)، في حين أن FLOPS هي السرعة القصوى للسيارة (قدرة العتاد على إنجاز العمل).
قياس FLOPs باستخدام Python#
يمكنك بسهولة حساب الكلفة الحسابية لنموذج Ultralytics باستخدام Python. ويفيد ذلك بصفة خاصة أثناء مرحلة تحسين النموذج لضمان ملاءمة شبكتك العصبية لميزانية العتاد لديك. يوضح المثال التالي كيفية تحميل نموذج YOLO26 وتحديد قيمة FLOPs الخاصة به.
from ultralytics import YOLO
from ultralytics.utils.torch_utils import get_flops
# Load a lightweight YOLO26 model
model = YOLO("yolo26n.pt")
# Calculate and print the model's FLOPs (Billions of operations)
# This gives you a hardware-independent complexity metric
flops = get_flops(model)
print(f"Model FLOPs: {flops:.2f} Billion")تقليل FLOPs لتحقيق الكفاءة#
لجعل النماذج أكثر قابلية للنشر، يستخدم الباحثون عدة تقنيات لتقليل FLOPs من دون التضحية بالدقة بدرجة كبيرة. يتضمن تشذيب النموذج إزالة الوصلات الأقل أهمية في الشبكة العصبية، مما يؤدي فعليًا إلى تقليصها. ومن التقنيات الأخرى التكميم، الذي يقلل دقة الأعداد المستخدمة في العمليات الحسابية (مثل الانتقال من أعداد فاصلة عائمة بحجم 32 بت إلى أعداد صحيحة بحجم 8 بت). وتساعد الأدوات المتاحة على منصة Ultralytics في تبسيط عمليات التحسين هذه، مما يسهّل نشر النماذج الفعّالة على أهداف مثل TensorRT أو OpenVINO. ومن خلال فهم FLOPs وتحسينها، يستطيع المطورون بناء أنظمة ذكاء اصطناعي قوية ومستدامة في آنٍ واحد.









