Comienza a usar LiteRT Next

Las APIs de LiteRT Next no son compatibles con las APIs de LiteRT, por lo que las aplicaciones que usan LiteRT deben migrar por completo a LiteRT Next para usar las funciones y capacidades que proporcionan las nuevas APIs. Las aplicaciones no pueden usar las APIs de TF Lite Interpreter y las APIs de modelos compilados de forma intercambiable.

LiteRT Next proporciona APIs para Kotlin y C++. Las aplicaciones que usan un SDK de LiteRT en otros lenguajes deben seguir usando LiteRT.

Dependencias de Android

Para migrar una aplicación para Android con LiteRT, reemplaza la dependencia de com.google.ai.edge.litert a com.google.ai.edge.litert:litert:2.0.0-alpha.

Con LiteRT, el acelerador de GPU está disponible como delegado en una biblioteca independiente (com.google.ai.edge.litert:litert-gpu). Con LiteRT Next, el acelerador de GPU se incluye en el paquete LiteRT Next. Para obtener más información, consulta GPU con LiteRT Next.

Puedes agregar el paquete LiteRT Next a tus dependencias de build.gradle:

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

Cambios en el código

Las aplicaciones que usan LiteRT deberán reemplazar el código que usa la API de Interpreter de TFLite por el código que usa la API de Compiled Model. A continuación, se muestran los cambios principales necesarios para migrar a LiteRT Next. Para obtener más detalles, consulta la referencia de la API de LiteRT Next.

Cambios de código en C++

Para migrar una aplicación con C++, reemplaza los siguientes fragmentos de clave:

LiteRT (intérprete de TFLite) LiteRT Next (CompiledModel)
Cómo cargar un modelo FlatBufferModel::BuildFromFile() InterpreterBuilder(...) Model::CreateFromFile("mymodel.tflite")
Nota: No hay un paso de compilación independiente
Cómo inicializar el entorno de ejecución builder(&interpreter), interpreter->AllocateTensors() CompiledModel::Create(env, model, kLiteRtHwAcceleratorCpu)
Nota: No hay un paso de asignación de memoria manual
Cómo usar aceleradores interpreter->ModifyGraphWithDelegate(...) CompiledModel::Create(env, model, kLiteRtHwAcceleratorGpu)
Cómo ejecutar un modelo interpreter->Invoke() compiled_model->Run(inputs, outputs)

Cambios de código en Kotlin

Para migrar una aplicación con Kotlin, sigue estos pasos clave:

Configura el modelo y el entorno de ejecución

Con LiteRT, cargas un modelo, configuras la aceleración y, luego, inicializas el entorno de ejecución en diferentes pasos:

// 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)

Con LiteRT Next, cargas el modelo, especificas la aceleración y, luego, inicializas el entorno de ejecución al mismo tiempo:

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

Ejecuta la inferencia

Para ejecutar el modelo con LiteRT, haz lo siguiente:

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

Para ejecutar el modelo con LiteRT Next, haz lo siguiente:

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

Otras bibliotecas

Las APIs de LiteRT Next solo están disponibles en Kotlin y C++. Las aplicaciones que usan los SDKs de LiteRT en otros lenguajes no pueden migrar a LiteRT Next.

Las aplicaciones que usan LiteRT en el entorno de ejecución de los Servicios de Play no pueden migrar a LiteRT Next y deben seguir usando el entorno de ejecución de play-services-tflite. Las bibliotecas de Task y Model Maker no pueden migrar a LiteRT Next y deben seguir usando las APIs de TensorFlow Lite.