LiteRT para Android

A LiteRT permite executar modelos de machine learning (ML) do TensorFlow nos seus Apps Android. O sistema LiteRT oferece recursos pré-criados e personalizáveis ambientes de execução para executar modelos no Android de forma rápida e eficiente, incluindo opções de aceleração de hardware.

Modelos de machine learning

A LiteRT usa modelos do TensorFlow que são convertidos em um tamanho menor em um formato de modelo de machine learning portátil e mais eficiente. É possível usar modelos de ML com o LiteRT no Android ou crie seus próprios modelos do TensorFlow e convertê-los para o formato LiteRT.

Nesta página, discutimos o uso de modelos de machine learning já criados e não mostramos abordam a criação, o treinamento, o teste ou a conversão de modelos. Saiba mais sobre a escolha, a modificação, a criação e a conversão de modelos de machine learning para LiteRT na página Modelos.

Executar modelos no Android

Um modelo LiteRT executado em um app Android recebe dados e processa os dados e gera uma previsão com base na lógica do modelo. Um modelo do TensorFlow O modelo Lite requer um ambiente de tempo de execução especial para ser executado, e o dados que são passados para o modelo devem estar em um formato de dados específico, chamado de tensor. Quando um modelo processa conhecido como executar uma inferência, ele gera resultados de previsão como novos e os passa para o 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 no Android
apps

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

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

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

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

Criar apps com o LiteRT

Esta seção descreve o caminho recomendado e mais comum para implementar LiteRT no seu app Android. Você deve prestar mais atenção ao nas seções Ambiente de execução e Bibliotecas de desenvolvimento. Se você desenvolveu um modelo personalizado, não deixe de consultar a seção Avançado de de caminhos.

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 pelo Google Play serviços por ser mais eficiente em termos de espaço do que o ambiente padrão, já que ele carrega dinamicamente, diminuindo o tamanho do app. O Google Play Services também usa automaticamente a versão mais recente e estável do LiteRT de execução, oferecendo mais recursos e desempenho aprimorado ao longo do tempo. Se você oferece seu app em dispositivos que não incluem o Google Play Services ou precisar gerenciar de perto seu ambiente de execução de ML, use o ambiente de execução padrão do LiteRT. Essa opção agrupa códigos adicionais em seu o que permite que você tenha mais controle sobre o ambiente de execução do ML no seu aplicativo o custo de aumentar o tamanho de download do seu app.

Para acessar esses ambientes de execução no seu app Android, adicione o TensorFlow Bibliotecas de desenvolvimento Lite para seu ambiente de desenvolvimento de aplicativos. Para informações sobre como usar os ambientes de execução padrão no seu aplicativo, consulte os próximos nesta seção.

Bibliotecas

Você pode acessar a API Interpreter usando o Google Play e serviços. Você pode usar o LiteRT núcleo e em seu app Android. Para detalhes de programação sobre como usar as bibliotecas LiteRT e o ambiente de execução ambientes, consulte Ferramentas de desenvolvimento para Android.

Receber modelos

Executar um modelo em um app Android requer um modelo no formato LiteRT. Você pode usar modelos pré-criados ou criar um com o TensorFlow e convertê-lo para o . Para mais informações sobre como obter modelos para seu aplicativo Android, consulte a Página Modelos da LiteRT.

Gerenciar dados de entrada

Todos os dados que você passa para um modelo de ML devem ser um tensor com um dado específico geralmente chamada de forma do tensor. Para processar dados com um modelo, o código do app precisa transformar dados do formato nativo, como imagem, texto ou dados de áudio, em um tensor com a forma necessária para seu modelo.

Executar inferências

O processamento de dados por meio de um modelo para gerar um resultado de previsão é conhecido como executar uma inferência. A execução de uma inferência em um app Android requer uma Ambiente de execução do LiteRT, um modelo e uma entrada dados.

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

Gerenciar resultados de saída

Os modelos geram resultados de previsão como tensores, que precisam ser tratados pela App Android realizando uma ação ou exibindo um resultado ao usuário. Saída do modelo resultados podem ser tão simples quanto um número correspondente a um único resultado (0 = cão, 1 = gato, 2 = pássaro) para uma classificação de imagem, até resultados muito mais complexos, como várias caixas delimitadoras para vários objetos classificados em uma imagem, com 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, você pode precisar usar abordagens de desenvolvimento mais avançadas do que a descrita acima. As seções a seguir descrevem técnicas avançadas para executar modelos e desenvolvendo para o LiteRT em apps Android.

Ambientes de execução avançados

Além do tempo de execução padrão e do ambiente de execução do Google Play Services para LiteRT, há outros ambientes de execução que você pode usar com seu app Android. O uso mais provável desses ambientes é Você tem um modelo de machine learning que usa operações de ML sem suporte pelo ambiente de execução padrão para o LiteRT.

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

APIs C e C++

A LiteRT também fornece uma API para executar modelos usando C e C++. Se as app usa o Android NDK, recomendamos considere usar essa API. Você também pode considerar o uso dessa API se querem compartilhar código entre várias plataformas. Para mais informações sobre essa opção de desenvolvimento, consulte a página de documentação Google Workspace.

Execução de modelos baseados em servidor

Em geral, você deve executar modelos no app em um dispositivo Android para ter menor latência e maior privacidade de dados para os usuários. No entanto, em alguns casos, executar um modelo em um servidor de nuvem, fora do dispositivo, solução. Por exemplo, se você tiver um modelo grande que não compacta facilmente até um tamanho que se encaixe dispositivos Android ou pode ser executado com desempenho razoável nesses dispositivos. Essa abordagem também pode ser sua a solução preferida se o desempenho do modelo for consistente em uma ampla gama de é a maior prioridade.

O Google Cloud oferece um pacote completo de serviços para executar máquinas do TensorFlow modelos de machine learning. Para mais informações, consulte IA e máquinas produtos de aprendizado de máquina.

Desenvolvimento e otimização de modelos personalizados

É provável que os caminhos de desenvolvimento mais avançados incluam o desenvolvimento de modelos de modelos de aprendizado de máquina e otimizá-los para uso em dispositivos Android. Se você planejar a criação de modelos personalizados, não deixe de aplicar a quantização técnicas a modelos para reduzir de memória e processamento. Para mais informações sobre como criar modelos de alto desempenho para uso com o LiteRT, consulte Melhor desempenho práticas na seção "Modelos".