بدء استخدام LiteRT Next

لا تتوافق واجهات برمجة تطبيقات LiteRT Next مع واجهات برمجة تطبيقات LiteRT، لذا يجب نقل التطبيقات التي تستخدم LiteRT بالكامل إلى LiteRT Next من أجل الاستفادة من الميزات والإمكانات التي تقدّمها واجهات برمجة التطبيقات الجديدة. لا يمكن للتطبيقات استخدام واجهات برمجة تطبيقات TF Lite Interpreter APIs وCompiled Model APIs بالتبادل.

توفّر أداة LiteRT Next واجهات برمجة تطبيقات لكل من Kotlin وC++. ويجب أن تواصل التطبيقات التي تستخدم حزمة LiteRT SDK بلغات أخرى استخدام LiteRT.

المهام التابعة لنظام Android

لنقل تطبيق Android باستخدام LiteRT، استبدِل التبعية من com.google.ai.edge.litert إلى com.google.ai.edge.litert:litert:2.0.0-alpha.

باستخدام LiteRT، يتوفّر مسرع وحدة معالجة الرسومات كمفوّض في مكتبة منفصلة (com.google.ai.edge.litert:litert-gpu). باستخدام LiteRT Next، يتم تضمين مسرع وحدة معالجة الرسومات في حزمة LiteRT Next. لمزيد من المعلومات، يُرجى الاطّلاع على مقالة وحدة معالجة الرسومات مع LiteRT Next.

يمكنك إضافة حزمة LiteRT Next إلى تبعيات build.gradle:

dependencies {
  ...
  implementation `com.google.ai.edge.litert:litert:2.0.0-alpha`
}

تغييرات الرموز

على التطبيقات التي تستخدم LiteRT استبدال الرمز البرمجي الذي يستخدم واجهة برمجة التطبيقات TFLite Interpreter API بالرمز البرمجي الذي يستخدم واجهة برمجة التطبيقات Compiled Model API. يعرض ما يلي التغييرات الرئيسية المطلوبة لنقل البيانات إلى LiteRT Next. لمزيد من التفاصيل، يُرجى الاطّلاع على مرجع LiteRT Next API.

تغييرات الرمز في C++

لنقل تطبيق باستخدام C++، استبدِل المقتطفات الرئيسية التالية:

LiteRT (مُفسِّر TFLite) LiteRT Next (CompiledModel)
تحميل نموذج FlatBufferModel::BuildFromFile() InterpreterBuilder(...) Model::CreateFromFile("mymodel.tflite")
ملاحظة: لا تتوفّر خطوة منفصلة لإنشاء النموذج
بدء وقت التشغيل builder(&interpreter), interpreter->AllocateTensors() CompiledModel::Create(env, model, kLiteRtHwAcceleratorCpu)
ملاحظة: لا تتوفّر خطوة تخصيص ذاكرة يدويًا
استخدام أدوات التسريع interpreter->ModifyGraphWithDelegate(...) CompiledModel::Create(env, model, kLiteRtHwAcceleratorGpu)
تشغيل نموذج interpreter->Invoke() compiled_model->Run(inputs, outputs)

تغييرات الرمز في Kotlin

لنقل تطبيق باستخدام Kotlin، اتّبِع الخطوات الرئيسية التالية:

إعداد النموذج وبيئة التشغيل

باستخدام LiteRT، يمكنك تحميل نموذج وإعداد التسارع وبدء وقت التشغيل في خطوات مختلفة:

// Load the model
val modelBuffer: MappedByteBuffer =
  FileUtil.loadMappedFile(appContext, "model.tflite")

// Initialize runtime
val options = Interpreter.Options()
val interpreter = Interpreter(modelBuffer, options)
interpreter.allocateTensors()

// Use accelerators
aval gpuDelegate = GpuDelegate()
options.addDelegate(gpuDelegate)

باستخدام LiteRT Next، يمكنك تحميل النموذج وتحديد التسارع و تهيئة وقت التشغيل في الوقت نفسه:

val model =
CompiledModel.create(
  context.assets,
  "model.tflite",
  CompiledModel.Options(Accelerator.GPU)
)

تنفيذ الاستنتاج

لتشغيل النموذج باستخدام LiteRT:

val input = FloatBuffer.allocate(data_size)
val output = FloatBuffer.allocate(data_size)
interpreter.run(input, output)

لتشغيل النموذج باستخدام LiteRT Next:

val inputBuffers = model.createInputBuffers()
val outputBuffers = model.createOutputBuffers()
model.run(inputBuffers, outputBuffers)

مكتبات أخرى

لا تتوفّر واجهات برمجة تطبيقات LiteRT Next إلا بلغتَي Kotlin وC++. ولا يمكن نقل التطبيقات التي تستخدم حِزم تطوير البرامج (SDK) من LiteRT بلغات أخرى إلى LiteRT Next.

لا يمكن للتطبيقات التي تستخدم LiteRT في بيئة تشغيل "خدمات Play" نقل بياناتها إلى LiteRT Next، ويجب مواصلة استخدام بيئة التشغيل play-services-tflite. لا يمكن نقل مكتبتَي Task Library وModel Maker إلى LiteRT Next، ويجب مواصلة استخدام واجهات برمجة تطبيقات TensorFlow Lite.