Quem nunca teve problemas com a rapidez com que alguns smartphones ficam sem bateria que atire a primeira pedra. Mas será que não há nada que a gente possa fazer do ponto de vista de desenvolvimento de software? Eu acredito que há! E o aprendizado de máquina, ou machine learning, pode ajudar (e muito!) a reduzir o consumo de energia desses aparelhos.
Esse artigo é um resumo da minha pesquisa acadêmica sobre o uso de aprendizado de máquina para reduzir o consumo de energia em smartphones. Essa pesquisa culminou em alguns artigos acadêmicos publicados em revistas da área e na minha tese de doutorado, concluída em 2019 na Universidade Federal de Pernambuco (UFPE).
Entendendo melhor a questão duração da bateria e consumo de energia
O incremento de funcionalidades, necessidade de maior desempenho, mobilidade e um espaço reduzido são características presentes nos dispositivos móveis, em específico os smartphones. Essas características têm contribuído para o alto consumo de energia nestes dispositivos.
Atualmente, a maioria das baterias usadas nestes dispositivos são de Íon-Lítio, onde o tamanho da bateria é proporcional a carga que ela consegue armazenar. Por isso, somente baterias maiores podem armazenar mais energia. Essa premissa vai em desencontro com a evolução dos smartphones, pois têm-se tentado reduzir o tamanho dos dispositivos e aumentar o poder de processamento e armazenamento.
Para amenizar esse problema, uma possível solução é a redução do consumo de energia pelos dispositivos, permitindo que a energia disponível na bateria permita um uso prolongado do smartphone pelas pessoas. Estender o tempo de uso do dispositivo é uma preocupação constante de fabricantes.
Algumas técnicas são usadas para maximizar o tempo de uso da bateria e envolvem colocar o processador e outros componentes em diferentes níveis de consumo de energia, por exemplo, colocar um periférico como o GPS em estado de dormência quando não estiver sendo utilizado. Além disso, também há diversos smartphones que estão usando a arquitetura Big-Little, onde há pelo menos dois processadores, um para baixas cargas de processamento e outro para aumentar o desempenho.
O aprendizado de máquina entra em campo
A utilização da CPU, também chamada de CPU intensiveness, é uma métrica para indicar quanto tempo a CPU está ocupada em um determinado intervalo de tempo, geralmente usada em porcentagem. Essa métrica é usada para avaliar cargas de processamento, por exemplo, um valor próximo de 1 ou 100% indica que o sistema operacional está operando sob atividades CPU-bound, ou seja, que possuem instruções centradas no processador.
Em complemento, uma área pouco conhecida dentro do aprendizado de máquina, mas bastante útil neste cenário de redução do consumo de energia em dispositivos móveis é o aprendizado por reforço. A ideia base do aprendizado por reforço é de interagir continuamente com o ambiente, coletar métricas de desempenho (como a utilização da CPU) e energia e, então, aplicar ações para modificar o ambiente e reduzir o consumo de energia, aumentar o desempenho ou balancear o uso de energia e desempenho.
É importante destacar que desempenho e consumo de energia são inversamente proporcionais, quando aumenta-se o poder de processamento usa-se mais energia e, consequentemente, gasta-se mais energia.
Um algoritmo bastante conhecido dentro da área de aprendizado por reforço é o Q-learning. Neste algoritmo, o principal objetivo é selecionar uma ação a partir do histórico do ambiente e das ações. Este conhecimento dos estados, das ações e do impacto das ações no ambiente são armazenados na Q-table.
A Q-table armazena dados numéricos que, após algum treinamento, indicam a melhor ação a ser tomada no estado atual do ambiente.
Aprofundando no problema
No problema apresentado anteriormente, o ambiente é o smartphone e seus componentes, enquanto o objetivo é reduzir o consumo de energia a partir das ações, por exemplo, alterar a frequência de operação do processador.
O objetivo é aprender e selecionar ações que maximizem recompensas a longo e/ou curto prazo. Inicialmente, o algoritmo não sabe como se comportar e precisa explorar o ambiente e as ações disponíveis, como um robozinho que quer descobrir o ambiente onde está inserido.
Após algumas iterações de exploração aplicando ações aleatórias no ambiente e computando o custo daquela ação e a recompensa alcançada, o algoritmo irá convergir e começará a fase de exploitação. Nesta nova fase, ele irá selecionar a melhor ação a partir do ambiente atual, usando o conhecimento da Q-table, que reflete o que foi aprendido sobre o comportamento do sistema.
Por outro lado, os smartphones comerciais contam com algoritmos específicos para tratar do escalonamento (mudança) de frequência de CPU, mais especificamente, no sistema operacional Android, esses algoritmos são chamados de governors. Os mais usados são: On-demand (OD), Interactive (IT) e Performance (PE). O OD e PE também são muito usados em dispositivos desktop e servidores com sistema operacional Linux, por sua simplicidade e resposta rápida a mudanças de cargas de processamento.
A ideia do OD é aumentar a frequência de operação dos processadores de forma gradual quando há uma nova carga de processamento, maior que a anterior. Após a carga ser dissipada, a frequência do processador é reduzida de forma gradual de acordo com a utilização da CPU.
Já no PE, a frequência máxima do processador é usada sempre, com ou sem cargas de processamento (isso implica em alto consumo de energia e baixa latência).
Resultados da pesquisa
Agora que já abordamos as principais questões e conceitos, está na hora de ver um pouco da pesquisa conduzida. Afinal, como o aprendizado de máquina pode reduzir o consumo de energia em smartphones?
Abordagens de escalonamento de frequência de CPU e o consumo de energia
Agora que percebemos que usar frequências mais baixas do processador do dispositivo pode fornecer economia de energia é hora de analisar a Figura 1. Repare que usando abordagens com Q-learning, o dispositivo ficou usando frequências intermediárias durante a maioria do tempo, enquanto em abordagens convencionais (como OD) aumenta-se a frequência de CPU quando há cargas de processamento e baixa-se após a execução do processamento, ficando a maior parte do tempo na frequência mínima e máxima.
Várias pesquisas já obtiveram redução do consumo de energia ao utilizar aprendizado de máquina para a escolha de frequência de CPU dado uma determinada carga de processamento. As abordagens que usam aprendizado de máquina divergem das abordagens convencionais por realizarem predições de carga de processamento e aplicação de algoritmos inteligentes para modelar e aprender a partir das escolhas de frequências e o resultado alcançado.
As principais abordagens que usam aprendizado de máquina, destacadas neste artigo, são: HS, ZT e Proposta. A abordagem Proposta foi produzida por mim, em minha tese de doutorado. As abordagens HS e ZT são técnicas da literatura que podem ser consultadas em HS (clique aqui) e ZT.
As abordagens HS, ZT e a Proposta (AP) usam o algoritmo Q-learning, mas variam na forma como o ambiente foi modelado, as ações e as funções de recompensa/custo associadas. Para mais informações, acesse o artigo de cada abordagem.
É importante destacar que não há como saber com exatidão qual a carga de processamento futura, por isso, é preciso usar abordagens reativas ou híbridas (reativas e preditivas).
Nas Figuras 2 e 3 é possível observar o ganho que se pode alcançar usando abordagens com aprendizado de máquina, usando o Q-learning para gerenciar o escalonamento de frequências da CPU.
Para os experimentos, foram usados diversos cenários reais de uso dos smartphones refletivos em dois benchmarks: Vellamo Browser e AnTuTu. Ambos usados por grandes empresas, como a Qualcomm, para avaliar e ranquear os dispositivos móveis.
Abordagens que usam aprendizado de máquina (AP, HS e ZT) obtiveram redução considerável do consumo de energia para realizar as mesmas atividades computacionais, destacando a utilidade do uso de aprendizado de máquina para criar algoritmos inteligentes de gerenciamento. Os experimentos foram repetidos diversas vezes e a média calculada.
Ganhos na redução do consumo de energia
Na Figura 2, a energia está normalizada e a abordagem AP consumiu somente 74% da energia necessária usada pela abordagem PE, mostrando uma redução de 26% do consumo de energia. As abordagens HS e ZT também usam aprendizado de máquina e mostraram serem melhores em termos de redução de energia do que as abordagens usadas atualmente na indústria (OD, IT e PE).
Além disso, a redução do consumo de energia já está calculada assumindo o consumo de recursos pela própria abordagem. Lembre-se que, abordagens mais complexas (incluindo as que usam aprendizado de máquina) exigem maior poder computacional, consequentemente, usando mais energia para serem realizadas do que abordagens mais simples, como as usadas na indústria atualmente.
Nas Figuras 4 e 5 estão ilustrados os ganhos na redução do consumo de energia ao utilizar a abordagem AP com aprendizado de máquina e Q-learning em comparação com as demais abordagens da literatura e indústria para os benchmarks Vellamo Browser e AnTuTu.
Após estes resultados, ficou claro que há ganhos significativos ao usar abordagens com aprendizado de máquina para redução do consumo de energia em dispositivos móveis, podendo alcançar reduções no consumo de energia de aproximadamente 12% até 36%.
Pesquisa acadêmica em tecnologia
Para mais detalhes sobre como implementar abordagens de aprendizado de máquina para redução do consumo de energia em dispositivos móveis, acesse o meu trabalho completo artigo de periódico ou um resumo em um artigo de conferência, ambos em inglês.
Além disso, recomendo também a leitura da minha tese de doutorado concluída na Universidade Federal de Pernambuco (UFPE).
Mas como eu me tornei pesquisador? Bem…
Desde o começo do curso de Bacharel em Sistemas de Informação, da Universidade Federal do Ceará (UFC) no campus do interior em Quixadá/CE, tive o sonho de ter o título de doutor.
Depois de conhecer um pouco da vida acadêmica na graduação, me mudei para Recife, onde cursei mestrado e doutorado em Ciência da Computação na Universidade Federal de Pernambuco (UFPE).
A pesquisa acadêmica sempre me encantou. Executar o papel de pesquisador me permitiu conhecer pessoas espetaculares e diversos lugares do mundo, viajando para conferências para aprender e repassar conhecimento.
Por falar em pesquisa acadêmica, o episódio #33 do ZupCast, o podcast de tecnologia da Zup, é um ótimo material para ficar por dentro do assunto.
O principal papel da pesquisa acadêmica em tecnologia é traçar caminhos para resolver problemas reais e os que ainda irão acontecer. Esse papel de modelar o futuro é importantíssimo e é o que mais me encanta na vida acadêmica em tecnologia.
Dentro da vida acadêmica geralmente você precisa se dedicar 100% à pesquisa, são poucas as pessoas que conseguem trabalhar e conduzir uma pesquisa acadêmica de qualidade. Daí a necessidade de bolsas e projetos de fomento à pesquisa e inovação dentro de políticas públicas e privadas.
Enquanto eu estava na academia, por alguns anos, eu dormia e acordava pensando naquele problema que estava tentando resolver, tentando associar o que eu sabia ou poderia aprender para resolver ele.
Depois de 2 anos lendo e tentando interligar as coisas, as coisas começam a se interligar, rs. Consegui ver uma luz no fim do túnel e como amenizar aquele problema usando tecnologias disponíveis que eu vinha estudando.
Depois disso, o trabalho começa a ser mais voltado à experimentação e coleta de resultados, avaliar técnicas e resultados, além de documentar tudo. Por fim, é o momento de escrever a tese, resumir quatro ou mais anos de trabalho em um documento, geralmente entre 100 e 200 páginas. Parece fácil, mas é um dos trabalhos mais difíceis, associar e resumir seus experimentos e resultados.
O momento final, o da defesa da tese, é o mais libertador. Infelizmente, a ansiedade toma conta, mas você precisa ter confiança. Você é a pessoa que mais domina aquele conteúdo (foi você que fez, certo?), então não tem porque ter medo!
A apresentação acaba sendo mais fácil e você mostra para a plateia como conseguiu resolver aquele problema relevante não só pra você, como para diversas outras pessoas no mundo!
Aprendizado de máquina (machine learning) consegue impactar muito mais do que você pensa!
Os dispositivos móveis possuem impedimentos como o tempo reduzido de uso por restrição da energia necessária, principalmente os smartphones. Os fabricantes de smartphones tentam prolongar o tempo de uso destes dispositivos aumentando o tamanho da bateria, alterando o hardware e melhorando o software embutido.
Observamos que a tendência dos smartphones é trazer maior poder de processamento e armazenamento em um espaço físico reduzido. Dito isso, para fornecer energia para mais processamento, armazenamento e mais funcionalidades, é preciso fornecer uma bateria cada vez maior para não reduzir o tempo de uso das pessoas.
Ademais, chegará um momento que aumentar a bateria não será mais uma opção, sendo necessário reduzir o consumo de energia para poder continuar aumentando o poder de processamento, armazenamento e funcionalidades.
Neste cenário, reduzir o consumo de energia é um ponto crucial! Isso pode ser alcançado usando técnicas inteligentes com aprendizado de máquina para gerenciar os algoritmos de escalonamento de frequência de CPU do smartphone, em destaque o algoritmo Q-learning.
Foi constatado que usar abordagens inteligentes pode prover uma redução do consumo de energia de até 36%, permitindo construir smartphones mais robustos com o mesmo tamanho de bateria ou entregar um dispositivo móvel que irá durar mais tempo sem precisar ser recarregado.
Por fim, técnicas de aprendizado por reforço podem ser usadas em cenários distintos como mostrado neste artigo.
E aí, que tal avaliar seu problema e tentar modelá-lo para ser evoluído com aprendizado de máquina?