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:
- Fundamentos de TinyML (o que construir, por que construir e quais problemas existem)
- Aplicações de TinyML (baseadas em dados, vieses etc.)
- 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
Comentários do Hacker News
Desenvolvimento de compilador TinyML em Rust
predict()que executa inferência para o modelo fornecido.O apelo da área de TinyML
Vírus voltados para infraestrutura usando LLM
Explicação da Edge Impulse sobre TinyML / Edge ML
Exemplo de uso do ESP32 e Tensor Flow Lite com Edge Impulse no Hacker Box
O presente e o futuro do TinyML
Opiniões diversas sobre TinyML