Na QConSF, Daniel Situnayake apresentou "Machine learning on mobile and edge devices with TensorFlow Lite". O TensorFlow Lite é um framework cross-platform, pronto para ser usado em produção para implantar aprendizado de máquina em dispositivos móveis e sistemas embarcados, e foi o tópico da apresentação. Os pontos principais da apresentação incluem entender e iniciar com o TensorFlow Lite, e aprendizado de máquina em vários dispositivos - especificamente microcontroladores e otimizando o desempenho dos modelos de aprendizado de máquina.
Situnayake, desenvolvedor do TensorFlow Lite no Google, começou sua apresentação explicando o que é o aprendizado de máquina. Em poucas palavras, resumindo da seguinte forma:
Tradicionalmente, um desenvolvedor alimenta regras e dados em uma aplicação e obtém respostas, enquanto no aprendizado de máquina o desenvolvedor ou cientista de dados alimenta as respostas e os dados e a saída são regras que podem ser aplicadas no futuro.
A seguir, forneceu alguns exemplos de programação tradicional, e subsequentemente, uma demo de como o aprendizado de máquina funcionaria com o Google's Teachable Machine. Finalmente, disse que as duas partes principais do aprendizado de máquina são treinamento e inferência:
A inferência é mais útil em dispositivos IoT, uma vez que o treino normalmente requer muito processamento, memória e tempo; três coisas que dispositivos IoT não tem.
Após explorar o aprendizado de máquina, Situnayake entrou no processo de inferência em um aplicativo de aprendizado de máquina e falou sobre o TensorFlow Lite cobrindo esse processo com ferramentas.
De acordo com Situnayake, três coisas são necessárias para o aprendizado de máquina em dispositivos:
- Latência mais baixa;
- Conectividade de rede;
- Preservação da privacidade.
Com isso, um conjunto totalmente novo de produtos e serviços podem ser disponibilizados em dispositivos que variam de, modificação de vídeo em tempo real a pesquisa de definições de palavras sendo escaneadas com um smartphone. Atualmente, Situnayake declarou que mais de 1000 apps estão usando o TensorFlow Lite em mais de três bilhões de dispositivos no mundo.
Além dos dispositivos móveis, o TensorFlow Lite pode ser usado em dispositivos como o Raspberry Pi ( Linux embarcado), aceleradores de hardware, e micro controladores permitindo o aprendizado de máquinas em dispositivos IoT. Além disso, com o aprendizado de máquina em dispositivos IoT, os desenvolvedores não tem que se preocupar com largura de banda, latência, privacidade, segurança, e complexidade. Entretanto existem alguns desafios, tais como o processamento limitado, especialmente em micro controladores, memória limitada e vida da bateria. Ainda segundo Situnayake, o TensorFlow Lite mitiga alguns desses desafios e permite que os desenvolvedores convertam um modelo de aprendizado de máquina para usar no TensorFlow Lite e implantá-lo em qualquer dispositivo .
O Tensor Flow Lite consiste em quatro partes:
- Fornece uma série de modelos out-of-the-box, que os desenvolvedores podem usar ou customizar;
- Permite a conversão de modelos existentes disponíveis online ou criados por uma organização;
- Fornece suporte para várias linguagens e sistemas operacionais para suportar o modelo convertido e permitir a implantação em um dispositivo;
- Oferece ferramentas para permitir a otimização dos modelos para que os mesmos executem mais rapidamente e ocupem menos espaço nos dispositivos .
Segundo Situnayake, começar é fácil; o desenvolvedor cria um modelo do Tensor Flow Lite e implanta e executa em um dispositivo IoT. Mesmo se um desenvolvedor não tiver um modelo, é possível obter modelos no site do TensorFlow Lite, incluindo apps de exemplo. Situnayake demonstrou alguns exemplos como o PoseNet que estima a localização dos corpos e dos membros, e o MobileBERT para resolver problemas de compreensão de texto.
Além disso, Situnayake informou que a nova biblioteca de suporte para o TensorFlow Lite está disponível para simplificar o desenvolvimento fornecendo APIs para pré e pós processamento, e no futuro para a geração automática de código. Situnayake demonstrou alguns exemplos de código com e sem o uso da biblioteca.
Situnayake também falou sobre microcontrollers - pequenos chipsets que não oferecem um sistema operacional, e poder de processamento. O TensorFlow Lite oferece um interpretador eficiente, que é otimizado para executar modelos de aprendizado de máquina em pequenos microcontroladores. Situnayake forneceu alguns casos de usos usando os microcontroladores para detecção de fala, pessoas e de gestos.
Por último, Situnayake falou sobre fazer os modelos terem boa performance nos dispositivos. O TensorFlow oferece ferramentas e técnicas para melhorar a performance em vários dispositivos.
Os desenvolvedores podem aprender mais sobre o TensorFlow Lite através de um curso online no Udacity para o iOS, Android e Raspberry Pi - ou para os interessado em microcontroladores, em breve teremos um livro sobre TinyML.
Por último, informações adicionais sobre a palestra do Daniel Situnayake no QCon San-Francisco podem ser encontradas no website da conferência; os slides estão disponíveis, e o vídeo da palestra será liberado no InfoQ nos próximo meses.