3 pontos por GN⁺ 2024-01-17 | 1 comentários | Compartilhar no WhatsApp

O que é TinyML

  • TinyML significa o uso de machine learning em microcontroladores.
  • Diferentemente dos sistemas usados no ML tradicional, ele é utilizado em sistemas com pouquíssima CPU e RAM, e com consumo de energia na faixa de miliwatts ou microwatts.
  • Envolve o trabalho de reduzir modelos grandes para que possam ser usados em equipamentos com recursos muito limitados e em microcontroladores.
  • O site oficial da TinyML Foundation é https://www.tinyml.org/
  • Há uma série de 3 cursos gratuitos oferecidos por Harvard:
    1. Fundamentos de TinyML (o que construir, por que construir e quais problemas existem)
    2. Aplicações de TinyML (baseadas em dados, vieses etc.)
    3. Implantação de TinyML (onde colocar o modelo, segurança e privacidade)

Princípios básicos de TinyML

  • Sistemas embarcados que usam microcontroladores têm no máximo 256 kB de memória, então não conseguem executar modelos grandes.
  • Alguns exemplos de sistemas operacionais que podem ser usados com microcontroladores:
    • FreeRTOS
    • Mbed OS
  • Machine learning é composto por algoritmos que encontram padrões nos dados.
  • Em TinyML, esses algoritmos são comprimidos para que possam encontrar padrões nos dados de forma eficiente.
  • Os dados gerados por dia no IoT chegam a 5 quintilhões de bytes, e menos de 1% disso é analisado.

Técnicas de compressão de algoritmos

  • Poda (Pruning)

    • Poda de sinapses: remove conexões da rede no modelo. Em alguns casos, a precisão pode diminuir.
    • Poda de neurônios: remove neurônios inteiros do modelo para reduzir a demanda computacional da rede.
  • Quantização (Quantization)

    • Discretiza valores dentro de um intervalo pequeno. Por exemplo, ao discretizar números de ponto flutuante no intervalo de -128 a 127, basta trabalhar com 256 valores.
    • Se um valor de ponto flutuante armazenado em 4 bytes for trocado por um valor inteiro armazenado em 1 byte, o tamanho é reduzido em 4 vezes.
    • Devido aos recursos limitados, a quantização é muito importante em TinyML.
  • Destilação de conhecimento (Knowledge distillation)

    • Usa conhecimento e know-how para tornar o modelo menor.

Ferramentas

  • Uso de TensorFlow Lite.
  • Enquanto o TensorFlow é focado em pesquisadores de ML, o TensorFlow Lite é voltado para desenvolvedores de aplicações.

Uso de TinyML

  • Casos de uso de TinyML voltados ao universo DIY, maker e hacker podem ser encontrados neste site.

Uso de TinyML na indústria

  • No setor industrial, ele é usado em manutenção para aumentar a eficiência e reduzir custos ao alertar sobre falhas quando surgem vibrações.
  • Devido a problemas de precisão, podem ocorrer falsos alarmes, e a responsabilidade por eles recai sobre o operador ou sobre o sistema.

TinyML no meio ambiente

  • Em vez de coletar os dados e processá-los depois, com TinyML é possível obter respostas em tempo real a mudanças no ambiente. Por exemplo, dá para identificar mudanças na vida dos animais selvagens em tempo real.

TinyML para as pessoas

  • Ajuda pessoas com deficiência a realizar mais tarefas sem usar as mãos.
  • Melhora a UI e a UX das aplicações, tornando-as mais fáceis de usar.
  • A tecnologia é criada para melhorar a experiência humana. A tecnologia deve ajudar as pessoas.

Riscos e desvantagens

  • Isso funcionará bem para todos os grupos populacionais?
  • A privacidade dos dados está garantida?
  • É possível proteger esses dados?
  • É preciso criar tecnologia com base em IA centrada no ser humano. Isso deve ser considerado no processo de design, desenvolvimento e implantação.

