Connect with us

تجنب المخاطر الخفية: التنقل في المخاطر غير الواضحة في ML على iOS

قادة الفكر

تجنب المخاطر الخفية: التنقل في المخاطر غير الواضحة في ML على iOS

mm

هل تحتاج إلى ML؟

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

عندما تكون مستعدًا لحل بعض مشاكل العمل مع ML ، يجب أن تأخذ في الاعتبار أين سيعمل نماذج ML الخاصة بك. من أجل بعض الأشخاص ، من المنطقي تشغيل بنية خادم. هذا له فوائد في الحفاظ على نماذج ML الخاصة بك خاصة ، لذلك من الصعب على المنافسين اللحاق بالركب. بالإضافة إلى ذلك ، يمكن للخادم تشغيل مجموعة متنوعة من النماذج. على سبيل المثال ، تتطلب نماذج GPT (التي أصبحت مشهورة مع ChatGPT) حاليًا معالجات رسومات moderne ، لذلك لا يمكن考虑 أجهزة المستهلك. من ناحية أخرى ، تحتفظ صيانة البنية التحتية لتكلفة عالية ، وإذا كان يمكن لأجهزة المستهلك تشغيل نموذجك ، فلماذا تدفع أكثر؟ بالإضافة إلى ذلك ، قد تكون هناك مخاوف تتعلق بالخصوصية حيث لا يمكن إرسال بيانات المستخدم إلى خادم بعيد للمعالجة.

然而 ، دعنا نفترض أنه من المنطقي استخدام أجهزة iOS الخاصة بالعملاء لتشغيل نموذج ML. ما الذي يمكن أن ي goes wrong؟

limitations منصة

حدود الذاكرة

أجهزة iOS لديها ذاكرة فيديو متاحة أقل بكثير من نظرائهم على سطح المكتب. على سبيل المثال ، يحتوي Nvidia RTX 4080 Ti على 20 GB من الذاكرة المتاحة. أجهزة آيفون ، من ناحية أخرى ، لديها ذاكرة فيديو مشتركة مع باقي الذاكرة الرام في ما يسمى “الذاكرة الموحدة”. لل参照 ، يحتوي آيفون 14 برو على 6 GB من الذاكرة الرام. بالإضافة إلى ذلك ، إذا قمت بتحميل أكثر من نصف الذاكرة ، فمن المحتمل أن تقتل iOS التطبيق لضمان استجابة نظام التشغيل. هذا يعني أنك يمكنك فقط الاعتماد على وجود 2-3 GB من الذاكرة المتاحة لاستدلال الشبكة العصبية.

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

دعم طبقات الشبكة (العمليات)

معظم ML والشبكات العصبية تأتي من إطارات التعلم العميق الشهيرة ثم يتم تحويلها إلى CoreML نماذج مع Core ML Tools. CoreML هو محرك استدلال مكتوب بواسطة Apple يمكنه تشغيل نماذج مختلفة على أجهزة Apple. الطبقات مخططة جيدًا للأجهزة وقائمة الطبقات المدعومة طويلة جدًا ، لذلك هذا هو نقطة بداية ممتازة. ومع ذلك ، هناك خيارات أخرى مثل Tensorflow Lite متاحة.

الطريقة الأفضل لمعرفة ما هو ممكن مع CoreML هو النظر إلى بعض النماذج المحولة بالفعل باستخدام عارضات مثل Netron. Apple تسرد بعض النماذج المدعومة رسميًا ، ولكن هناك أيضًا حديقة نماذج مدعومة من المجتمع. قائمة العمليات المدعومة الكاملة تتغير باستمرار ، لذلك النظر إلى شفرة مصدر Core ML Tools يمكن أن يكون مفيدًا كبداية. على سبيل المثال ، إذا كنت ترغب في تحويل نموذج PyTorch ، يمكنك محاولة العثور على طبقة اللازمة هنا.

بالإضافة إلى ذلك ، قد تحتوي بعض الهياكل الجديدة على رمز CUDA مكتوب يدوياً لبعض الطبقات. في مثل هذه الحالات ، لا يمكنك توقع أن توفر CoreML طبقة محددة مسبقًا. ومع ذلك ، يمكنك تقديم تنفيذك الخاص إذا كان لديك مهندس ماهر ملمًا بكتابة رمز GPU.

بشكل عام ، أفضل نصيحة هنا هي محاولة تحويل نموذجك إلى CoreML في وقت مبكر ، حتى قبل تدريبه. إذا كان لديك نموذج لم يتم تحويله على الفور ، فمن الممكن تعديل تعريف الشبكة العصبية في إطار DL الخاص بك أو شفرة مصدر Core ML Tools ل生成 نموذج CoreML صحيح دون الحاجة إلى كتابة طبقة مخصصة لاستدلال CoreML.

التحقق

أخطاء محرك الاستدلال

لا توجد طريقة لاختبار كل组 возмож من الطبقات ، لذلك سيكون لمحرك الاستدلال دائمًا بعض الأخطاء. على سبيل المثال ، من الشائع رؤية التوسعات الممددة باستخدام الكثير من الذاكرة مع CoreML ، مما يشير إلى تنفيذ مكتوب بشكل سيئ مع نواة كبيرة مخططة بالصفريات. خطأ شائع آخر هو مخرج نموذج غير صحيح لبعض هياكل النماذج.

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

فقدان الدقة

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

التحليل

تختلف قدرات الأجهزة لطرازات آيفون المختلفة. الطرازات الأخيرة لها وحدات معالجة Neural Engine المحسنة التي يمكن أن ترفع الأداء العام بشكل كبير. وهي مُحسنة للعمليات المحددة ، ويمكن لـ CoreML توزيع العمل بين وحدة المعالجة المركزية ووحدة معالجة الرسومات ووحدة Neural Engine بشكل ذكي. لقد تحسنت وحدات معالجة الرسومات الخاصة بآبل مع مرور الوقت ، لذلك من الطبيعي أن نرى أداءً متقلبًا عبر طرازات آيفون المختلفة. من الجيد اختبار نماذجك على الأجهزة المدعومة بشكل أدنى لضمان أقصى قدر من التوافق والأداء المقبول للأجهزة القديمة.

كما أنه من الجدير بالذكر أن CoreML يمكنه تحسين الطبقات والعمليات الوسيطة بعيدًا ، مما يمكن أن ي cải thiện الأداء بشكل كبير. عامل آخر يجب مراعاته هو أن نموذجًا يؤدي أسوأ على سطح المكتب قد يؤدي في الواقع استدلالًا أسرع على iOS. هذا يعني أن من المفيد قضاء بعض الوقت في تجربة هياكل مختلفة.

لمزيد من التحسين ، يحتوي Xcode على أداة أدوات لطيفة مع قالب فقط لنماذج CoreML يمكن أن يعطي نظرة أكثر شمولاً على ما يبطئ من استدلال نموذجك.

الختام

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

Konstantin Semianov، هو مدير تقني في Neatsy.AI، أول تطبيق في العالم يكتشف مشاكل الصحة العظمية والقدمية، باستخدام الذكاء الاصطناعي والواقع المعزز، مع كاميرا آيفون فقط. قبل انضمامه إلى Neatsy.AI، عمل كمهندس أبحاث وتطوير في Prisma Labs، المطورون لتطبيق Lensa.