Criar apps mais inteligentes com o aprendizado de máquina

O aprendizado de máquina (ML, na sigla em inglês) é uma técnica de programação que oferece aos seus apps a capacidade de aprender e melhorar por experiência, sem estarem explicitamente programados para isso. Isso é especialmente útil para apps que usam dados não estruturados, como imagens e texto, ou problemas com grande número de parâmetros, como a previsão de um time vencedor.

O Android é compatível com uma ampla variedade de ferramentas e métodos de aprendizado de máquina. Seja você um desenvolvedor Android experiente ou iniciante, aqui estão alguns recursos de ML que ajudarão a atingir os melhores resultados.

Principais áreas de desenvolvimento de ML

Ao desenvolver apps para Android com ML, suas tarefas principais são projetar produtos, implementar algoritmos de inferência e implantar modelos de ML existentes. Dependendo das circunstâncias, você também pode treinar novamente outros modelos existentes ou criar e treinar novos modelos.

Design para aprendizado de máquina

Assim como outras tecnologias, a aplicação do aprendizado de máquina como uma solução exige que os gerentes de produto, designers e desenvolvedores trabalhem juntos para definir metas de produto, design, versão e iteração. O Google produziu dois guias nessa área:

  • O People + AI Guidebook (em inglês) mostra as práticas recomendadas para que sua equipe tome decisões sobre produtos de IA centrados no ser humano.
  • A especificação The Material Design for Machine Learning (em inglês) contém uma coleção de diretrizes e padrões de design para recursos de aprendizado de máquina, como detecção de objetos e leitura de código de barras.

Criar e treinar um modelo

O aprendizado de máquina requer um modelo treinado para executar uma tarefa específica, como fazer uma previsão, classificar ou reconhecer alguma entrada. Você pode selecionar (e possivelmente personalizar) um modelo existente ou criar a partir do zero. A criação e o treinamento de modelos podem ser feitos em uma máquina de desenvolvimento ou por meio da infraestrutura em nuvem.

Explorar modelos pré-treinados

Modelos pré-treinados estão disponíveis no ML Kit e no Google Cloud. Leia mais sobre eles na próxima seção.

Como criar os próprios modelos com o TensorFlow

Para uma experiência prática de desenvolvimento mais profunda, use estes recursos do TensorFlow:

Inferência

Inferência é o processo de usar um modelo de aprendizado de máquina que já foi treinado para executar uma tarefa específica.

Uma decisão importante que você enfrentará como desenvolvedor do Android é se a inferência será executada no dispositivo ou se usará um serviço em nuvem acessado remotamente. Veja alguns dos pontos que você precisa considerar ao tomar essa decisão:

PontoInferência no dispositivoInferência baseada em nuvem
Latência Uma latência menor melhora a experiência em tempo real Comunicação assíncrona e largura de banda disponível podem afetar a latência
Recursos Os recursos específicos do dispositivo, como capacidade de processamento e armazenamento, podem limitar o desempenho Recursos baseados em nuvem são mais potentes, e o armazenamento é mais amplo
Off-line/On-line A capacidade de operar off-line é uma vantagem para a execução com infraestrutura de rede deficiente ou inexistente É necessário ter uma conexão de rede
Custo Uso da bateria, tempo de download do modelo para usuários finais Largura de banda da transferência de dados para usuários finais, custos de computação para desenvolvedores
Privacidade Os dados do usuário nunca saem do dispositivo Os dados podem deixar o dispositivo. Outras precauções podem ser necessárias

A tabela a seguir mostra as opções de desenvolvimento disponíveis para cada tipo de inferência:

Inferência no dispositivoInferência baseada em nuvem

Kit de ML

TensorFlow Lite

O TensorFlow Lite pode ser usado para disponibilizar um modelo treinado como uma solução no dispositivo:

AutoML

Use o AutoML para treinar seu próprio modelo de visão personalizado no Google Cloud e execute o modelo resultante no Android e em outros dispositivos:

Kit de ML

APIs do Google Cloud

Implantação

Implantação é o processo de empacotamento e atualização do seu modelo de ML para uso no Android ao realizar inferências no dispositivo. Há três opções disponíveis:

Incluir o modelo com o app Android
Seu modelo é implantado com o app como qualquer outro recurso. As atualizações do modelo exigem a atualização do app. Há duas maneiras de adicionar um modelo ao aplicativo:
Colocar o modelo no ambiente de execução
Isso permite que você atualize o modelo independentemente do app. Isso também facilita o teste A/B. É possível exibir o modelo personalizado usando a função modelos personalizados do Kit de ML ou hospedar o download do modelo com a própria infraestrutura.
Uma combinação das opções anteriores
É comum que os desenvolvedores empacotem uma versão inicial do modelo com o app Android para que o usuário não precise aguardar o download do modelo enquanto o atualiza para uma nova versão.

Para modelos pré-treinados específicos do Kit de ML, isto é, reconhecimento de texto e leitura de código de barras, os desenvolvedores podem usar o modelo compartilhado oferecido pelo Google Play Services, o que resulta em APKs menores.

Histórias de desenvolvedores

Transformar o impossível em realidade

A inclusão de ML no seu app Android é uma nova maneira de criar aplicativos que antes apresentavam várias dificuldade para o funcionamento (como leitura confiável de código de barras) ou que não eram sequer possíveis, por exemplo, detecção de imagem e sentimento de texto.

Recurso

O Lose It! é um app de controle de calorias para perda de peso. Nele, você registra todos os alimentos ingeridos para saber quantas calorias consumiu e ajudar no emagrecimento. O Lose It! usa a API de reconhecimento de texto do ML Kit para ler rótulos nutricionais e receber os dados quando os usuários inserirem um novo alimento que não está na biblioteca.

Recurso

O PlantVillage ajuda os agricultores a detectar doenças em plantações de mandioca. A Universidade Estadual da Pensilvânia e o Instituto Internacional de Agricultura Tropical usam modelos personalizados do TensorFlow em execução off-line em dispositivos móveis para ajudar os agricultores a detectar sinais precoces de doença nas plantas.

Recurso

O app Fishbrain oferece mapas locais de pesca e previsões do tempo, além de conectar milhões de pescadores. O Fishbrain usa o modelo personalizado do ML Kit para disponibilizar modelos atualizados do TensorFlow Lite.