O que é TensorFlow Lite e como ele é uma estrutura de aprendizado profundo?

Você pode ter encontrado o TensorFlow Lite enquanto examinava as placas de desenvolvimento do Edge AI ou projetos de aceleração de AI.

TensorFlow Lite é uma estrutura de pacotes de software que permite o treinamento de ML localmente no hardware. Esse processamento e computação no dispositivo permitem que os desenvolvedores executem seus modelos no hardware de destino. O hardware inclui placas de desenvolvimento, módulos de hardware, dispositivos incorporados e IoT.

Visão geral da estrutura do TensorFlow Lite

TensorFlow é um termo popular em aprendizado profundo, já que muitos desenvolvedores de ML usam essa estrutura para vários casos de uso. Ele fornece a facilidade de implementação de modelos de aprendizado de máquina e inferências para aplicativos de IA.

Mas o TensorFlow Lite é uma estrutura de aprendizado profundo para inferência local, especificamente para hardware computacional baixo. Ele permite o aprendizado de máquina no dispositivo, auxiliando os desenvolvedores na execução de seus modelos em hardware compatível e dispositivos IoT.

Um desenvolvedor precisa selecionar um modelo adequado, dependendo do caso de uso. A estrutura também oferece a opção de retreinar o modelo existente em um conjunto de dados personalizado. Como o modelo de buffer de protocolo do TensorFlow vem com um tamanho grande e requer poder computacional avançado, ele permite a conversão do modelo TensorFlow para o modelo TensorFlow Lite.

A customização dos parâmetros de otimização e quantização permite a redução do tamanho e latência do modelo.

Além dos benefícios de latência e tamanho do TensorFlow Lite, a estrutura fornece a segurança dos dados conforme o treinamento ocorre localmente no dispositivo. Além disso, não há necessidade de conectividade com a Internet. Assim, a implantação de aplicativos não se restringe a áreas específicas com conectividade.

Em última análise, esses fatores reduzem a carga de consumo de energia no dispositivo, eliminando o fator de conectividade e aumentando a eficiência da inferência de aprendizado profundo.

Os modelos da estrutura TensorFlow Lite existem em um formato de plataforma cruzada conhecido como FlatBuffers. É uma biblioteca de serialização que armazena dados hierárquicos em um buffer binário simples para que o acesso direto seja possível sem descompactar. Você também pode observar a extensão ".tflite" para os modelos do TensorFlow Lite. Esta técnica de representação permite otimizações em cálculos e reduz os requisitos de memória. Portanto, tornando-o muito melhor do que os modelos do TensorFlow

TinyML no TensorFlow Lite Micro

Como o TensorFlow Lite é compatível com várias plataformas para aplicativos Edge AI, a necessidade de convergir ainda mais a biblioteca foi necessária. Portanto, a organização criou uma biblioteca de subconjuntos do TensorFlow Lite, conhecido como TensorFlow Lite Micro. O TensorFlow Lite Micro executa especificamente modelos de aprendizado de máquina em microcontroladores localmente com requisitos mínimos de memória de cerca de alguns kilobytes.

O tempo de execução principal do procedimento integra-se com 16 KB em um Arm Cortex M3 e pode funcionar em vários modelos. A estrutura não requer suporte de SO adicional ou outras bibliotecas de linguagem de alto nível como dependências para executar a inferência no dispositivo.

O desenvolvimento do TensorFlow Lite Micro origina-se do C ++ 11, que precisa de arquitetura de 32 bits para compatibilidade. Falando mais sobre as arquiteturas, a biblioteca funciona bem em uma gama robusta de processadores baseados na arquitetura Arm Cortex-M Series para outras arquiteturas de design como ESP32 .

Fluxo de trabalho para casos de uso do TensorFlow Lite Micro

