يتيح لك LiteRT تشغيل نماذج TensorFlow وPyTorch وJAX في تطبيقات Android. يقدّم نظام LiteRT بيئات تنفيذ مُعدّة مسبقًا وقابلة للتخصيص لتشغيل النماذج على Android بسرعة وكفاءة، بما في ذلك خيارات تسريع الأجهزة.
على سبيل المثال، تطبيقات Android التي تستخدم LiteRT، يُرجى الاطّلاع على مستودع LiteRT عيّنات.
نماذج تعلُّم الآلة
يستخدم LiteRT نماذج TensorFlow وPyTorch وJAX التي يتم تحويلها إلى تنسيق نماذج تعلُّم آلة أصغر حجمًا وأكثر كفاءة وقابلية للنقل. يمكنك استخدام نماذج مُعدّة مسبقًا مع LiteRT على Android، أو إنشاء نماذج خاصة بك وتحويلها إلى تنسيق LiteRT.
تتناول هذه الصفحة استخدام نماذج تعلُّم الآلة التي تم إنشاؤها سابقًا ولا تتناول إنشاء النماذج أو تدريبها أو اختبارها أو تحويلها. اطّلِع على مزيد من المعلومات عن اختيار نماذج تعلُّم الآلة وتعديلها وإنشائها وتحويلها إلى LiteRT في صفحة النماذج.
تشغيل النماذج على Android
يتلقّى نموذج LiteRT الذي يعمل داخل تطبيق Android البيانات ويعالجها وينشئ توقّعات استنادًا إلى منطق النموذج. يتطلّب نموذج LiteRT استخدام بيئة تشغيل خاصة لتنفيذه، ويجب أن تكون البيانات التي يتم تمريرها إلى النموذج بتنسيق بيانات محدّد يُعرف باسم المتجه. عندما يعالج النموذج البيانات، ما يُعرف باسم تنفيذ استنتاج، يُنشئ نتائج التوقّعات على هيئة ملفّات مصفوفة ترابطية جديدة، ويمرّرها إلى تطبيق Android ليتمكّن من اتّخاذ إجراء، مثل عرض النتيجة للمستخدم أو تنفيذ منطق نشاط تجاري إضافي.
الشكل 1: مسار التنفيذ الوظيفي لنماذج LiteRT في تطبيقات Android
على مستوى التصميم الوظيفي، يحتاج تطبيق Android إلى العناصر التالية لتشغيل نموذج LiteRT:
- بيئة تشغيل LiteRT لتنفيذ النموذج
- معالج إدخال النموذج لتحويل البيانات إلى مصفوفات
- معالج مخرجات النموذج لتلقّي مصفوفات نتائج الإخراج وتفسيرها كنتائج توقّعات
توضّح الأقسام التالية كيفية توفير مكتبات وأدوات LiteRT لهذه العناصر الوظيفية.
إنشاء تطبيقات باستخدام LiteRT
يصف هذا القسم المسار الأكثر شيوعًا والمُقترَح لتنفيذ LiteRT في تطبيق Android. عليك إيلاء أكبر قدر من الاهتمام لقسمَي بيئة وقت التشغيل ومكتبات التطوير. إذا سبق لك تطوير نموذج مخصّص، احرص على مراجعة قسم مسارات التطوير المتقدمة.
خيارات بيئة التشغيل
هناك عدة طرق يمكنك من خلالها تفعيل بيئة تشغيل لتنفيذ النماذج في تطبيق Android. في ما يلي الخيارات المفضّلة:
- LiteRT في بيئة تشغيل "خدمات Google Play" (إجراء يُنصح به)
- بيئة تشغيل LiteRT المستقلة
بشكل عام، عليك استخدام بيئة التشغيل التي تقدّمها خدمات Google Play لأنّها أكثر كفاءة في استخدام المساحة مقارنةً بالبيئة العادية لأنّه يتم تحميلها ديناميكيًا، ما يحافظ على حجم تطبيقك أصغر. تستخدم "خدمات Google Play" أيضًا أحدث إصدار ثابت من وقت تشغيل LiteRT تلقائيًا، ما يمنحك ميزات إضافية وأداءً محسّنًا بمرور الوقت. إذا كنت تقدّم تطبيقك على الأجهزة التي لا تتضمّن "خدمات Google Play" أو كنت بحاجة إلى إدارة بيئة تشغيل الذكاء الاصطناعي عن كثب، عليك استخدام بيئة تشغيل LiteRT العادية. يجمع هذا الخيار رمزًا إضافيًا في تطبيقك، ما يتيح لك التحكّم بشكلٍ أكبر في وقت تشغيل الذكاء الاصطناعي في تطبيقك، ولكن على حساب زيادة حجم تنزيله.
يمكنك الوصول إلى بيئات وقت التشغيل هذه في تطبيق Android من خلال إضافة مكتبات تطوير LiteRT إلى بيئة تطوير تطبيقك. للحصول على معلومات عن كيفية استخدام بيئات التشغيل العادية في تطبيقك، اطّلِع على القسم التالي.
المكتبات
يمكنك الوصول إلى Interpreter API باستخدام خدمات Google Play. يمكنك استخدام مكتبات النواة والدعم LiteRT في تطبيق Android. للحصول على تفاصيل حول البرمجة لاستخدام مكتبات LiteRT وبيئات التشغيل، يُرجى الاطّلاع على أدوات التطوير لنظام Android.
الحصول على النماذج
يتطلب تشغيل نموذج في تطبيق Android نموذجًا بتنسيق LiteRT. يمكنك استخدام نماذج prebuilt (مُعدّة مسبقًا) أو إنشاء نموذج وتحويله إلى تنسيق Lite. لمزيد من المعلومات عن الحصول على نماذج لتطبيق Android، يُرجى الاطّلاع على صفحة LiteRT النماذج.
التعامل مع بيانات الإدخال
يجب أن تكون أي بيانات ترسلها إلى نموذج تعلُّم آلي مصفوفة تتضمن بنية بيانات محدّدة، وغالبًا ما تُعرف هذه البنية باسم شكل المصفوفة. لمعالجة البيانات باستخدام نموذج، يجب أن يحوّل رمز تطبيقك البيانات من تنسيقها الأصلي، مثل الصورة أو النص أو بيانات الصوت، إلى مصفوفة سداسية الأبعاد بالشكل المطلوب لنموذجك.
تنفيذ الاستنتاجات
تُعرف معالجة البيانات من خلال نموذج لإنشاء نتيجة توقّع باسم تنفيذ استنتاج. يتطلّب تنفيذ عملية استنتاج في تطبيق Android استخدام بيئة وقت تشغيل LiteRT ونموذج وبيانات إدخال.
تعتمد السرعة التي يمكن بها للنموذج إنشاء استنتاج على جهاز معيّن على حجم البيانات التي تتم معالجتها وتعقيد النموذج ومقدار موارد الحوسبة المتاحة، مثل الذاكرة ووحدة المعالجة المركزية أو المعالجات المتخصّصة المعروفة باسم المسرِّعات. يمكن تشغيل نماذج تعلُّم الآلة بشكل أسرع على هذه المعالجات المتخصّصة، مثل وحدات معالجة الرسومات (GPU) ووحدات معالجة الموتّرات (TPU)، باستخدام برامج تشغيل أجهزة LiteRT التي تُعرف باسم المفوّضين. لمزيد من المعلومات عن المفوَّضين وتسريع الأجهزة لمعالجة النماذج، يُرجى الاطّلاع على نظرة عامة على تسريع الأجهزة.
التعامل مع نتائج الإخراج
تُنشئ النماذج نتائج التوقّعات على شكل مصفوفات، ويجب أن يعالجها تطبيق Android من خلال اتّخاذ إجراء أو عرض نتيجة للمستخدم. يمكن أن تكون نتائج مخرجات النموذج بسيطة مثل رقم يقابل نتيجة واحدة (0 = كلب، 1 = قطة، 2 = طائر) لتصنيف الصور، أو نتائج أكثر تعقيدًا، مثل مربّعات حدود متعددة لعدة أجسام مصنّفة في الصورة، مع تقييمات ثقة التوقّعات بين 0 و1.
مسارات التطوير المتقدّمة
عند استخدام نماذج LiteRT أكثر تعقيدًا وخصيصًا، قد تحتاج إلى استخدام طرق تطوير أكثر تقدمًا مما هو موضّح أعلاه. توضّح الأقسام التالية أساليب متقدّمة لتنفيذ النماذج وتطويرها لـ LiteRT في تطبيقات Android.
بيئات وقت التشغيل المتقدّمة
بالإضافة إلى بيئة وقت التشغيل العادية وبيئة وقت التشغيل لـ "خدمات Google Play" لنظام LiteRT، هناك بيئات وقت تشغيل إضافية يمكنك استخدامها مع تطبيق Android. ويكون الاستخدام الأكثر احتمالًا لهذه البيئات هو إذا كان لديك نموذج تعلُّم آلة يستخدم عمليات تعلُّم آلة غير متوافقة مع بيئة وقت التشغيل العادية لنظام LiteRT.
- بيئة التشغيل Flex لـ LiteRT
- وقت تشغيل LiteRT المخصّص
يتيح لك وقت التشغيل المرن في LiteRT تضمين عاملي حساب محدّدين مطلوبَين لنموذجك. كخيار متقدّم لتشغيل النموذج، يمكنك إنشاء LiteRT لنظام التشغيل Android لتضمين عوامل التشغيل والوظائف الأخرى المطلوبة لتشغيل نموذج تعلُّم الآلة في TensorFlow. لمزيد من المعلومات، يُرجى الاطّلاع على مقالة إنشاء LiteRT لنظام التشغيل Android.
واجهات برمجة التطبيقات C وC++
توفّر LiteRT أيضًا واجهة برمجة تطبيقات لتشغيل النماذج باستخدام C وC++. إذا كان تطبيقك يستخدم Android NDK، ننصحك باستخدام هذه الواجهة. يمكنك أيضًا استخدام واجهة برمجة التطبيقات هذه إذا أردت التمكّن من مشاركة الرمز بين أنظمة أساسيّة متعدّدة. لمزيد من المعلومات عن خيار التطوير، يُرجى الاطّلاع على صفحة أدوات التطوير.
تنفيذ النماذج المستندة إلى الخادم
بشكل عام، عليك تشغيل النماذج في تطبيقك على جهاز Android للاستفادة من وقت استجابة أقل وخصوصية بيانات محسّنة للمستخدمين. ومع ذلك، هناك حالات يكون فيها تشغيل نموذج على خادم السحابة الإلكترونية، خارج الجهاز، هو حلاً أفضل. على سبيل المثال، إذا كان لديك نموذج كبير لا يمكن ضغطه بسهولة إلى حجم يناسب أجهزة Android الخاصة بالمستخدمين، أو يمكن تنفيذه بأداء معقول على تلك الأجهزة. قد يكون هذا المنهج أيضًا هو الحلّ المفضّل لديك إذا كانت الأولوية القصوى هي تحقيق أداء متسق للنموذج على نطاق واسع من الأجهزة.
تقدّم Google Cloud مجموعة كاملة من الخدمات لتشغيل نماذج الذكاء الاصطناعي. لمزيد من المعلومات، يُرجى الاطّلاع على صفحة منتجات الذكاء الاصطناعي وتعلُّم الآلة في Google Cloud.
تطوير النماذج المخصّصة وتحسينها
من المرجّح أن تتضمّن مسارات التطوير الأكثر تقدمًا تطوير نماذج تعلُّم آلة مخصّصة وتحسين هذه النماذج لاستخدامها على أجهزة Android. إذا كنت تخطط لإنشاء نماذج مخصّصة، احرص على تطبيق تقنيات التكثيف على النماذج لتقليل تكاليف الذاكرة والمعالجة. لمزيد من المعلومات عن كيفية إنشاء نماذج عالية الأداء لاستخدامها مع LiteRT، اطّلِع على أفضل الممارسات المتعلّقة بالأداء في قسم "النماذج".