LiteRT هو إطار عمل من Google لتطبيقات تعلُّم الآلة والذكاء الاصطناعي التوليدي العالية الأداء على الأجهزة، ويستخدم تحويلاً ووقت تشغيل وتحسينًا فعالاً.
يقدّم أحدث إصدار من LiteRT 2.x واجهة برمجة التطبيقات CompiledModel،
وهي واجهة وقت تشغيل حديثة مصمَّمة لتحقيق أقصى استفادة من تسريع الأجهزة. على الرغم من أنّ واجهة برمجة التطبيقات Interpreter (المعروفة سابقًا باسم TensorFlow Lite) ستظل متاحة لتحقيق التوافق مع الإصدارات القديمة، ننصح المطوّرين الذين يبحثون عن أحدث أداء في تطبيقات الذكاء الاصطناعي على الأجهزة باستخدام واجهة برمجة التطبيقات CompiledModel.
الميزات الرئيسية في LiteRT
تسهيل عملية التطوير باستخدام LiteRT
اختيار أداة تسريع تلقائيًا مقابل إنشاء مفوّض صريح التعامل الفعّال مع مخزن I/O المؤقت والتنفيذ غير المتزامن لتحقيق أداء فائق اطّلِع على مستندات الاستدلال على الجهاز.
أفضل أداء لوحدة معالجة الرسومات
تستند هذه الخدمة إلى 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، التي توفّر حلولاً جاهزة لمهام تعلُّم الآلة الشائعة، مثل رصد العناصر وتصنيف النصوص والاستدلال على النماذج اللغوية الكبيرة.
الحصول على النموذج وإعداده
يتم تمثيل نموذج 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. يمكنك الاطّلاع على مستندات واجهة برمجة التطبيقات التوليدية.
التكميم [مستخدم PRO]
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 |
| التشغيل على Micro | الأجهزة المضمّنة | 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 |
| وحدة معالجة الرسومات | WebGPU OpenCL |
WebGPU Metal |
WebGPU | WebGPU OpenCL |
WebGPU |
| NPU | MediaTek Qualcomm |
- | - | - | - |
المستندات الإضافية والدعم
مستودع LiteRT-Samples على GitHub للحصول على المزيد من نماذج تطبيقات LiteRT
بالنسبة إلى مستخدمي TensorFlow Lite الحاليين، يُرجى الاطّلاع على دليل نقل البيانات.
صفحة أدوات LiteRT للأداء وإنشاء الملفات الشخصية والإبلاغ عن الأخطاء وما إلى ذلك