LiteRT para Android

Com o LiteRT, você executa modelos do TensorFlow, PyTorch e JAX nos seus apps Android. O sistema LiteRT oferece ambientes de execução pré-criados e personalizáveis para executar modelos no Android de maneira rápida e eficiente, incluindo opções de aceleração de hardware.

Para exemplos de aplicativos Android que usam o LiteRT, consulte o repositório de amostras do LiteRT.

Modelos de machine learning

O LiteRT usa modelos do TensorFlow, PyTorch e JAX que são convertidos em um formato de modelo de machine learning menor, portátil e mais eficiente. É possível usar modelos pré-criados com o LiteRT no Android ou criar seus próprios modelos e convertê-los para o formato LiteRT.

Esta página aborda o uso de modelos de machine learning já criados e não inclui a criação, o treinamento, o teste ou a conversão de modelos. Saiba mais sobre como escolher, modificar, criar e converter modelos de machine learning para o LiteRT na página Modelos.

Executar modelos no Android

Um modelo LiteRT executado em um app Android recebe dados, os processa e gera uma previsão com base na lógica do modelo. Um modelo LiteRT exige um ambiente de execução especial para ser executado, e os dados transmitidos para o modelo precisam estar em um formato específico, chamado de tensor. Quando um modelo processa os dados, o que é conhecido como execução de uma inferência, ele gera resultados de previsão como novos tensores e os transmite ao app Android para que ele possa realizar ações, como mostrar o resultado a um usuário ou executar outra lógica de negócios.

Fluxo de execução funcional para modelos LiteRT em apps Android

Figura 1. Fluxo de execução funcional para modelos LiteRT em apps Android.

No nível de design funcional, seu app Android precisa dos seguintes elementos para executar um modelo LiteRT:

  • Ambiente de execução do LiteRT para executar o modelo
  • Processador de entrada do modelo para transformar dados em tensores
  • Processador de saída do modelo para receber tensores de resultados de saída e interpretá-los como resultados de previsão

As seções a seguir descrevem como as bibliotecas e ferramentas do LiteRT fornecem esses elementos funcionais.

Criar apps com o LiteRT

Esta seção descreve o caminho recomendado e mais comum para implementar o LiteRT no seu app Android. Preste mais atenção às seções ambiente de execução e bibliotecas de desenvolvimento. Se você desenvolveu um modelo personalizado, consulte a seção Caminhos de desenvolvimento avançado.

Opções de ambiente de execução

Há várias maneiras de ativar um ambiente de execução para executar modelos no seu app Android. Estas são as opções preferenciais:

Em geral, use o ambiente de execução fornecido pelos Serviços do Google Play, porque ele é mais eficiente em termos de espaço do que o ambiente padrão, já que é carregado dinamicamente, mantendo o tamanho do app menor. O Google Play Services também usa automaticamente a versão estável mais recente do ambiente de execução LiteRT, oferecendo mais recursos e melhor desempenho ao longo do tempo. Se você oferece seu app em dispositivos que não incluem o Google Play Services ou precisa gerenciar de perto o ambiente de execução de ML, use o runtime LiteRT padrão. Essa opção agrupa código adicional no app, permitindo mais controle sobre o tempo de execução de ML no app, mas aumenta o tamanho do download.

Para acessar esses ambientes de execução no seu app Android, adicione bibliotecas de desenvolvimento do LiteRT ao ambiente de desenvolvimento do app. Para informações sobre como usar os ambientes de execução padrão no seu app, consulte a próxima seção.

Bibliotecas

É possível acessar a API Interpreter usando os Serviços do Google Play. Você pode usar as bibliotecas core e support do LiteRT no seu app Android. Para detalhes de programação sobre o uso de bibliotecas e ambientes de execução do LiteRT, consulte Ferramentas de desenvolvimento para Android.

Receber modelos

Para executar um modelo em um app Android, é necessário um modelo no formato LiteRT. Você pode usar modelos pré-criados ou criar um e convertê-lo para o formato Lite. Para mais informações sobre como conseguir modelos para seu app Android, consulte a página Modelos do LiteRT.

Processar dados de entrada

Todos os dados transmitidos para um modelo de ML precisam ser um tensor com uma estrutura de dados específica, geralmente chamada de formato do tensor. Para processar dados com um modelo, o código do app precisa transformar os dados do formato nativo, como imagem, texto ou áudio, em um tensor no formato exigido pelo modelo.

