مسرد المصطلحات

النقرات المسطحة

افهم الفلوب في التعلم الآلي! تعلم كيف يقيس تعقيد النموذج، ويؤثر على الكفاءة، ويساعد في اختيار الأجهزة.

تدريب YOLO النماذج
ببساطة مع Ultralytics HUB

التعرف على المزيد

تمثل عمليات الفاصلة العائمة، أو عمليات الفاصلة العائمة، مقياسًا أساسيًا للتعقيد الحسابي لنموذج التعلم الآلي (ML) ، خاصةً في التعلم العميق. وهي تقيس إجمالي عدد العمليات الحسابية ذات الفاصلة العائمة (مثل عمليات الجمع والطرح والضرب والقسمة) المطلوبة لتمرير أمامي واحد للنموذج، عادةً أثناء الاستدلال. يعد فهم وحدات FLOP أمرًا بالغ الأهمية لتقييم كفاءة النموذج، ومقارنة البنى المختلفة، وتحديد مدى ملاءمة النموذج لمختلف منصات الأجهزة، بدءًا من الخوادم السحابية القوية إلى الأجهزة الطرفية المحدودة الموارد.

ما هي الـ FLOPs؟

العملية ذات الفاصلة العائمة هي أي عملية حسابية تتضمن أرقامًا تحتوي على فاصلة عشرية (أرقام ذات فاصلة عائمة). في الشبكات العصبونية (NNs)، تحدث هذه العمليات على نطاق واسع في طبقات مثل التلافيف والطبقات المتصلة بالكامل. يقيس FLOPs إجمالي عدد هذه العمليات اللازمة لمعالجة مدخل واحد (مثل صورة).

نظرًا لأن نماذج التعلم العميق الحديثة تتضمن مليارات من هذه العمليات، فغالبًا ما يتم التعبير عن FLOPs بالجيجايجا فلوب (GFLOPs، أي مليارات من FLOPs) أو TeraFLOPs (TFLOPs، أي تريليونات من FLOPs). من المهم عدم الخلط بين FLOPs (إجمالي العمليات، وهو مقياس لعبء العمل الحسابي) و FLOPS (عمليات النقطة العائمة في الثانية، وهو مقياس لسرعة معالجة الأجهزة، مثل قدرةGPU). في سياق تقييم تعقيد النموذج، يشير "FLOPs" دائمًا تقريبًا إلى إجمالي عدد العمليات.

الملاءمة في الذكاء الاصطناعي والتعلم الآلي

يعمل FLOPs كمقياس حيوي لا يعتمد على الأجهزة لتقدير التكلفة الحسابية لنموذج الذكاء الاصطناعي. وتشمل الجوانب الرئيسية لأهميتها ما يلي:

  • مقارنة الكفاءة: تسمح وحدات FLOPs للباحثين والممارسين بمقارنة المتطلبات الحسابية لبنى النماذج المختلفة بشكل مستقل عن تحسينات الأجهزة أو البرامج المحددة. على سبيل المثال، عند مقارنة نماذج مثل Ultralytics YOLO11 مقابل YOLOv10، توفر FLOPs نظرة ثاقبة على كفاءتها الحسابية النسبية إلى جانب مقاييس الدقة.
  • ملاءمة الأجهزة: عادةً ما تتطلب النماذج ذات وحدات FLOP الأقل قدرة حاسوبية أقل، مما يجعلها أكثر ملاءمة للنشر على الأجهزة ذات الموارد المحدودة، مثل الهواتف الذكية أو Raspberry Pi أو منصات NVIDIA Jetson الشائعة في الحوسبة الطرفية.
  • تقدير سرعة الاستدلال: على الرغم من أنه ليس مقياساً مباشراً للسرعة، إلا أن انخفاض عدد عمليات التشغيل من FLOP غالباً ما يرتبط بزمن استنتاج أسرع. ومع ذلك، تعتمد السرعة الفعلية على عوامل مثل أنماط الوصول إلى الذاكرة، وتوازي الأجهزة (CPU مقابل GPU مقابل TPU)، ومكتبات البرامج المحسّنة مثل TensorRT أو OpenVINO.
  • تصميم النموذج والتحسين: تُعدّ وحدات FLOP من الاعتبارات الرئيسية أثناء تصميم النموذج، والبحث عن البنية العصبية (NAS)، وتقنيات التحسين مثل تشذيب النموذج، بهدف تقليل التكلفة الحسابية مع الحفاظ على الأداء.

الآليات المتقلبة مقابل المفاهيم ذات الصلة

