LiteRT هو إطار عمل من Google لتنفيذ تعلُّم الآلة والذكاء الاصطناعي التوليدي العالي الأداء على الأجهزة الطرفية، وذلك باستخدام التحويل ووقت التشغيل والتحسين الفعّال.
يتضمّن أحدث إصدار من LiteRT 2.x واجهة برمجة التطبيقات CompiledModel،
وهي واجهة وقت تشغيل حديثة مصمَّمة لتحقيق أقصى استفادة من تسريع الأجهزة. على الرغم من أنّ واجهة برمجة التطبيقات
Interpreter (المعروفة سابقًا باسم TensorFlow Lite) ستظل متاحة لتحقيق التوافق مع الإصدارات القديمة، ننصح المطوّرين
باستخدام واجهة برمجة التطبيقات CompiledModel إذا كانوا يريدون الحصول على أفضل أداء ممكن في تطبيقات الذكاء الاصطناعي على الأجهزة.
الميزات الأساسية في LiteRT
تسهيل عملية التطوير باستخدام LiteRT
اختيار أداة تسريع تلقائيًا مقابل إنشاء مفوّض صريح التعامل الفعّال مع مخزن مؤقت للإدخال/الإخراج وتنفيذ غير متزامن لتحقيق أداء فائق اطّلِع على مستندات الاستدلال على الجهاز.
أفضل أداء لوحدة معالجة الرسومات
ML Drift، الذي يتيح الآن استخدام نماذج تعلُّم الآلة والذكاء الاصطناعي التوليدي على واجهات برمجة التطبيقات لوحدات معالجة الرسومات اطّلِع على مستندات تسريع وحدة معالجة الرسومات.
تسريع موحّد لوحدة المعالجة العصبية
يمكنك تسريع نموذجك باستخدام إمكانية الوصول المبسّطة إلى وحدة المعالجة العصبية (NPU) من كبار مورّدي شرائح المعالجة. اطّلِع على مستندات تسريع وحدة المعالجة العصبية.
دعم أفضل للنماذج اللغوية الكبيرة
توفّر LiteRT عملية نشر عالية الأداء لنماذج الذكاء الاصطناعي التوليدي على جميع المنصات، بما في ذلك الأجهزة الجوّالة وأجهزة الكمبيوتر المكتبي والويب. اطّلِع على مستندات نشر الذكاء الاصطناعي التوليدي.
التوافق مع مجموعة كبيرة من أُطر عمل تعلُّم الآلة
يتيح LiteRT تحويلًا مبسطًا من أُطر PyTorch وTensorFlow وJAX إلى تنسيق .tflite أو .litertlm. اطّلِع على مستندات تحويل النماذج.
بدء استخدام واجهة برمجة التطبيقات CompiledModel
بالنسبة إلى نماذج تعلُّم الآلة الكلاسيكية، يمكنك الاطّلاع على التطبيقات التجريبية التالية.
- تطبيق Kotlin لتقسيم الصور: الاستنتاج باستخدام وحدة المعالجة المركزية (CPU) أو وحدة معالجة الرسومات (GPU) أو وحدة المعالجة العصبية (NPU)
- تطبيق C++ لتقسيم الصور: استنتاج وحدة المعالجة المركزية/وحدة معالجة الرسومات/وحدة المعالجة العصبية مع تنفيذ غير متزامن
بالنسبة إلى نماذج الذكاء الاصطناعي التوليدي، يمكنك الاطّلاع على التطبيقات التجريبية التالية:
- تطبيق C++ للتشابه الدلالي EmbeddingGemma: الاستدلال على وحدة المعالجة المركزية (CPU) أو وحدة معالجة الرسومات (GPU) أو وحدة المعالجة العصبية (NPU)
سير عمل التطوير
تُجري LiteRT عمليات الاستدلال بالكامل على الجهاز على أنظمة التشغيل Android وiOS والويب وإنترنت الأشياء وعلى أجهزة الكمبيوتر المكتبي والمحمول. بغض النظر عن الجهاز، إليك سير العمل الأكثر شيوعًا، مع روابط تؤدي إلى تعليمات إضافية.
تحديد الحل الأنسب لتحدّي تعلُّم الآلة
توفّر LiteRT للمستخدمين مستوى عالٍ من المرونة وقابلية التخصيص عند حلّ مشاكل تعلُّم الآلة، ما يجعلها مناسبة للمستخدمين الذين يحتاجون إلى نموذج معيّن أو تنفيذ متخصص. قد يفضّل المستخدمون الذين يبحثون عن حلول جاهزة للاستخدام MediaPipe Tasks، التي توفّر حلولاً جاهزة لمهام تعلُّم الآلة الشائعة، مثل رصد العناصر وتصنيف النصوص والاستدلال باستخدام النماذج اللغوية الكبيرة.

