technology

Os boffins do MIT encaixam o treinamento de ML na memória do microcontrolador • Strong The One

.

Pesquisadores afirmam ter desenvolvido técnicas para permitir o treinamento de um modelo de aprendizado de máquina usando menos de um quarto de megabyte de memória, tornando-o adequado para operação em microcontroladores e outros hardwares de borda com recursos limitados.

Os pesquisadores do MIT e do MIT-IBM Watson AI Lab dizem ter encontrado “soluções algorítmicas” que tornam o processo de treinamento mais eficiente e menos intensivo em memória.

As técnicas podem ser usadas para treinar um modelo de aprendizado de máquina em um microcontrolador em questão de minutos, afirma, e eles produziram um artigo sobre o assunto, intitulado “Treinamento no dispositivo com memória de 256 KB” [PDF].

Segundo os autores, o treinamento de um modelo no dispositivo permitirá que ele se adapte em resposta a novos dados coletados pelos sensores do dispositivo. Ao treinar e adaptar localmente na borda, o modelo pode aprender a melhorar continuamente suas previsões durante a vida útil do aplicativo.

No entanto, o problema com a implementação de tal solução é que os dispositivos de borda geralmente são limitados em seu tamanho de memória e poder de processamento. Em uma extremidade da escala, pequenos dispositivos de IoT baseados em microcontroladores podem ter apenas 256 KB de SRAM, afirma o artigo, o que mal é suficiente para o trabalho de inferência de alguns modelos de aprendizado profundo, sem falar no treinamento.

Enquanto isso, sistemas de treinamento de aprendizado profundo, como PyTorch e TensorFlow, geralmente são executados em clusters de servidores com gigabytes de memória à sua disposição e, embora existam estruturas de inferência de aprendizado profundo de borda, alguns deles não têm suporte para a retropropagação para ajustar os modelos.

Em contraste, os algoritmos inteligentes e a estrutura que os pesquisadores desenvolveram são capazes de reduzir a quantidade de computação necessária para treinar um modelo, afirma-se.

Isso não é tarefa fácil, já que treinar um modelo típico de deep learning passa por centenas de atualizações à medida que aprende e, como pode haver milhões de pesos e ativações envolvidas, treinar um modelo requer muito mais memória do que executar um modelo pré-treinado.

(Dito isso, se houver projetos semelhantes por aí fazendo treinamento não trivial em dispositivos microcontroladores, nos informe.)

Uma das soluções do MIT desenvolvidas para tornar o processo de treinamento mais eficiente é a atualização esparsa, que pula o cálculo de gradiente de camadas e subtensores menos importantes usando um algoritmo para identificar apenas os pesos mais importantes a serem atualizados durante cada rodada de treinamento.

O algoritmo funciona congelando os pesos um de cada vez até detectar a queda de precisão para um limite definido. Os pesos restantes são então atualizados, enquanto as ativações correspondentes aos pesos congelados não precisam ser armazenadas.

“Atualizar todo o modelo é muito caro porque há muitas ativações, então as pessoas tendem a atualizar apenas a última camada, mas como você pode imaginar, isso prejudica a precisão”, explicou o professor associado do MIT Song Han, um dos autores do artigo. . “Para nosso método, atualizamos seletivamente esses pesos importantes e garantimos que a precisão seja totalmente preservada”, acrescentou.

A segunda solução é reduzir o tamanho dos pesos usando quantização, normalmente de 32 bits para apenas 8 bits, para reduzir a quantidade de memória necessária para treinamento e inferência. A escala com reconhecimento de quantização (QAS) é então usada para ajustar a razão entre o peso e o gradiente, para evitar qualquer queda na precisão que possa resultar do treinamento com os valores quantizados.

O sistema altera a ordem das etapas no processo de treinamento para que mais trabalho seja concluído na fase de compilação, antes que o modelo seja implantado no dispositivo de borda, de acordo com Han.

“Aplicamos muito da computação, como diferenciação automática e otimização de gráficos, para compilar o tempo. Também pomos agressivamente os operadores redundantes para oferecer suporte a atualizações esparsas. Uma vez em tempo de execução, temos muito menos carga de trabalho para fazer no dispositivo”, ele disse.

A parte final da solução é um sistema de treinamento leve, Tiny Training Engine (TTE), que implementa esses algoritmos em um microcontrolador simples.

De acordo com o artigo, a estrutura é a primeira solução de aprendizado de máquina a permitir o treinamento no dispositivo de redes neurais convolucionais com um orçamento de memória inferior a 256 KB.

Os autores dizem que o sistema de treinamento foi demonstrado operando em um microcontrolador comercialmente disponível, um STM32F746 baseado em um núcleo Arm Cortex-M7 com 320 KB de SRAM e produzido pela STMicroelectronics.

Isso foi usado para treinar um modelo de visão computacional para detectar pessoas em imagens, que foi capaz de concluir com sucesso após apenas 10 minutos de treinamento, afirma a pesquisa.

Com esse sucesso, os pesquisadores agora dizem que querem aplicar o que aprenderam a outros modelos de aprendizado de máquina e tipos de dados, como modelos de linguagem e dados de séries temporais.

Eles acreditam que essas técnicas podem ser usadas para reduzir o tamanho de modelos maiores sem sacrificar a precisão, o que pode ajudar a reduzir a pegada de carbono do treinamento de modelos de aprendizado de máquina em grande escala no futuro. ®

.

Mostrar mais

Artigos relacionados

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Botão Voltar ao topo