Inteligência Artificial e o supercomputador
É muito comum ver nos filmes de ficção científica cenas em que os carros andam sozinhos e robôs imitam os seres humanos, com seus movimentos calculados, conversas, pensamentos e até sentimentos. Tudo isso é Inteligência Artificial (IA), uma tecnologia que está muito mais presente no nosso dia a dia do que se imagina – embora algumas aplicações ainda estejam no plano da ficção.
O filtro de mensagens de spam do nosso celular, ou e-mail, tem IA embutida, assim como as análises de fraudes nas compras com cartão de crédito, ou as ferramentas que usamos em nosso trabalho cotidiano, como corretor ortográfico, tradutores automáticos e buscadores. As sugestões de conteúdo que recebemos nas redes sociais ou dos serviços de streaming também se baseiam em Inteligência Artificial. Além disso, diversos setores da indústria utilizam técnicas de IA em suas esteiras de produção, ou no processo de entrega de seus produtos, otimizando seus processos ou melhorando nossa experiência como usuários.
Muitas dessas aplicações utilizam técnicas de Aprendizado de Máquina (ou Machine Learning, na expressão em inglês). E algumas delas se baseiam em uma subárea de Machine Learning chamada de Aprendizado Profundo (ou Deep Learning). Nesse caso, são utilizados os algoritmos de redes neurais artificiais, que vêm se tornando cada vez mais populares devido aos avanços teóricos e à construção de hardwares específicos para esse tipo de técnica.
Basicamente, as redes neurais artificiais são estruturas inspiradas nas redes neurais biológicas e funcionam de forma análoga ao cérebro humano. A formação dessas redes também é dada por uma conexão de neurônios artificiais, geralmente organizados em camadas (o termo deep decorre do uso de muitas camadas, que tornam a rede “profunda”). E, assim como nós, humanos, aprendemos algo novo a partir de estudo e prática, o aprendizado de uma rede neural artificial ocorre por intermédio de um processo chamado treinamento.
O treinamento consiste no uso de observações/medições (chamadas de amostras) e as respectivas saídas esperadas, de modo que a rede processe tais amostras e tenha suas saídas comparadas às saídas esperadas. A rede, então, ajusta a conexão entre seus neurônios e vai repetindo esse processo até que a quantidade de erros seja aceitável, ou após um número determinado de repetições.
Em função da complexidade das tarefas relacionadas a Aprendizado de Máquina, o sucesso das aplicações depende de uma quantidade representativa e, em geral, muito grande de dados para o treinamento dos algoritmos. Além disso, problemas muito complexos possuem uma grande quantidade de variáveis (ou possibilidades) e exigem modelos de redes neurais muito grandes, capazes de “aprender” a executar uma tarefa de forma adequada. Consequentemente, precisamos de computadores com capacidade para processar esses conjuntos de dados e de realizar os cálculos matemáticos em um tempo factível.
Modelos famosos de redes neurais artificiais – como o BERT, por exemplo – possuem 340 milhões de parâmetros. Uma das primeiras versões desse modelo, para língua inglesa, foi gerada a partir de um conjunto de dados com mais de 3 milhões de palavras. Originalmente em um conjunto de máquinas específicas para isso, o tempo para o treinamento de um modelo foi de quatro dias, utilizando um servidor dedicado com 64 processadores específicos e 1 Tb de memória RAM – equivalente a quase 10 mil notebooks (considerando um modelo mais potente à venda no mercado).
É por esse motivo que o uso de supercomputadores é tão importante para agilizar, e até viabilizar, o desenvolvimento de aplicações envolvendo Inteligência Artificial. Com um supercomputador como o SiDi IARA, por exemplo, o treinamento desse mesmo modelo neural pode ser realizado em pouco mais de 3 horas, graças ao poder de processamento dessa infraestrutura, que equivale a 2 milhões de notebooks trabalhando em conjunto.
O desempenho de uma infraestrutura de alta capacidade é fundamental para o sucesso dos projetos de IA, que se tornam muito mais dinâmicos e eficientes. Com a robustez de um supercomputador, os times de pesquisadores e especialistas podem realizar vários experimentos e avaliar inúmeros algoritmos, de modo a encontrar os mais adequados ao problema que estão estudando.
Henrique Voni é desenvolvedor de Machine Learning/NLP do SiDi, instituto de tecnologia especializado no desenvolvimento de soluções de Inteligência Artificial.