LiteRT Next es un nuevo conjunto de APIs que mejora LiteRT, en particular en términos de aceleración de hardware y rendimiento para aplicaciones de IA y AA integradas en el dispositivo. Las APIs son una versión alfa y están disponibles en Kotlin y C++.
La API de LiteRT Next Compiled Model se basa en la API de TensorFlow Lite Interpreter y simplifica el proceso de carga y ejecución de modelos para el aprendizaje automático integrado en el dispositivo. Las nuevas APIs proporcionan una nueva forma optimizada de usar la aceleración de hardware, lo que elimina la necesidad de lidiar con el modelo FlatBuffers, la interoperabilidad del búfer de E/S y los delegados. Las APIs de LiteRT Next no son compatibles con las APIs de LiteRT. Para usar las funciones de LiteRT Next, consulta la guía de Inicio.
Para ver ejemplos de implementaciones de LiteRT Next, consulta las siguientes aplicaciones de demostración:
Ejecutar la inferencia con las APIs de LiteRT Next implica los siguientes pasos clave:
Carga un modelo compatible.
Asigna los búferes de tensores de entrada y salida.
Invoca el modelo compilado.
Lee las inferencias en un búfer de salida.
En los siguientes fragmentos de código, se muestra una implementación básica de todo el proceso en Kotlin y C++.
C++
// Load model and initialize runtimeLITERT_ASSIGN_OR_RETURN(automodel,Model::CreateFromFile("mymodel.tflite"));LITERT_ASSIGN_OR_RETURN(autoenv,Environment::Create({}));LITERT_ASSIGN_OR_RETURN(autocompiled_model,CompiledModel::Create(env,model,kLiteRtHwAcceleratorCpu));// Preallocate input/output buffersLITERT_ASSIGN_OR_RETURN(autoinput_buffers,compiled_model.CreateInputBuffers());LITERT_ASSIGN_OR_RETURN(autooutput_buffers,compiled_model.CreateOutputBuffers());// Fill the first inputfloatinput_values[]={/* your data */};input_buffers[0].Write<float>(absl::MakeConstSpan(input_values,/*size*/));// Invokecompiled_model.Run(input_buffers,output_buffers);// Read the outputstd::vector<float>data(output_data_size);output_buffers[0].Read<float>(absl::MakeSpan(data));
Kotlin
// Load model and initialize runtimevalmodel=CompiledModel.create(context.assets,"mymodel.tflite",CompiledModel.Options(Accelerator.CPU))// Preallocate input/output buffersvalinputBuffers=model.createInputBuffers()valoutputBuffers=model.createOutputBuffers()// Fill the first inputinputBuffers[0].writeFloat(FloatArray(data_size){data_value/* your data */})// Invokemodel.run(inputBuffers,outputBuffers)// Read the outputvaloutputFloatArray=outputBuffers[0].readFloat()
LiteRT Next incluye los siguientes beneficios y funciones clave:
Nueva API de LiteRT: Agiliza el desarrollo con la selección automática de aceleradores, la ejecución asíncrona real y el manejo eficiente de los búferes de E/S.
Rendimiento de GPU de primera clase: Usa la aceleración de GPU de última generación para la IA integrada en el dispositivo. La nueva interoperabilidad de búferes habilita la copia cero y minimiza la latencia en varios tipos de búferes de GPU.
Inferencia de IA generativa superior: Habilita la integración más sencilla con el mejor rendimiento para los modelos de IA generativa.
Unified NPU Acceleration: Ofrece acceso sin problemas a las NPU de los principales proveedores de chipsets con una experiencia de desarrollador coherente. La aceleración de la NPU de LiteRT está disponible a través de un Programa de acceso anticipado.
Mejoras clave
LiteRT Next (API de modelo compilado) contiene las siguientes mejoras clave en LiteRT (API de intérprete de TFLite). Para obtener una guía integral para configurar tu aplicación con LiteRT Next, consulta la guía Cómo comenzar.
Uso del acelerador: Ejecutar modelos en la GPU con LiteRT requiere la creación explícita de delegados, llamadas a funciones y modificaciones de gráficos. Con LiteRT, solo debes especificar el acelerador.
Interoperabilidad de búferes de hardware nativo: LiteRT no proporciona la opción de búferes y fuerza todos los datos a través de la memoria de la CPU. Con LiteRT Next, puedes pasar búferes de hardware de Android (AHWB), búferes de OpenCL, búferes de OpenGL y otros búferes especializados.
Ejecución asíncrona: LiteRT Next incluye una API asíncrona rediseñada que proporciona un mecanismo asíncrono real basado en cercas de sincronización. Esto permite tiempos de ejecución generales más rápidos mediante el uso de hardware diverso, como CPUs, GPUs, CPUs y NPU, para diferentes tareas.
Carga de modelos: LiteRT Next no requiere un paso de compilación independiente cuando se carga un modelo.
[[["Fácil de comprender","easyToUnderstand","thumb-up"],["Resolvió mi problema","solvedMyProblem","thumb-up"],["Otro","otherUp","thumb-up"]],[["Falta la información que necesito","missingTheInformationINeed","thumb-down"],["Muy complicado o demasiados pasos","tooComplicatedTooManySteps","thumb-down"],["Desactualizado","outOfDate","thumb-down"],["Problema de traducción","translationIssue","thumb-down"],["Problema con las muestras o los códigos","samplesCodeIssue","thumb-down"],["Otro","otherDown","thumb-down"]],["Última actualización: 2025-09-03 (UTC)"],[],[],null,["# LiteRT Next Overview\n\n| **Experimental:** LiteRT Next is an alpha release and under active development.\n\nLiteRT Next is a new set of APIs that improves upon LiteRT, particularly in\nterms of hardware acceleration and performance for on-device ML and AI\napplications. The APIs are an alpha release and available in Kotlin and C++.\n\nThe LiteRT Next Compiled Model API builds on the TensorFlow Lite Interpreter\nAPI, and simplifies the model loading and execution process for on-device\nmachine learning. The new APIs provide a new streamlined way to use hardware\nacceleration, removing the need to deal with model FlatBuffers, I/O buffer\ninteroperability, and delegates. The LiteRT Next APIs are not compatible with\nthe LiteRT APIs. In order to use features from LiteRT Next, see the [Get\nStarted](./get_started) guide.\n\nFor example implementations of LiteRT Next, refer to the following demo\napplications:\n\n- [Image segmentation with Kotlin](https://github.com/google-ai-edge/LiteRT/tree/main/litert/samples/image_segmentation/kotlin_cpu_gpu/android)\n- [Asynchronous segmentation with C++](https://github.com/google-ai-edge/LiteRT/tree/main/litert/samples/async_segmentation)\n\nQuickstart\n----------\n\nRunning inference with the LiteRT Next APIs involves the following key steps:\n\n1. Load a compatible model.\n2. Allocate the input and output tensor buffers.\n3. Invoke the compiled model.\n4. Read the inferences into an output buffer.\n\nThe following code snippets show a basic implementation of the entire process in\nKotlin and C++. \n\n### C++\n\n // Load model and initialize runtime\n LITERT_ASSIGN_OR_RETURN(auto model, Model::CreateFromFile(\"mymodel.tflite\"));\n LITERT_ASSIGN_OR_RETURN(auto env, Environment::Create({}));\n LITERT_ASSIGN_OR_RETURN(auto compiled_model,\n CompiledModel::Create(env, model, kLiteRtHwAcceleratorCpu));\n\n // Preallocate input/output buffers\n LITERT_ASSIGN_OR_RETURN(auto input_buffers, compiled_model.CreateInputBuffers());\n LITERT_ASSIGN_OR_RETURN(auto output_buffers, compiled_model.CreateOutputBuffers());\n\n // Fill the first input\n float input_values[] = { /* your data */ };\n input_buffers[0].Write\u003cfloat\u003e(absl::MakeConstSpan(input_values, /*size*/));\n\n // Invoke\n compiled_model.Run(input_buffers, output_buffers);\n\n // Read the output\n std::vector\u003cfloat\u003e data(output_data_size);\n output_buffers[0].Read\u003cfloat\u003e(absl::MakeSpan(data));\n\n### Kotlin\n\n // Load model and initialize runtime\n val model =\n CompiledModel.create(\n context.assets,\n \"mymodel.tflite\",\n CompiledModel.Options(Accelerator.CPU)\n )\n\n // Preallocate input/output buffers\n val inputBuffers = model.createInputBuffers()\n val outputBuffers = model.createOutputBuffers()\n\n // Fill the first input\n inputBuffers[0].writeFloat(FloatArray(data_size) { data_value /* your data */ })\n\n // Invoke\n model.run(inputBuffers, outputBuffers)\n\n // Read the output\n val outputFloatArray = outputBuffers[0].readFloat()\n\nFor more information, see the [Get Started with Kotlin](./android_kotlin) and\n[Get Started with C++](./android_cpp) guides.\n\nKey features\n------------\n\nLiteRT Next contains the following key benefits and features:\n\n- **New LiteRT API**: Streamline development with automated accelerator selection, true async execution, and efficient I/O buffer handling.\n- **Best-in-class GPU Performance**: Use state-of-the-art GPU acceleration for on-device ML. The new buffer interoperability enables zero-copy and minimizes latency across various GPU buffer types.\n- **Superior Generative AI inference**: Enable the simplest integration with the best performance for GenAI models.\n- **Unified NPU Acceleration** : Offer seamless access to NPUs from major chipset providers with a consistent developer experience. LiteRT NPU acceleration is available through an [Early Access\n Program](https://forms.gle/CoH4jpLwxiEYvDvF6).\n\nKey improvements\n----------------\n\nLiteRT Next (Compiled Model API) contains the following key improvements on\nLiteRT (TFLite Interpreter API). For a comprehensive guide to setting up your\napplication with LiteRT Next, see the [Get Started](./get_started) guide.\n\n- **Accelerator usage**: Running models on GPU with LiteRT requires explicit delegate creation, function calls, and graph modifications. With LiteRT Next, just specify the accelerator.\n- **Native hardware buffer interoperability**: LiteRT does not provide the option of buffers, and forces all data through CPU memory. With LiteRT Next, you can pass in Android Hardware Buffers (AHWB), OpenCL buffers, OpenGL buffers, or other specialized buffers.\n- **Async execution**: LiteRT Next comes with a redesigned async API, providing a true async mechanism based on sync fences. This enables faster overall execution times through the use of diverse hardware -- like CPUs, GPUs, CPUs, and NPUs -- for different tasks.\n- **Model loading**: LiteRT Next does not require a separate builder step when loading a model."]]