Opinião do GN⁺

  • TinyML é uma tecnologia inovadora que viabiliza machine learning mesmo em ambientes com recursos limitados, podendo melhorar bastante a eficiência e a inteligência de dispositivos IoT.
  • Técnicas de compressão de algoritmos, como poda, quantização e destilação de conhecimento, são elementos centrais para miniaturizar modelos de machine learning e permitir sua execução em dispositivos de baixo consumo.
  • A aplicação de TinyML pode contribuir para melhorar a vida humana em várias áreas, como manutenção industrial, monitoramento ambiental e apoio a pessoas com deficiência, sendo um bom exemplo do impacto positivo que a tecnologia pode ter na sociedade.

1 comentários

 
GN⁺ 2024-01-17
Comentários do Hacker News
  • Desenvolvimento de compilador TinyML em Rust

    • Foi desenvolvido um compilador TinyML baseado em Rust como projeto de dissertação de mestrado.
    • Usando macros procedurais de Rust, o modelo é avaliado em tempo de compilação, gerando uma função predict() que executa inferência para o modelo fornecido.
    • Alcançou um tamanho de binário muito menor do que TensorFlow Lite for Microcontrollers e outros motores.
    • Conseguiu executar um reconhecedor de comandos de voz (TinyConv) em um ATmega328 de 8 bits (Arduino Uno).
  • O apelo da área de TinyML

    • TinyML é uma área incrível, capaz de fazer muita coisa mesmo em hardware muito pequeno.
    • Por exemplo, é possível construir um sistema de visão computacional em tempo real usando um esp32-s3 (custando cerca de 2 dólares).
    • É fácil entrar na área de TinyML por meio de soluções como AutoML.
    • Empresas de hardware estão começando a oferecer MCUs com NPU para minimizar o consumo de energia.
    • É bem provável que TinyML receba ainda mais atenção no futuro.
  • Vírus voltados para infraestrutura usando LLM

    • Imagina-se um vírus voltado para infraestrutura usando LLM (Large Language Models).
    • Pequenos dispositivos poderiam ser escondidos na rede elétrica para coletar tráfego de rede e tentar destruir sistemas.
    • Como esses dispositivos podem ficar ocultos em equipamentos de rede e não precisam de tráfego externo, seriam difíceis de detectar.
  • Explicação da Edge Impulse sobre TinyML / Edge ML

    • A Edge Impulse criou uma plataforma para construir modelos de ML e implantá-los em dispositivos de borda.
    • O usuário pode criar uma conta, construir um modelo de keyword spotting e executá-lo diretamente em WASM.
    • O surgimento de aceleradores embarcados, como ASICs/NPUs, está impulsionando a adoção de Edge ML.
  • Exemplo de uso do ESP32 e Tensor Flow Lite com Edge Impulse no Hacker Box

    • Recentemente, o Hacker Box forneceu um exemplo detalhado usando ESP32, Tensor Flow Lite e Edge Impulse.
  • O presente e o futuro do TinyML

    • TinyML significa executar machine learning em dispositivos embarcados de baixo consumo.
    • Todo celular tem um chip DSP de baixo consumo para detectar palavras-chave como "Hey Google" ou "Hey Siri".
    • TinyML é um subconjunto de Edge AI, abrangendo todo tipo de dispositivo localizado na borda da rede.
    • Essa área é extremamente interessante, resolve diversos problemas e é uma tecnologia aplicável a praticamente qualquer espaço.
  • Opiniões diversas sobre TinyML

    • Há quem diga que, na área de TinyML, criar soluções sob restrições terá um impacto importante.
    • Assim como IoT, TinyML é visto como uma tecnologia importante para o futuro, mas na prática seu avanço tem sido lento.
    • Para quem procura mais conteúdo sobre TinyML, foram disponibilizados vídeos da conferência Asia 2023.