TECNOLOGIA

Inteligência artificial começa a melhorar desempenho de programas de computador

Sistema criado pela Deepmind, subsidiária do Google, otimizou algoritmo para ordenar dados, que humanos não conseguiam aprimorar havia mais de uma década

Google - Arquivo Reuters/Hannah McKey

Um estudo divulgado nesta quarta-feira (7) por cientistas da Deepmind, subsidiária do Google, descreve como um sistema de inteligência artificial (IA) conseguiu, pela primeira vez, melhorar o desempenho de um programa de computador sem que fosse "treinado" por humanos.

Em um artigo da revista Nature, o grupo liderado pelo cientista da computação Daniel Mankowitz descreve como o AlphaDev, um projeto criado especificamente para uso de IA em programação, conseguiu otimizar um algoritmo (sequência de regras lógicas) que é parte essencial de muitos softwares.

O sistema de IA criou, por conta própria, um algoritmo de ordenação, isto é, uma sequência de instruções lógicas embutida em praticamente qualquer aplicativo nos dias de hoje.

Os que os algoritmos de ordenação fazem, essencialmente, é colocar em ordem uma sequência de elementos num conjunto de dados. Quando uma pessoa escreve uma série de nomes em uma planilha e clica em um botão para colocá-los em ordem alfabética, por exemplo, é esse algoritmo que executa a tarefa no programa. Ele checa quais letras estão em cada nome e os compara à lista de letras do alfabeto para colocá-los na ordem desejada.
 

Por ser uma tarefa muito básica e recorrente, eles são um elemento crucial que incluencia o desempenho de diversos tipos de programas. Os algoritmos em softwares atuais mais sofisticados são resultado de anos de desenvolvimento e aprimoramento por parte de programadores humanos, mas haviam chegado em um limite.

Entre os programadores que usam a linguagem C++, empregada em finanças, games, computação gráfica e várias aplicação de alto desempenho, desde o início da década passada ninguém conseguia aprimorar o algoritmo de ordenação que é usado como padrão da linguagem. Nenhum humano ou robô conseguia otimizar o código de programação de modo que ele fosse executado mais rápido. Até agora.

Jogo para robôs
No estudo da Nature, Mankowitz explica como fez para que o AlphaDev criasse um algoritmo mais rápido do que aquele que estava consagrado na biblioteca de código padrão do C++ há uma década.

"Nós formulamos a tarefa de encontrar um procedimento melhor de ordenamento como se isso fosse um jogo", escreveu o cientista com seus coautores.

O jogo desafiava o AlphaDev a tentar melhorar o algoritmo, e o recompensava com pontos quando conseguia desempenhar tarefas de ordenamento em um número menor de passos. Usando um processo de tentativa e erro "turbinado" por uma receita especial, o sistema ia aos poucos melhorando as peças de código que criava, até obter êxito.

"O AlphaDev descobriu, a partir do zero, pequenos algoritmos de ordenação que superaram o desempenho dos algoritmos humanos de referência conhecidos", relatam os pesquisadores.

A receita especial dos cientistas foi uma técnica chamada de "aprendizado profundo por reforço" (deep reinforcement learning), que tem movimentado outras frentes de pesquisa de ponta em inteligência artificial.

Inteligência x força bruta
Em um artigo independente, o cientista da computação Armando Solar-Lezama, do Instituto de Tecnologia de Massachusetts (MIT), afirma que o trabalho da DeepMind é um marco importante na área.

Historicamente, a velocidade da computação avançou com "força-bruta", com a indústria conseguindo fazer chips cada vez menores, tornando circuitos de um mesmo tamanho cada vez mais rápidos e poderosos. Mas esse crescimento quase que constante, batizado de Lei de Moore, parece estar se esgotando. De acordo com esse preceito, o número de transistores por dispositivo tende a dobrar a cada dois anos

"A Lei de Moore tem um limite natural, por isso a otimização de software se tornou tão crucial hoje quanto a miniaturização", escreveu Solar-Lezama.

Outras abordagens de inteligência artificial já tiveram um sucesso parcial em avançar o desempenho de algoritmos, mas as soluções eram em geral muito trabalhosas e voltadas a problemas específicos, diferentes da abordagem que o AlphaDev adotou. Os melhores sistemas de IA para programação até aqui (incluindo o AlphaCode, da própria DeepMind) ainda eram treinados por códigos de programação escritos por humanos. Por isso, talvez, não conseguiam superá-los.

"O poder dessa abordagem é que o sistema pode gerar programas eficientes com base em um 'sinal de recompensa', sem precisar de nenhuma orientação de exemplos de treinamento", afirmou o cientista do MIT sobre o AlphaDev. "Talvez surpreendentemente, isso leva a uma inovação genuína na abordagem de tarefas tão simples e fundamentais quanto classificar uma lista de itens."