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

الحصول على النموذج وإعداده
يتم تمثيل نموذج LiteRT بتنسيق محمول وفعّال يُعرف باسم
FlatBuffers، ويستخدم .tflite
امتداد الملف.
يمكنك الحصول على نموذج LiteRT بإحدى الطرق التالية:
الحصول على نموذج مدرَّب مسبقًا: لأحمال عمل تعلُّم الآلة الشائعة، مثل تقسيم الصور ورصد الأجسام وما إلى ذلك
إنّ أبسط طريقة هي استخدام نموذج LiteRT بتنسيق
.tflite. لا تتطلّب هذه النماذج أي خطوات تحويل إضافية.نوع النموذج مصدر النموذج المدرَّب مسبقًا تعلُّم الآلة الكلاسيكي
(تنسيق.tflite)زيارة Kaggle أو HuggingFace
مثلاً، نماذج تقسيم الصور والتطبيق النموذجيالذكاء الاصطناعي التوليدي
(.litertlmتنسيق)صفحة LiteRT على Hugging Face
مثلاً، عائلة Gemmaتحويل نموذج PyTorch أو TensorFlow أو JAX الذي اخترته إلى نموذج LiteRT إذا اخترت عدم استخدام نموذج مدرَّب مسبقًا [مستخدم محترف]
إطار عمل النموذج النماذج النموذجية أداة التحويل Pytorch Hugging Face
Torchvisionالرابط TensorFlow نماذج Kaggle
Hugging Faceالرابط Jax Hugging Face الرابط إنشاء نموذج لغوي كبير لمزيد من التحسين باستخدام Generative API [مستخدم محترف]
توفّر مكتبة Generative API وحدات أساسية مدمجة في PyTorch لـ إنشاء نماذج Transformer، مثل Gemma وTinyLlama وغيرها، باستخدام عمليات تجريد متوافقة مع الأجهزة الجوّالة، ما يضمن إمكانية التحويل والتنفيذ الفعّال على وقت التشغيل للأجهزة الجوّالة، LiteRT. الاطّلاع على مستندات Generative API.
التحسين [مستخدم محترف]
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 | |
|---|---|---|---|---|---|---|
| وحدة المعالجة المركزية | XNNPACK | XNNPACK | XNNPACK | XNNPACK | XNNPACK | XNNPACK |
| وحدة معالجة الرسومات | OpenGL OpenCL |
Metal WebGPU |
WebGPU | WebGPU OpenCL |
WebGPU OpenCL |
WebGPU |
| وحدة المعالجة العصبية | MediaTek Qualcomm |
- | - | Qualcomm | - | Qualcomm |
مستندات إضافية والدعم
مستودع LiteRT-Samples على GitHub لمزيد من التطبيقات النموذجية في LiteRT
بالنسبة إلى مستخدمي TensorFlow Lite الحاليين، اطّلِع على دليل نقل البيانات.
صفحة أدوات LiteRT للاطّلاع على الأداء والتوصيف والإبلاغ عن الأخطاء وما إلى ذلك