فهم FLOPs في تعلم الآلة! تعرف على كيفية قياس تعقيد النموذج، وتأثيره على الكفاءة، والمساعدة في اختيار الأجهزة.
تعمل عمليات النقطة العائمة، أو عمليات النقطة العائمة، كمقياس أساسي لقياس التعقيد الحسابي لنماذج نماذج التعلم الآلي، وتحديداً في مجال التعلّم العميق. يحسب هذا المقياس العدد الإجمالي للعمليات الحسابية - مثل الجمع والطرح والضرب والقسمة التي تتضمن عمليات الجمع, والطرح والضرب والقسمة التي تنطوي على أرقام عشرية - المطلوبة لإكمال تمريرة أمامية واحدة من شبكة عصبية. من خلال تحديد عدد العمليات الحسابية FLOPs يمكن للمهندسين تقدير قوة المعالجة اللازمة لتنفيذ نموذج ما، مما يجعلها إحصائية حيوية للأجهزة للاختيار والتحسين. على الرغم من اختلافها عن حجم الملف أو عدد البارامترات، إلا أن FLOPs توفر خط أساس نظري ل لمدى "ثقل" النموذج، وهو ما يرتبط مباشرةً باستهلاك الطاقة وسرعة التنفيذ على المعالجات مثل CPU أو GPU.
يعد فهم التكلفة الحسابية للنموذج أمرًا ضروريًا لتحقيق الكفاءة في الذكاء الاصطناعي الفعال. يشير انخفاض عدد العمليات الحسابية يشير عمومًا إلى أن النموذج يتطلب عمليات حسابية أقل لإنتاج تنبؤ، وهو أمر بالغ الأهمية في البيئات ذات الموارد المحدودة.
يظهر التأثير العملي لوحدات FLOPs أكثر وضوحًا عندما تنتقل النماذج من بيئات البحث إلى بيئات الإنتاج حيث يكون زمن الاستجابة والطاقة محدودة.
يمكنك تحديد التعقيد الحسابي لنموذج Ultralytics باستخدام أدوات التنميط المدمجة. يقوم المقتطف المقتطف التالي بتحميل نموذج وحساب وحدات FLOP المطلوبة لحجم إدخال معين.
from ultralytics import YOLO
# Load the YOLO11 nano model
model = YOLO("yolo11n.pt")
# Profile the model to see FLOPs, parameters, and speed
# The 'imgsz' argument defines the input resolution (e.g., 640x640)
model.profile(imgsz=640)
تُخرِج هذه الطريقة جدولًا ملخصًا يتضمن عدد المعلمات والتدرجات و GFLOPs (GigaFLOPs، أو مليارات العمليات)، مما يساعدك على تقييم ما إذا كان النموذج يناسب قيود النشر الخاصة بك.
من المهم التمييز بين وحدات FLOPs والمقاييس الأخرى التي تصف حجم النموذج وسرعته، حيث إنها تقيس مختلفة من الأداء.
على الرغم من أن النماذج FLOPs توفر خط أساس مفيد، إلا أنها لا تروي القصة الكاملة لأداء النموذج. فهي لا تأخذ في الحسبان تكاليف الوصول إلى الذاكرة (الطاقة والوقت اللازمين لنقل البيانات إلى المعالج)، والتي غالبًا ما تكون عنق الزجاجة في أنظمة التعلم العميق الحديثة. بالإضافة إلى ذلك، فإن العمليات مثل دوال التنشيط (مثل ReLU) أو طبقات التطبيع لها عدد عمليات FLOP منخفضة ولكنها لا تزال تستهلك الوقت. ولذلك، يجب استخدام FLOPs بالاقتران مع مع القياس المعياري في العالم الحقيقي على الأجهزة المستهدفة، مثل Raspberry Pi، للحصول على صورة دقيقة عن الأداء.