Executar inferências

O processamento de dados em um modelo para gerar um resultado de previsão é conhecido como execução de uma inferência. Para executar uma inferência em um app Android, é necessário um ambiente de execução do LiteRT, um modelo e dados de entrada.

A velocidade com que um modelo pode gerar uma inferência em um determinado dispositivo depende do tamanho dos dados processados, da complexidade do modelo e dos recursos de computação disponíveis, como memória e CPU, ou processadores especializados chamados de aceleradores. Os modelos de machine learning podem ser executados mais rapidamente nesses processadores especializados, como unidades de processamento gráfico (GPUs) e unidades de processamento de tensor (TPUs), usando drivers de hardware LiteRT chamados de delegados. Para mais informações sobre delegados e aceleração de hardware do processamento de modelos, consulte a Visão geral da aceleração de hardware.

Processar resultados de saída

Os modelos geram resultados de previsão como tensores, que precisam ser processados pelo seu app Android tomando uma ação ou mostrando um resultado ao usuário. Os resultados da saída do modelo podem ser tão simples quanto um número correspondente a um único resultado (0 = cachorro, 1 = gato, 2 = pássaro) para uma classificação de imagem ou muito mais complexos, como várias caixas delimitadoras para vários objetos classificados em uma imagem, com classificações de confiança de previsão entre 0 e 1.

Caminhos de desenvolvimento avançados

Ao usar modelos LiteRT mais sofisticados e personalizados, talvez seja necessário usar abordagens de desenvolvimento mais avançadas do que as descritas acima. As seções a seguir descrevem técnicas avançadas para executar e desenvolver modelos para o LiteRT em apps Android.

Ambientes de execução avançados

Além dos ambientes de execução padrão e dos Serviços do Google Play para o LiteRT, há outros ambientes de execução que podem ser usados com seu app Android. O uso mais provável desses ambientes é quando você tem um modelo de aprendizado de máquina que usa operações de ML não compatíveis com o ambiente de execução padrão do LiteRT.

O ambiente de execução flexível do LiteRT permite incluir operadores específicos necessários para seu modelo. Como uma opção avançada para executar seu modelo, você pode criar o LiteRT para Android e incluir operadores e outras funcionalidades necessárias para executar seu modelo de machine learning do TensorFlow. Para mais informações, consulte Criar o LiteRT para Android.

APIs C e C++

O LiteRT também oferece uma API para executar modelos usando C e C++. Se o app usa o Android NDK, considere usar essa API. Considere usar essa API se quiser compartilhar código entre várias plataformas. Para mais informações sobre essa opção de desenvolvimento, consulte a página Ferramentas de desenvolvimento.

Execução de modelo baseada em servidor

Em geral, é recomendável executar modelos no seu app em um dispositivo Android para aproveitar a latência menor e a privacidade de dados aprimorada para os usuários. No entanto, há casos em que executar um modelo em um servidor na nuvem, fora do dispositivo, é uma solução melhor. Por exemplo, se você tiver um modelo grande que não pode ser facilmente compactado para um tamanho adequado aos dispositivos Android dos usuários ou que pode ser executado com desempenho razoável nesses dispositivos. Essa abordagem também pode ser sua solução preferida se o desempenho consistente do modelo em uma ampla variedade de dispositivos for a prioridade máxima.

O Google Cloud oferece um conjunto completo de serviços para executar modelos de IA. Para mais informações, consulte a página de produtos de IA e machine learning do Google Cloud.

Desenvolvimento e otimização de modelos personalizados

Caminhos de desenvolvimento mais avançados provavelmente incluem o desenvolvimento de modelos personalizados de machine learning e a otimização deles para uso em dispositivos Android. Se você planeja criar modelos personalizados, considere aplicar técnicas de quantização aos modelos para reduzir os custos de memória e processamento. Para mais informações sobre como criar modelos de alta performance para uso com o LiteRT, consulte Práticas recomendadas de desempenho na seção "Modelos".

Versões compatíveis do Android

Versão do LiteRT Status Nível mínimo do SDK Nível mínimo do NDK (se usado) Data do lançamento
v1.2.0 ✅ Ativo 21 (Android 5 Lollipop) r26a 2025-03-13

Importante:mantenha suas dependências atualizadas para garantir a compatibilidade com os recursos e as atualizações de segurança mais recentes.