FLOPs
تعرف على كيفية قياس FLOPs للتعقيد الحسابي لنماذج الذكاء الاصطناعي. اكتشف كيفية حساب FLOPs لـ Ultralytics YOLO26 وتحسين الأداء لـ Edge AI.
مقياس FLOPs، أو عمليات الفاصلة العائمة، هو معيار يُستخدم لقياس التعقيد الحسابي لنموذج تعلم الآلة. وهو يحسب تحديداً عدد العمليات الحسابية -التي تتكون أساساً من عمليات الجمع والضرب التي تتضمن أعداداً عشرية- التي يجب على الشبكة العصبية تنفيذها لمعالجة مدخل واحد، مثل صورة أو جملة. في عالم التعلم العميق، يُعد مقياس FLOPs معياراً نظرياً لتقدير مدى "ثقل" النموذج أو تكلفته الحسابية. وعادةً ما يشير ارتفاع عدد عمليات FLOPs إلى أن النموذج أكثر تعقيداً وسيطلب قوة معالجة وطاقة أكبر للتنفيذ، بينما يشير العدد الأقل إلى بنية خفيفة مصممة لتحقيق الكفاءة.
دور FLOPs في اختيار النموذج#
عند تطوير تطبيقات الذكاء الاصطناعي، غالباً ما يواجه المهندسون مفاضلة بين الدقة والسرعة. يعمل مقياس FLOPs كبديل مستقل عن العتاد الصلب لتقدير زمن استجابة الاستدلال، مما يتيح للمطورين مقارنة البنى المختلفة دون الحاجة إلى تشغيل اختبارات الأداء على كل جهاز ممكن. يُعد هذا القياس ضرورياً لاختيار النموذج المناسب لسيناريوهات نشر محددة. على سبيل المثال، قد يعطي باحث يجري تجارب على خوادم الحوسبة السحابية القوية الأولوية للدقة على حساب الكفاءة، مستخدماً نماذج ذات عدد مرتفع من FLOPs. وعلى العكس من ذلك، يجب على المهندس الذي يطور أجهزة الذكاء الاصطناعي على الحافة إعطاء الأولوية لانخفاض عدد FLOPs لضمان تشغيل التطبيق بسلاسة ضمن حدود الطاقة والحرارة الصارمة.
تطبيقات العالم الحقيقي#
الآثار العملية لـ FLOPs واضحة عبر مختلف الصناعات التي تعد فيها الموارد الحسابية عاملاً حاسماً.
- الطائرات بدون طيار المستقلة: في مجالات مثل روبوتات الزراعة، تقوم الطائرات بدون طيار المزودة بكاميرات بتحليل صحة المحاصيل في الوقت الفعلي. ونظراً لأن بطاريات الطائرات بدون طيار محدودة، فإن كل جزء من استهلاك الطاقة يهم. يختار المهندسون على وجه تحديد نماذج ذات عدد منخفض من FLOPs، مثل متغيرات Nano الخاصة بنموذج YOLO26، لتقليل استنزف المعالج الموجود على متن الطائرة، مما يتيح تعظيم وقت الطيران ونطاق التشغيل.
- الواقع المعزز المحمول: تعتمد تطبيقات الهواتف الذكية التي تستخدم التعرف على الوجه للأمان أو تطبق مرشحات الواقع المعزز بشكل كبير على المعالجة الفعالة. يجب أن تعمل هذه التطبيقات دون التسبب في ارتفاع درجة حرارة الجهاز أو تباطؤه. يستخدم المطورون تقديرات FLOPs لاختيار نماذج خفيفة تتناسب بسلاسة مع إمكانيات شرائح الهواتف المحمولة مثل سلسلة Snapdragon أو شرائح A-series chips من 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 Platform في تبسيط عمليات التحسين هذه، مما يسهل نشر نماذج فعالة على أهداف مثل TensorRT أو OpenVINO. من خلال فهم عمليات FLOPs وتحسينها، يمكن للمطورين بناء أنظمة ذكاء اصطناعي قوية ومستدامة في آن واحد.






