O LiteRT Next é um novo conjunto de APIs que melhora o LiteRT, principalmente em
termos de aceleração de hardware e desempenho para aplicativos de ML e IA
no dispositivo. As APIs são uma versão Alfa e estão disponíveis em Kotlin e C++.
A API LiteRT Next Compiled Model é baseada na API TensorFlow Lite Interpreter
e simplifica o processo de carregamento e execução do modelo para o aprendizado de máquina
no dispositivo. As novas APIs oferecem uma maneira simplificada de usar a aceleração
de hardware, eliminando a necessidade de lidar com FlatBuffers de modelo, interoperabilidade
de buffer de E/S e delegados. As APIs LiteRT Next não são compatíveis com
as APIs LiteRT. Para usar os recursos do LiteRT Next, consulte o guia Começar
a usar.
Para exemplos de implementações do LiteRT Next, consulte os seguintes aplicativos de demonstração:
A execução de inferência com as APIs LiteRT Next envolve as seguintes etapas principais:
Carregue um modelo compatível.
Aloque os buffers de tensor de entrada e saída.
Invocar o modelo compilado.
Leia as inferências em um buffer de saída.
Os snippets de código abaixo mostram uma implementação básica de todo o processo em
Kotlin e 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()
O LiteRT Next contém os seguintes benefícios e recursos principais:
Nova API LiteRT: simplifique o desenvolvimento com a seleção de acelerador
automatizado, execução assíncrona verdadeira e processamento de buffer de E/S eficiente.
Melhor desempenho de GPU da categoria: use a aceleração de GPU de última geração para
ML no dispositivo. A nova interoperabilidade de buffer permite a cópia zero e
minimiza a latência em vários tipos de buffer de GPU.
Supremacia na inferência de IA generativa: ative a integração mais simples com
a melhor performance para modelos de IA generativa.
Aceleração unificada de NPU: ofereça acesso perfeito às NPUs dos principais
fornecedores de chipsets com uma experiência consistente para desenvolvedores. A aceleração do NPU do
LiteRT está disponível em um programa de acesso
antecipado.
Principais melhorias
O LiteRT Next (API de modelo compilado) contém as seguintes melhorias importantes no
LiteRT (API de interpretador do TFLite). Para conferir um guia completo de configuração do
aplicativo com o LiteRT Next, consulte o guia Primeiros passos.
Uso do acelerador: a execução de modelos na GPU com o LiteRT requer a criação explícita
de delegados, chamadas de função e modificações de gráfico. Com o LiteRT
Next, basta especificar o acelerador.
Interoperabilidade de buffer de hardware nativo: o LiteRT não oferece a
opção de buffers e força todos os dados pela memória da CPU. Com o LiteRT Next,
é possível transmitir buffers de hardware do Android (AHWBs), buffers do OpenCL, buffers do
OpenGL ou outros buffers especializados.
Execução assíncrona: o LiteRT Next vem com uma API assíncrona redesenhada,
oferecendo um mecanismo assíncrono verdadeiro baseado em cercas de sincronização. Isso permite tempos de execução mais rápidos
no geral pelo uso de hardwares diversos, como CPUs,
GPUs, CPUs e NPUs, para tarefas diferentes.
Carregamento de modelo: o LiteRT Next não exige uma etapa de builder separada ao
carregar um modelo.
[[["Fácil de entender","easyToUnderstand","thumb-up"],["Meu problema foi resolvido","solvedMyProblem","thumb-up"],["Outro","otherUp","thumb-up"]],[["Não contém as informações de que eu preciso","missingTheInformationINeed","thumb-down"],["Muito complicado / etapas demais","tooComplicatedTooManySteps","thumb-down"],["Desatualizado","outOfDate","thumb-down"],["Problema na tradução","translationIssue","thumb-down"],["Problema com as amostras / o código","samplesCodeIssue","thumb-down"],["Outro","otherDown","thumb-down"]],["Última atualização 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."]]