الحصول على النموذج وإعداده
يتم تمثيل نموذج LiteRT بتنسيق فعال وقابل للنقل يُعرف باسم FlatBuffers، ويستخدم امتداد الملف .tflite.
يمكنك الحصول على نموذج LiteRT بالطرق التالية:
الحصول على نموذج مدرَّب مسبقًا: بالنسبة إلى أحمال عمل تعلُّم الآلة الشائعة، مثل تقسيم الصور ورصد الأجسام وما إلى ذلك
أبسط طريقة هي استخدام نموذج LiteRT بتنسيق
.tflite. لا تتطلّب هذه النماذج أي خطوات إضافية للإحالات الناجحة.نوع النموذج مصدر النموذج المدرَّب مسبقًا تعلُّم الآلة الكلاسيكي
(تنسيق.tflite)يمكنك الانتقال إلى Kaggle أو HuggingFace
مثلاً نماذج تقسيم الصور وتطبيق نموذجيالذكاء الاصطناعي التوليدي
(بتنسيق.litertlm)صفحة LiteRT على Hugging Face
مثلاً Gemma Familyحوِّل نموذج PyTorch أو TensorFlow أو JAX الذي اخترته إلى نموذج LiteRT إذا اخترت عدم استخدام نموذج مدرَّب مسبقًا. [PRO USER]
إطار النموذج نماذج أداة التحويل Pytorch Hugging Face
Torchvisionالرابط TensorFlow Kaggle Models
Hugging Faceالرابط Jax Hugging Face الرابط إنشاء نموذج لغوي كبير (LLM) لتحسينه بشكل أكبر باستخدام Generative API [لمستخدمي الإصدار الاحترافي]
توفّر مكتبة Generative API وحدات إنشاء مدمَجة في PyTorch لتأليف نماذج Transformer، مثل Gemma وTinyLlama وغيرها، باستخدام عمليات تجريد متوافقة مع الأجهزة الجوّالة، ما يتيح لنا ضمان التحويل والتنفيذ الفعّال على وقت التشغيل على الأجهزة الجوّالة، LiteRT. يمكنك الاطّلاع على مستندات واجهة برمجة التطبيقات التوليدية.
التحسين [مستخدم محترف]
AI Edge Quantizer للمطوّرين المتقدّمين هي أداة لتحديد كمية نماذج LiteRT المحوَّلة. يهدف هذا الخيار إلى تسهيل سعي المستخدمين المتقدّمين إلى تحقيق أفضل أداء ممكن على النماذج التي تتطلّب موارد كثيرة (مثل نماذج الذكاء الاصطناعي التوليدي).
يمكنك الاطّلاع على مزيد من التفاصيل من مستندات AI Edge Quantizer.
دمج النموذج في تطبيقك على منصات الحوسبة الطرفية
تتيح لك LiteRT تشغيل نماذج تعلُّم الآلة بالكامل على الجهاز مع تحقيق أداء عالٍ على جميع منصات Android وiOS والويب وأجهزة الكمبيوتر وأجهزة إنترنت الأشياء.
استخدِم الأدلة التالية لدمج نموذج LiteRT على المنصة المفضّلة لديك:
| النظام الأساسي المتوافق | الأجهزة المتوافقة | واجهات برمجة التطبيقات المتوافقة |
|---|---|---|
| التشغيل على Android | أجهزة جوّال تعمل بنظام التشغيل Android | C++/Kotlin |
| التشغيل على iOS/macOS | أجهزة iOS الجوّالة وأجهزة Macbook | C++/Swift |
| التنفيذ على الويب باستخدام LiteRT.js | جهاز مزوَّد بمتصفّح Chrome أو Firefox أو Safari | JavaScript |
| التشغيل على نظام التشغيل Linux | محطة عمل Linux أو أجهزة إنترنت الأشياء المستندة إلى Linux | C++/Python |
| التشغيل على Windows | أجهزة كمبيوتر محمولة أو محطات عمل تعمل بنظام التشغيل Windows | C++/Python |
| التشغيل على أجهزة إنترنت الأشياء | الأجهزة المضمّنة | C++ |
تعرض مقتطفات الرموز البرمجية التالية عملية تنفيذ أساسية في Kotlin وC++.
Kotlin
// Load model and initialize runtime
val compiledModel = CompiledModel.create(
"/path/to/mymodel.tflite",
CompiledModel.Options(Accelerator.CPU))
// Preallocate input/output buffers
val inputBuffers = compiledModel.createInputBuffers()
val outputBuffers = compiledModel.createOutputBuffers()
// Fill the input buffer
inputBuffers.get(0).writeFloat(input0)
inputBuffers.get(1).writeFloat(input1)
// Invoke
compiledModel.run(inputBuffers, outputBuffers)
// Read the output
val output = outputBuffers.get(0).readFloat()
C++
// Load model and initialize runtime
LITERT_ASSIGN_OR_RETURN(auto env, GetEnvironment());
LITERT_ASSIGN_OR_RETURN(auto options, GetOptions());
LITERT_ASSIGN_OR_RETURN(
auto compiled_model,
CompiledModel::Create(env, "/path/to/mymodel.tflite", options));
// Preallocate input/output buffers
LITERT_ASSIGN_OR_RETURN(auto input_buffers,compiled_model.CreateInputBuffers(signature_index));
LITERT_ASSIGN_OR_RETURN(auto output_buffers,compiled_model.CreateOutputBuffers(signature_index));
// Fill the input buffer
LITERT_ABORT_IF_ERROR(input_buffers[0].Write(input0));
LITERT_ABORT_IF_ERROR(input_buffers[1].Write(input1));
// Invoke
LITERT_ABORT_IF_ERROR(compiled_model.Run(signature_index, input_buffers, output_buffers));
// Read the output
LITERT_ABORT_IF_ERROR(output_buffers[0].Read(output0));
اختيار نظام الخلفية
إنّ الطريقة الأسهل لدمج الخلفيات في LiteRT هي الاعتماد على الميزات الذكية المضمّنة في وقت التشغيل. باستخدام واجهة برمجة التطبيقات CompiledModel، يسهّل LiteRT عملية الإعداد بشكل كبير من خلال إتاحة تحديد الخلفية المستهدَفة كخيار. مزيد من التفاصيل في دليل الاستدلال على الجهاز
| Android | iOS / macOS | الويب | Linux / Windows | إنترنت الأشياء (IoT) | |
|---|---|---|---|---|---|
| وحدة معالجة مركزية (CPU) | XNNPACK | XNNPACK | XNNPACK | XNNPACK | XNNPACK |
| وحدة معالجة الرسومات | OpenGL OpenCL |
WebGPU Metal |
WebGPU | WebGPU OpenCL |
WebGPU |
| NPU | MediaTek Qualcomm |
- | - | - | - |
المستندات الإضافية والدعم
مستودع LiteRT-Samples على GitHub للحصول على المزيد من نماذج تطبيقات LiteRT
بالنسبة إلى المستخدمين الحاليين في TensorFlow Lite، يُرجى الاطّلاع على دليل نقل البيانات.
صفحة أدوات LiteRT للأداء وإنشاء الملفات الشخصية والإبلاغ عن الأخطاء وما إلى ذلك