TensorFlow Lite هو إصدار خفيف من إطار TensorFlow، طورته Google لتشغيل نماذج التعلم الآلي على الأجهزة المحمولة والمدمجة ذات الموارد الحاسوبية المحدودة. على عكس TensorFlow الكامل، يستخدم TFLite مفسرًا متخصصًا وتنسيق .tflite، المحسّن للاستدلال السريع دون دعم التدريب. وفقًا لـ TensorFlow Lite Guide, 2025, يعمل الإطار على Android و iOS و Linux ويُستخدم في أكثر من 4 مليارات جهاز. TensorFlow Lite يدعم القياس الكمي، والتسريع عبر الأجهزة من خلال مفوضي NNAPI و GPU و Core ML.
الخلاصة
TensorFlow Lite هو بيئة تشغيل متخصصة لتشغيل نماذج التعلم الآلي على الأجهزة محدودة الموارد. على عكس TensorFlow الكامل، لا يدعم TFLite التدريب أو الانتشار العكسي — فقط الاستدلال. وهذا يسمح بإبقاء الحجم الثنائي للمكتبة في حده الأدنى: حوالي 300 كيلوبايت للمفسر الأساسي على Android.
تم تصميم بنية TFLite حول تنسيق .tflite، المعتمد على FlatBuffers. توفر FlatBuffers وصولاً مباشرًا إلى البيانات دون مرحلة تحليل، وهو أمر بالغ الأهمية للأجهزة المحمولة ذات الذاكرة المحدودة. يحتوي النموذج بتنسيق .tflite على رسم بياني للحساب والأوزان والبيانات الوصفية في ملف ثنائي واحد.
وفقًا لـ Google I/O 2024، يُستخدم TFLite في Google Photos و Gboard و YouTube وتطبيقات Google الأخرى بجمهور مجمع يزيد عن 4 مليارات جهاز. يدعم الإطار جميع البنى الرئيسية: CNN و RNN و LSTM و Transformer والعمليات المخصصة عبر المفوضين.
تتكون بيئة تشغيل TFLite من أربعة مكونات. يأخذ TFLite Converter نموذجًا من TensorFlow (SavedModel, Keras, ConcreteFunction) ويحوله إلى تنسيق .tflite مع تحسين اختياري. يقوم TFLite Interpreter بتحميل ملف .tflite وتنفيذ الاستدلال، مع إدارة الموترات والذاكرة.
المفوضون هم مكونات تنقل تنفيذ العمليات إلى أجهزة متخصصة. يستخدم GPU Delegate OpenGL ES و Metal، ويستخدم NNAPI Delegate واجهة Android Neural Networks API، ويستخدم Core ML Delegate Apple Core ML. يعمل XNNPACK Delegate على تحسين التنفيذ على معالجات ARM. يدعم كل مفوض مجموعة محددة من العوامل.
المكون الرابع هو مكتبة المهام، التي توفر واجهات برمجة عالية المستوى للمهام النموذجية: تصنيف الصور، اكتشاف الكائنات، التجزئة، NLU. تعمل مكتبة المهام فوق المفسر وتخفي تفاصيل إدارة الموترات.
يدعم TFLite ثلاثة مستويات من القياس الكمي. يقوم القياس الكمي الصحيح الكامل INT8 بتحويل الأوزان والتنشيطات من FP32 إلى أعداد صحيحة 8 بت. يقل حجم النموذج 4 مرات، وتزداد سرعة الاستدلال على الأجهزة التي تدعم INT8 حتى 3 مرات. يقلل القياس الكمي FP16 الحجم إلى النصف مع فقدان دقة ضئيل.
القياس الكمي الديناميكي يحافظ على الأوزان بتنسيق INT8 ولكنه يجري الحسابات بتنسيق FP32. هذا الوضع مناسب للنماذج الحساسة للدقة ويوفر تقليل حجم يصل إلى 4 مرات مع الحفاظ على الجودة. وفقًا لـ Google ML Performance Benchmarks، يُوصى بالقياس الكمي الديناميكي لنماذج NLP.
| الوضع | نوع الأوزان | نوع التنشيطات | تقليل الحجم |
|---|---|---|---|
| FP32 (بدون قياس كمي) | FP32 | FP32 | 1x |
| FP16 | FP16 | FP32 | 2x |
| INT8 ديناميكي | INT8 | FP32 | 4x |
| INT8 كامل | INT8 | INT8 | 4x |
على Android، آلية التسريع الرئيسية هي مفوض NNAPI، الذي ينقل تنفيذ العمليات إلى NPU أو DSP أو GPU عبر واجهة Android Neural Networks API. يتوفر NNAPI على الأجهزة التي تعمل بنظام Android 8.1+ ويدعم حسابات INT8 و FP16. يستخدم GPU Delegate لنظام Android OpenGL ES 3.1+ و Vulkan.
على iOS، يتم توفير التسريع عبر مفوض Core ML، الذي يترجم عمليات TFLite إلى تنسيق Core ML وينفذها على Apple Neural Engine. وفقًا لـ Apple ML Benchmarking، يؤدي استخدام Core ML Delegate إلى تسريع الاستدلال على iPhone 15 Pro حتى 4 مرات مقارنة بوحدة المعالجة المركزية. يستخدم GPU Delegate لنظام iOS Metal Performance Shaders.
مفوض XNNPACK هو حل متعدد المنصات لمعالجات ARM، محسّن للمعالجات المحمولة. يدعم XNNPACK عمليات FP32 و FP16 و INT8 ولا يتطلب أجهزة خاصة. يُوصى به كمفوض أساسي لجميع الأجهزة.
تتضمن عملية النشر ثلاث خطوات. الأولى — تحويل النموذج إلى .tflite عبر TFLite Converter. الثانية — تضمين ملف .tflite في موارد التطبيق. لنظام Android، يوضع الملف في assets؛ لنظام iOS، في حزمة التطبيق عبر Xcode. الثالثة — تهيئة المفسر وتنفيذ الاستدلال.
لـ التحديثات الديناميكية للنماذج، توصي Google باستخدام Firebase ML Model Downloading أو آلية تحميل مخصصة من السحابة. يتم حفظ ملف .tflite المحدّث في التخزين المحلي وتحميله في المفسر عند التشغيل التالي.
عند النشر، من المهم مراعاة حجم ملف .tflite. يحد Google Play حجم APK إلى 200 ميجابايت. للنماذج الأكبر من 50 ميجابايت، يُوصى باستخدام Android App Bundle أو تحميل النموذج بشكل منفصل عبر Play Asset Delivery.
مثال على تحميل وتشغيل نموذج على Android باستخدام Java API. استخدم Interpreter.create() لتحميل .tflite من assets و run() للاستدلال. يتم تمرير بيانات الإدخال والإخراج كمصفوفات متعددة الأبعاد أو ByteBuffer:
import org.tensorflow.lite.Interpreter;
import java.nio.MappedByteBuffer;
import java.io.FileInputStream;
import java.nio.channels.FileChannel;
MappedByteBuffer model = new FileInputStream(
getAssets().openFd("model.tflite")
).getChannel().map(
FileChannel.MapMode.READ_ONLY, 0, fc.size()
);
Interpreter interpreter = new Interpreter.create(model);
float[][] input = new float[1][224 * 224 * 3];
float[][] output = new float[1][1000];
interpreter.run(input, output);
interpreter.close();
مثال على استخدام GPU Delegate على Android للتسريع عبر الأجهزة. أضف التبعية com.android.support:tensorflow-lite-gpu وحدد المفوض عند إنشاء المفسر:
import org.tensorflow.lite.Interpreter;
import org.tensorflow.lite.gpu.GpuDelegate;
GpuDelegate gpuDelegate = new GpuDelegate.create();
Interpreter.Options options = new Interpreter.Options().addDelegate(gpuDelegate);
Interpreter interpreter = new Interpreter.create(model, options);
// Run inference on the input data
interpreter.run(input, output);
// Release delegate resources after inference
gpuDelegate.close();
interpreter.close();
الأسئلة الشائعة
TensorFlow هو إطار كامل للتدريب والاستدلال. TensorFlow Lite مخصص للاستدلال فقط على الأجهزة المحمولة. يستخدم TFLite تنسيق .tflite ولا يدعم الانتشار العكسي.
المفوضون المدعومون يشملون GPU Delegate (OpenGL/Metal), NNAPI Delegate (Android), Core ML Delegate (iOS) و XNNPACK Delegate (ARM CPU). كل مفوض محسّن لنوع معين من الأجهزة.
استخدم القياس الكمي: FP16 يقلل الحجم مرتين، INT8 4 مرات. يتوفر أيضًا القياس الكمي الديناميكي، وتقليم الأوزان، وتقطير النموذج قبل التحويل.
نعم، عبر TFLite Model Maker و واجهة برمجة التدريب على الجهاز (تجريبي). يتم دعم الضبط الدقيق والتخصيص للنماذج مباشرة على جهاز المستخدم.
يدعم TFLite CNN, RNN, LSTM, Transformer، والبنى المحمولة (MobileNet, EfficientNet, YOLO, BERT) والعمليات المخصصة. القيد هو العوامل المتاحة في المفوض المستهدف.
الملخص
سنقوم بتطوير تطبيق جوال جاهز
تقدم IT Sectr تطبيقات iOS وAndroid للشركات الناشئة والشركات منذ عام 2017. سوف نقدم لك النصح ونقترح أفضل حل.
اقرأ أيضًا