Nova técnica permite treinamento no dispositivo usando menos de um quarto de megabyte de memória
Os pesquisadores testaram sua estrutura treinando um modelo de visão computacional para detectar pessoas em imagens. Após apenas 10 minutos de treinamento, ele aprendeu a completar a tarefa com sucesso. Crédito:Ji Lin et al
Microcontroladores, computadores em miniatura que podem executar comandos simples, são a base para bilhões de dispositivos conectados, de dispositivos de internet das coisas (IoT) a sensores em automóveis. Mas microcontroladores baratos e de baixa potência têm memória extremamente limitada e nenhum sistema operacional, tornando difícil treinar modelos de inteligência artificial em "dispositivos de ponta" que funcionam independentemente dos recursos de computação central.
Treinar um modelo de aprendizado de máquina em um dispositivo de borda inteligente permite que ele se adapte a novos dados e faça melhores previsões. Por exemplo, treinar um modelo em um teclado inteligente pode permitir que o teclado aprenda continuamente com a escrita do usuário. No entanto, o processo de treinamento requer tanta memória que normalmente é feito usando computadores poderosos em um data center, antes que o modelo seja implantado em um dispositivo. Isso é mais caro e levanta problemas de privacidade, pois os dados do usuário devem ser enviados para um servidor central.
Para resolver esse problema, pesquisadores do MIT e do MIT-IBM Watson AI Lab desenvolveram uma nova técnica que permite o treinamento no dispositivo usando menos de um quarto de megabyte de memória. Outras soluções de treinamento projetadas para dispositivos conectados podem usar mais de 500 megabytes de memória, excedendo em muito a capacidade de 256 kilobytes da maioria dos microcontroladores (há 1.024 kilobytes em um megabyte).
Os algoritmos inteligentes e a estrutura que os pesquisadores desenvolveram reduzem a quantidade de computação necessária para treinar um modelo, o que torna o processo mais rápido e mais eficiente em termos de memória. Sua técnica pode ser usada para treinar um modelo de aprendizado de máquina em um microcontrolador em questão de minutos.
Essa técnica também preserva a privacidade mantendo os dados no dispositivo, o que pode ser especialmente benéfico quando os dados são confidenciais, como em aplicativos médicos. Também pode permitir a personalização de um modelo com base nas necessidades dos usuários. Além disso, o framework preserva ou melhora a precisão do modelo quando comparado a outras abordagens de treinamento.
"Nosso estudo permite que os dispositivos de IoT não apenas realizem inferências, mas também atualizem continuamente os modelos de IA para dados recém-coletados, abrindo caminho para o aprendizado permanente no dispositivo. A baixa utilização de recursos torna o aprendizado profundo mais acessível e pode ter um alcance mais amplo, especialmente para dispositivos de ponta de baixo consumo de energia", diz Song Han, professor associado do Departamento de Engenharia Elétrica e Ciência da Computação (EECS), membro do MIT-IBM Watson AI Lab e autor sênior do artigo que descreve essa inovação.
Juntando-se a Han no artigo estão os autores co-líderes e EECS Ph.D. estudantes Ji Lin e Ligeng Zhu, bem como os pós-doutorandos do MIT Wei-Ming Chen e Wei-Chen Wang, e Chuang Gan, um dos principais membros da equipe de pesquisa do MIT-IBM Watson AI Lab. A pesquisa será apresentada na Conferência sobre Sistemas de Processamento de Informação Neural.
Han e sua equipe já haviam abordado os gargalos de memória e computacionais que existem ao tentar executar modelos de aprendizado de máquina em pequenos dispositivos de borda, como parte de sua iniciativa TinyML.
Treinamento leve Um tipo comum de modelo de aprendizado de máquina é conhecido como rede neural. Vagamente baseados no cérebro humano, esses modelos contêm camadas de nós interconectados, ou neurônios, que processam dados para concluir uma tarefa, como reconhecer pessoas em fotos. O modelo deve ser treinado primeiro, o que envolve mostrar milhões de exemplos para que ele possa aprender a tarefa. À medida que aprende, o modelo aumenta ou diminui a força das conexões entre os neurônios, que são conhecidas como pesos.
O modelo pode sofrer centenas de atualizações à medida que aprende, e as ativações intermediárias devem ser armazenadas durante cada rodada. Em uma rede neural, a ativação é o resultado intermediário da camada intermediária. Como pode haver milhões de pesos e ativações, treinar um modelo requer muito mais memória do que executar um modelo pré-treinado, explica Han.
Han e seus colaboradores empregaram duas soluções algorítmicas para tornar o processo de treinamento mais eficiente e menos intensivo em memória. A primeira, conhecida como atualização esparsa, usa um algoritmo que identifica os pesos mais importantes a serem atualizados a cada rodada de treinamento. O algoritmo começa a congelar os pesos um de cada vez até ver a precisão cair para um limite definido e, em seguida, para. Os pesos restantes são atualizados, enquanto as ativações correspondentes aos pesos congelados não precisam ser armazenadas na memória.
"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. Para nosso método, atualizamos seletivamente esses pesos importantes e garantimos a precisão é totalmente preservada", diz Han.
A segunda solução envolve treinamento quantizado e simplificação dos pesos, que normalmente são de 32 bits. Um algoritmo arredonda os pesos para que sejam apenas oito bits, por meio de um processo conhecido como quantização, que reduz a quantidade de memória para treinamento e inferência. A inferência é o processo de aplicar um modelo a um conjunto de dados e gerar uma previsão. Em seguida, o algoritmo aplica uma técnica chamada quantization-aware scaling (QAS), que atua como um multiplicador para ajustar a relação entre peso e gradiente, para evitar qualquer queda na precisão que possa vir do treinamento quantizado.
Os pesquisadores desenvolveram um sistema, chamado de minúsculo mecanismo de treinamento, que pode executar essas inovações algorítmicas em um microcontrolador simples que não possui um sistema operacional. Esse sistema altera a ordem das etapas no processo de treinamento para que mais trabalho seja concluído no estágio de compilação, antes que o modelo seja implantado no dispositivo de borda.
"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", Han explica.
Uma aceleração bem-sucedida Sua otimização exigia apenas 157 kilobytes de memória para treinar um modelo de aprendizado de máquina em um microcontrolador, enquanto outras técnicas projetadas para treinamento leve ainda precisariam entre 300 e 600 megabytes.
Eles testaram sua estrutura treinando um modelo de visão computacional para detectar pessoas em imagens. Após apenas 10 minutos de treinamento, ele aprendeu a completar a tarefa com sucesso. Seu método foi capaz de treinar um modelo mais de 20 vezes mais rápido do que outras abordagens.
Agora que eles demonstraram o sucesso dessas técnicas para modelos de visão computacional, os pesquisadores querem aplicá-las a modelos de linguagem e diferentes tipos de dados, como dados de séries temporais. Ao mesmo tempo, eles querem usar o que aprenderam para diminuir 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.
+ Explorar mais Aprendizado de máquina colaborativo que preserva a privacidade
Esta história foi republicada como cortesia do MIT News (web.mit.edu/newsoffice/), um site popular que cobre notícias sobre pesquisa, inovação e ensino do MIT.