O processo de treinamento da rede neural requer alto hardware computacional. Portanto, ele é treinado no modelo geral do TensorFlow . No entanto, o treinamento só é necessário se um conjunto de dados personalizado se ajustar a um modelo de aprendizado profundo, enquanto modelos pré-treinados na estrutura também podem ser usados ​​para os aplicativos.

Supondo um caso de uso personalizado com o conjunto de dados específico do aplicativo, o usuário treina o modelo na estrutura geral do TensorFlow com alta capacidade de processamento e arquitetura. Uma vez que o treinamento termina, a avaliação do modelo usando técnicas de teste verifica a precisão e confiabilidade do modelo. Além disso, o processo é seguido pela conversão do modelo TensorFlow em um modelo TensorFlow Lite compatível com hardware no formato .tflite.

O formato .tflite é um arquivo de buffer plano comum à estrutura do TensorFlow Lite e hardware compatível. O modelo pode ainda ser usado para treinamento de inferência nos dados em tempo real recebidos no modelo. O treinamento de inferência otimizou os modelos para casos de uso robustos. Portanto, a opção de treinamento de inferência é crucial para aplicações de IA de ponta .

A maior parte do firmware do microcontrolador não oferece suporte ao sistema de arquivos nativo para incorporar diretamente o formato de buffer plano do modelo TensorFlow Lite. Portanto, a conversão do arquivo .tflite é necessária para um formato de estrutura de array, que seja compatível com os microcontroladores.

Incluir o programa no array C seguido pela compilação normal é uma técnica fácil para essa conversão. O formato resultante atua como um arquivo de origem e consiste em uma matriz de caracteres compatível com os microcontroladores.

Dispositivos compatíveis com TensorFlow Lite Micro

TensorFlow Lite é adequado para dispositivos poderosos, mas vem com a desvantagem de uma carga de trabalho maior no processador. Embora o TensorFlow Lite Micro tenha arquivos de tamanho pequeno sujeitos a ajustes insuficientes, otimizar o tamanho do arquivo que cabe na memória pode melhorar significativamente a saída para hardware de baixo consumo de energia e baixo processamento, como microcontroladores.

Aqui está a lista de placas de desenvolvimento da documentação oficial do TensorFlow que é compatível com o TensorFlow Lite Micro:

  • Sentido Arduino Nano 33 BLE
  • SparkFun Edge
  • STM32F746 kit Discovery
  • Adafruit EdgeBadge
  • Adafruit TensorFlow Lite para kit de microcontroladores
  • Circuito Adafruit Playground Bluefruit
  • Espressif ESP32-DevKitC
  • Espressif ESP-EYE
  • Terminal Wio: ATSAMD51
  • Himax WE-I Plus EVB Endpoint AI Development Board

O TensorFlow Lite Micro também está disponível como uma biblioteca Arduino para suporte expandido para microcontroladores. Ele também pode construir projetos para ambientes de desenvolvimento de hardware semelhantes ao Mbed.

TensorFlow Lite oferece muito

A estrutura de aprendizado profundo do TensorFlow Lite abre possibilidades para vários aplicativos de IA de ponta. Como a estrutura é de código aberto para entusiastas de IA, o suporte da comunidade a torna ainda mais popular para casos de uso de aprendizado de máquina. A plataforma geral do TensorFlow Lite aprimora o ambiente para o crescimento de aplicativos de ponta para dispositivos incorporados e IoT

Além disso, existem vários exemplos para iniciantes para ajudá-los com os casos de uso práticos no framework. Alguns desses exemplos incluem a detecção de pessoas dependendo dos dados coletados pelo sensor de imagem da placa de desenvolvimento e o programa hello world padrão para todas as placas de desenvolvimento. Os exemplos também incluem aplicativos como detecção de gestos e reconhecimento de voz para placas de desenvolvimento específicas.

Para mais informações sobre o TensorFlow Lite e TensorFlow Lite Micro , você pode visitar a página de documentação oficial da organização. Há muitas seções conceituais e também tutoriais para uma melhor compreensão do framework.