يمكن أن تؤثّر مشغّلات تعلُّم الآلة (ML) التي تستخدمها في نموذجك في عملية تحويل نموذج TensorFlow إلى تنسيق LiteRT. يتوافق محوّل LiteRT مع عدد محدود من عمليات TensorFlow المستخدَمة في نماذج الاستدلال الشائعة، ما يعني أنّه لا يمكن تحويل كل نموذج مباشرةً. تتيح أداة التحويل تضمين عوامل تشغيل إضافية، ولكن يتطلّب تحويل نموذج بهذه الطريقة أيضًا تعديل بيئة وقت التشغيل LiteRT التي تستخدمها لتنفيذ النموذج، ما قد يحدّ من قدرتك على استخدام خيارات نشر وقت التشغيل العادية، مثل خدمات Google Play.
تم تصميم أداة LiteRT Converter لتحليل بنية النموذج وتطبيق التحسينات من أجل جعلها متوافقة مع العمليات الحسابية المتوافقة مباشرةً. على سبيل المثال، استنادًا إلى عوامل تشغيل تعلُّم الآلة في النموذج، قد يحذف المحوّل أو يدمج عوامل التشغيل هذه من أجل ربطها بنظيراتها في LiteRT.
حتى بالنسبة إلى العمليات المتوافقة، يُتوقّع أحيانًا اتّباع أنماط استخدام معيّنة لأسباب تتعلّق بالأداء. أفضل طريقة لفهم كيفية إنشاء نموذج TensorFlow يمكن استخدامه مع LiteRT هي التفكير مليًا في كيفية تحويل العمليات وتحسينها، بالإضافة إلى القيود التي تفرضها هذه العملية.
عوامل التشغيل المتوافقة
مشغّلات LiteRT المضمّنة هي مجموعة فرعية من المشغّلات التي تشكّل جزءًا من مكتبة TensorFlow الأساسية. قد يتضمّن نموذج TensorFlow أيضًا عوامل تشغيل مخصّصة في شكل عوامل تشغيل مركّبة أو عوامل تشغيل جديدة تحدّدها أنت. يوضّح الرسم البياني أدناه العلاقات بين هذه العوامل.

من بين مجموعة مشغّلي نماذج تعلُّم الآلة هذه، هناك 3 أنواع من النماذج التي تتيحها عملية التحويل:
- النماذج التي تتضمّن عامل تشغيل LiteRT فقط (يُنصح به)
- النماذج التي تتضمّن عوامل التشغيل المضمّنة وعوامل تشغيل TensorFlow الأساسية المحدّدة
- النماذج التي تتضمّن عوامل التشغيل المضمّنة و/أو عوامل تشغيل TensorFlow الأساسية و/أو عوامل التشغيل المخصّصة
إذا كان النموذج يحتوي فقط على عمليات متوافقة مع LiteRT بشكلٍ أصلي، لن تحتاج إلى أي علامات إضافية لتحويله. هذا هو المسار المقترَح لأنّ هذا النوع من النماذج سيتم تحويله بسلاسة، كما أنّه أسهل في التحسين والتشغيل باستخدام وقت التشغيل التلقائي LiteRT. يتوفّر لك أيضًا المزيد من خيارات النشر لنموذجك، مثل خدمات Google Play. يمكنك البدء باستخدام دليل محوّل LiteRT. يمكنك الاطّلاع على صفحة عمليات LiteRT للحصول على قائمة بعوامل التشغيل المضمّنة.
إذا كنت بحاجة إلى تضمين عمليات TensorFlow محدّدة من المكتبة الأساسية، عليك تحديد ذلك أثناء عملية التحويل والتأكّد من أنّ وقت التشغيل يتضمّن هذه العمليات. راجِع موضوع اختيار عوامل تشغيل TensorFlow للاطّلاع على الخطوات التفصيلية.
تجنَّب قدر الإمكان الخيار الأخير الخاص بتضمين عوامل تشغيل مخصّصة في النموذج المحوَّل. عوامل التشغيل المخصّصة هي عوامل تشغيل يتم إنشاؤها من خلال الجمع بين عدة عوامل تشغيل أساسية في TensorFlow Core أو تحديد عامل تشغيل جديد تمامًا. عند تحويل العمليات المخصّصة، يمكن أن تزيد حجم النموذج الإجمالي من خلال فرض تبعيات خارج مكتبة LiteRT المضمّنة. يمكن أن تؤدي العمليات المخصّصة، إذا لم يتم إنشاؤها خصيصًا للنشر على الأجهزة الجوّالة أو الأجهزة، إلى أداء أسوأ عند نشرها على الأجهزة ذات الموارد المحدودة مقارنةً ببيئة الخادم. أخيرًا، كما هو الحال عند تضمين عوامل تشغيل محدّدة من TensorFlow Core، تتطلّب عوامل التشغيل المخصّصة منك تعديل بيئة وقت تشغيل النموذج، ما يحدّ من إمكانية الاستفادة من خدمات وقت التشغيل العادية، مثل خدمات Google Play.
الأنواع المتوافقة
تستهدف معظم عمليات LiteRT كلاً من الاستدلال بنقطة عائمة (float32) والاستدلال بكمية محددة (uint8 وint8)، ولكن العديد من العمليات لا تستهدف بعد أنواعًا أخرى مثل tf.float16 والسلاسل.
بالإضافة إلى استخدام إصدارات مختلفة من العمليات، يكمن الاختلاف الآخر بين النماذج ذات الفاصلة العائمة والنماذج الكمّية في طريقة تحويلها. تتطلّب الإحالة الناجحة الكمّية معلومات النطاق الديناميكي للموترات. يتطلّب ذلك إجراء "تكميم زائف" أثناء تدريب النموذج، أو الحصول على معلومات النطاق من خلال مجموعة بيانات المعايرة، أو إجراء تقدير النطاق "أثناء التنفيذ". يمكنك الاطّلاع على التكميم لمزيد من التفاصيل.
التحويلات المباشرة، وطي الثوابت ودمجها
يمكن أن تعالج LiteRT عددًا من عمليات TensorFlow حتى إذا لم يكن لها مكافئ مباشر. وينطبق ذلك على العمليات التي يمكن إزالتها ببساطة من الرسم البياني (tf.identity) أو استبدالها بموترات (tf.placeholder) أو دمجها في عمليات أكثر تعقيدًا (tf.nn.bias_add)، علمًا بأنّه قد تتم أحيانًا إزالة بعض العمليات المتوافقة من خلال إحدى هذه العمليات.
في ما يلي قائمة غير شاملة بعمليات TensorFlow التي تتم إزالتها عادةً من الرسم البياني:
tf.addtf.debugging.check_numericstf.constanttf.divtf.dividetf.fake_quant_with_min_max_argstf.fake_quant_with_min_max_varstf.identitytf.maximumtf.minimumtf.multiplytf.no_optf.placeholdertf.placeholder_with_defaulttf.realdivtf.reduce_maxtf.reduce_mintf.reduce_sumtf.rsqrttf.shapetf.sqrttf.squaretf.subtracttf.tiletf.nn.batch_norm_with_global_normalizationtf.nn.bias_addtf.nn.fused_batch_normtf.nn.relutf.nn.relu6
العمليات التجريبية
تتوفّر عمليات LiteRT التالية، ولكنّها غير جاهزة للاستخدام مع النماذج المخصّصة:
CALLCONCAT_EMBEDDINGSCUSTOMEMBEDDING_LOOKUP_SPARSEHASHTABLE_LOOKUPLSH_PROJECTIONSKIP_GRAMSVDF