من المفيد التمييز بين مقاييس FLOPs والمقاييس الشائعة الأخرى:

  • الترجيح مقابل المعلمات: يشير عدد المعلمات (أو أوزان النموذج) إلى حجم النموذج من حيث تخزين الذاكرة. تقيس وحدات FLOP التكلفة الحسابية لتشغيل النموذج. قد يحتوي النموذج على العديد من المعلمات ولكن عدد وحدات العمليات التشغيل العمليّة منخفضة (على سبيل المثال، إذا كانت الأوزان مستخدمة بشكل متناثر) أو قد يحتوي النموذج على عدد قليل من المعلمات ولكن عدد وحدات العمليات العملية العملية عالية (على سبيل المثال، تتضمن العديد من العمليات لكل معلمة). كلا المقياسين مهمان لتقييم الكفاءة. على سبيل المثال، قدم YOLOv9 تقنيات لتحقيق دقة عالية مع عدد أقل نسبيًا من المعلمات وعمليات التشغيل العكسي المتكرر مقارنةً ببعض سابقاتها.
  • FLOPs مقابل سرعة الاستدلال: تمثّل FLOPs العمل الحسابي النظري، في حين أن سرعة الاستدلال (التي غالبًا ما تُقاس بالإطارات في الثانية (FPS) أو بالمللي ثانية لكل استدلال) هي الأداء الفعلي المقاس على أجهزة معينة. عوامل مثل عرض النطاق الترددي للذاكرة، ومكدس البرامج (PyTorch, TensorFlow) والتكميم وحجم الدُفعات تؤثر بشكل كبير على السرعة في العالم الحقيقي. يُظهر تحسين وقت الاستجابة مقابل الإنتاجية كيف يمكن ضبط الأداء العملي إلى ما هو أبعد من مجرد FLOPs.
  • FLOPs مقابل MACs/MACC: تحسب عمليات الضرب والتجميع (MACs أو MACC) عدد عمليات الضرب والجمع المدمجة، وهي شائعة في الشبكات العصبية التلافيفية (CNNs). نظرًا لأن عملية MACC واحدة عادةً ما تتضمن عملية ضرب واحدة وعملية جمع واحدة، فغالبًا ما يتم تقريبها إلى 2 FLOPs. تشير بعض الأوراق البحثية أو بطاقات النماذج إلى MACs بدلاً من FLOPs. من المهم التحقق من المقياس المستخدم، حيث أنهما يختلفان بمعامل اثنين تقريبًا. يعد فهم هذا الاختلاف أمرًا أساسيًا عند مقارنة النماذج بناءً على التكاليف الحسابية المبلغ عنها.

التطبيقات والأمثلة

تُستخدم FLOPs على نطاق واسع في مختلف سياقات الذكاء الاصطناعي وتعلم الآلة:

  1. اختيار نموذج للنشر على الحافة: تحتاج الشركة التي تقوم بتطوير كاميرا أمنية ذكية إلى نموذج للكشف عن الأجسام يمكن تشغيله بكفاءة على جهاز حافة ذات طاقة معالجة محدودة. تقارن الشركة بين عدة نماذج، بما في ذلك أحجام مختلفة من Ultralytics YOLO (على سبيل المثال، YOLO11n مقابل YOLO11s). من خلال فحص وحدات FLOP التي تم الإبلاغ عنها لكل نموذج (مثل تلك الموجودة في وثائقUltralytics YOLO11 )، يمكنهم اختيار أكبر نموذج يلبي متطلبات زمن الاستجابة الخاصة بهم بالنظر إلى الميزانية الحسابية للجهاز (تقاس بوحدات FLOPS للأجهزة). تُعد نماذج FLOPs الأقل مثل YOLO11n مرشحة بشكل أساسي.
  2. قياس البنى الجديدة: يحتاج الباحثون الذين يطورون بنية رؤية حاسوبية جديدة إلى إثبات كفاءتها. فهم يقارنون دقة نموذجهم (على سبيل المثال، mAP) مقابل GFLOPs على مجموعات البيانات القياسية مثل COCO. كما أنهم يرسمون نموذجهم على رسم بياني للدقة مقابل عمليات التشغيل الآلي التلقائي (GFLOPs) جنبًا إلى جنب مع أحدث النماذج الحالية (مثل EfficientNet أو إصدارات YOLO المختلفة) لإظهار المفاضلات المحسنة. تستخدم العديد من صفحات المقارنة بين النماذج، مثل YOLOv9 مقابل YOLOX، FLOPs كنقطة مقارنة رئيسية.

حساب وتقدير عمليات إيقاف التشغيل التلقائي

عادةً ما يتم حساب FLOPs عن طريق تحليل بنية النموذج طبقة تلو الأخرى وجمع العمليات المطلوبة لكل طبقة بناءً على أبعاد المدخلات/المخرجات ونوع الطبقة(التلافيف، متصلة بالكامل، إلخ). يمكن أن تساعد الأدوات والمكتبات المختلفة، مثل fvcore أو أدوات التنميط المدمجة في أطر التعلم العميق، في أتمتة هذا الحساب أو تقديم تقديرات. تؤثر دقة المدخلات بشكل كبير على عدد عمليات التصفح الموضعي للعديد من نماذج الرؤية.

القيود

على الرغم من فائدتها، إلا أن لها قيودًا:

  • فهي لا تأخذ في الحسبان تكاليف الوصول إلى الذاكرة (MAC)، والتي يمكن أن تكون عنق زجاجة كبير.
  • فهي لا تستوعب درجة التوازي الممكنة في العمليات.
  • يعتمد الأداء الفعلي اعتمادًا كبيرًا على التحسينات الخاصة بالأجهزة وكفاءة مكتبات البرامج الأساسية(cuDNN، Intel MKL).
  • تحتوي بعض العمليات (مثل دوال التنشيط مثل ReLU) على عدد عمليات FLOP منخفضة ولكن لا يزال بإمكانها التأثير على زمن الاستجابة.

ولذلك، ينبغي النظر في النماذج التي تعمل بنظام FLOP إلى جانب مقاييس الأداء الأخرى والمعلمات والمعايير الواقعية للحصول على صورة كاملة لكفاءة النموذج. يمكن أن تساعد أدوات مثل Ultralytics HUB في إدارة النماذج وتتبع جوانب الأداء المختلفة أثناء التطوير والنشر.

قراءة الكل