أفضل ممارسات الأداء

تحتوي الأجهزة المحمولة والأجهزة المضمنة على موارد حسابية محدودة، لذا من للحفاظ على كفاءة موارد التطبيق. لقد قمنا بتجميع قائمة أفضل الممارسات والاستراتيجيات التي يمكنك استخدامها لتحسين أداء TensorFlow أداء النموذج البسيط

اختيار أفضل نموذج للمهمة

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

الرسم البياني لحجم النموذج مقابل
الدقة

رسم بياني للدقة مقارنةً بوقت الاستجابة

من أمثلة النماذج المحسَّنة للأجهزة الجوّالة MobileNets، التي تم تحسينها لتتوافق مع الأجهزة الجوّالة تطبيقات الرؤية. Kaggle تسرد الطُرز العديد من النماذج الأخرى نماذج تم تحسينها خصيصًا للأجهزة الجوالة والمضمنة.

يمكنك إعادة تدريب النماذج المدرجة على مجموعة البيانات الخاصة بك باستخدام طريقة التعلم.

إنشاء ملف شخصي لنموذجك

بمجرد تحديد نموذج المرشح المناسب لمهمتك، فمن ممارسة جيدة لتحديد نموذجك وقياسه. قياس الأداء في LiteRT الأداة يحتوي على محلّل مدمج يعرض إحصاءات تحليل البيانات حسب عامل التشغيل. يمكن أن المساعدة في فهم المؤثِّرات السلبية على الأداء والعوامل التي تهيمن على الحساب.

يمكنك أيضًا استخدام LiteRT تتبّع إلى الملف الشخصي النموذج في تطبيق Android، باستخدام تتبع نظام Android القياسي، وعرض استدعاءات المشغل حسب الوقت من خلال التحليل المستند إلى واجهة المستخدم الرسومية

تحديد عوامل التشغيل وتحسينها في الرسم البياني

إذا ظهر عامل تشغيل معين بشكل متكرر في النموذج، بناءً على تحليل البيانات، فستجد أن المشغل يستهلك أكبر قدر من الوقت، يمكنك النظر في تحسين هذا المشغل. من المفترض أن يكون هذا السيناريو نادر الحدوث مثل TensorFlow. يوفّر Lite إصدارات محسَّنة لمعظم مشغّلي شبكات الجوّال. ومع ذلك، قد تتمكن من كتابة إصدار أسرع من عملية مخصصة إذا كنت تعرف القيود التي يتم تنفيذ المُشغل. اطّلع على دليل عوامل التشغيل المخصّصة.

تحسين النموذج

يهدف تحسين النماذج إلى إنشاء نماذج أصغر تتميز بسرعة أكبر أكثر توفيرًا للطاقة، بحيث يمكن نشرها على الأجهزة المحمولة. يدعم LiteRT أساليب تحسين متعددة، مثل التحديد الكمي.

راجِع مستندات تحسين النماذج للحصول على التفاصيل.

تعديل عدد سلاسل المحادثات

يدعم LiteRT نواة ذات سلاسل متعددة مع العديد من عوامل التشغيل. يمكنك زيادة عدد السلاسل وتسريع تنفيذ العوامل. متزايد إلا أن عدد سلاسل المحادثات سيؤدي إلى استخدام نموذجك لمزيد من الموارد القوة.

بالنسبة إلى بعض التطبيقات، قد يكون وقت الاستجابة أكثر أهمية من كفاءة استهلاك الطاقة. إِنْتَ يمكنك زيادة عدد سلاسل المحادثات من خلال ضبط عدد برامج الترجمة الفورية سلاسل المحادثات: في المقابل، يؤدي تنفيذ سلاسل المحادثات المتعددة إلى تحسين الأداء. اعتمادًا على ما يتم تنفيذه بالتزامن. هذا هو لا سيما حالة تطبيقات الأجهزة المحمولة. على سبيل المثال، قد تُظهر الاختبارات المعزولة أكثر من مرتين مقارنةً بسلسلة المحادثات الفردية، ولكن إذا كان يتم تنفيذ تطبيق آخر في الوقت نفسه، فقد يؤدي هذا الخيار إلى أداء سيء مقارنةً بسلسلة واحدة.

إزالة النُسخ المكررة

إذا لم يتم تصميم التطبيق بعناية، فقد يكون هناك نسخ مكررة عند إدخال البيانات إلى النموذج وقراءة المخرجات. احرص على ما يلي: إزالة النسخ المكررة. إذا كنت تستخدم واجهات برمجة تطبيقات ذات مستوى أعلى، مثل Java، تأكد من مراجعة الوثائق بعناية بحثًا عن تنبيهات الأداء. على سبيل المثال: تكون واجهة برمجة تطبيقات Java أسرع بكثير إذا تم استخدام ByteBuffers الإدخالات.

إنشاء ملف شخصي على تطبيقك باستخدام الأدوات الخاصة بالنظام الأساسي

الأدوات الخاصة بنظام التشغيل مثل Android المحلّل توفّر الآلات الموسيقية ثروة من معلومات التحليل التي يمكن استخدامها لتصحيح أخطاء التطبيق في بعض الأحيان لخطأ في الأداء قد لا يكون في النموذج ولكن في أجزاء من رمز التطبيق التفاعل مع النموذج. احرص على التعرّف على المنصة أدوات تحديد المواصفات الشخصية وأفضل الممارسات للمنصة.

تقييم ما إذا كان نموذجك يستفيد من استخدام مسرِّعات الأجهزة المتاحة على الجهاز

أضاف LiteRT طرقًا جديدة لتسريع النماذج باستخدام أجهزة أسرع مثل وحدات معالجة الرسومات وأنظمة الخدمات الرقمية (DSP) والمسرِّعات العصبية. وعادةً ما تكون مسرِّعات الأعمال هذه الكشف عنها من خلال الوحدات الفرعية التفويض التي تتولى مهمة الأجزاء المختلفة في عملية الترجمة الفورية. يمكن أن يستخدم LiteRT المفوَّضين عن طريق:

  • يتوفر تفويض وحدة معالجة الرسومات على Android وiOS، باستخدام OpenGL/OpenCL وMetal، على التوالي. لتجربتها، يمكنك الاطّلاع على المُفوَّض من وحدة معالجة الرسومات.
  • من الممكن إنشاء تفويضك الخاص إذا كان لديك حق الوصول إلى الأجهزة غير القياسية. الاطّلاع على LiteRT المفوَّضين للاطّلاع على مزيد من المعلومات

يُرجى العلم بأنّ بعض مسرِّعات الأعمال تعمل بشكل أفضل مع الأنواع المختلفة من النماذج. بعض الإشعارات يدعم المفوِّضون فقط النماذج العائمة أو النماذج المحسّنة بطريقة معينة. من المهم لقياس الأداء لكل مفوَّض لمعرفة ما إذا كان تصنيفًا جيدًا لتطبيقك. فعلى سبيل المثال، إذا كان لديك نموذج صغير جدًا، فقد لا تستحق تفويض النموذج إلى وحدة معالجة الرسومات. وفي المقابل، تُعتبر مسرِّعات الأعمال خيارًا رائعًا للنماذج الكبيرة ذات الكثافة الحسابية العالية.