A AlphaDev, desenvolvida pelo Google DeepMind, foi projetada para encontrar melhores algoritmos de computador. Em um teste, o sistema de IA encontrou algoritmos de ordenação que eram até 70% mais eficientes.

O Google DeepMind desenvolveu vários modelos de IA influentes, incluindo o AlphaZero e o MuZero. Esses algoritmos são usados pelo Google para gerenciar melhor os data centers e compactar vídeos. Talvez o mais influente até o momento seja o AlphaFold, um algoritmo usado por pesquisadores de todo o mundo para auxiliar na pesquisa e desenvolvimento de proteínas.

Agora, o Google DeepMind apresenta o AlphaDev, um sistema de IA que utiliza aprendizado por reforço para encontrar novos algoritmos de computador.

O AlphaDev melhora algoritmos executados trilhões de vezes por dia

“A sociedade digital está aumentando a demanda por computação e consumo de energia. Nas últimas cinco décadas, confiamos nas melhorias de hardware para acompanhar o ritmo. Mas à medida que os microchips se aproximam de seus limites físicos, é fundamental melhorar o código que é executado neles para tornar a computação mais poderosa e sustentável”, explica o Google DeepMind em sua pesquisa. “Isso é especialmente importante para os algoritmos que compõem o código executado trilhões de vezes por dia.”

Com o AlphaDev, a empresa agora descobriu um novo algoritmo de ordenação mais rápido que supera os algoritmos desenvolvidos por humanos ao longo de décadas. Esses algoritmos, que são de código aberto, sustentam desde a classificação de resultados de pesquisa online até mensagens sociais e computação em computadores e smartphones.

Os novos algoritmos levaram a melhorias na biblioteca de ordenação libc++ LLVM, que agora é até 70% mais rápida para sequências mais curtas e cerca de 1,7% mais rápida para sequências com mais de 250.000 elementos. O AlphaDev também descobriu um algoritmo mais rápido para hashing, um processo fundamental para armazenar e recuperar dados. O novo algoritmo de hashing melhora a eficiência das funções de hashing do centro de dados na faixa de 9 a 16 bytes em 30%.

O AlphaDev é o AlphaZero para instruções de montagem

O AlphaDev é baseado no AlphaZero, mas em vez de jogar Go, Xadrez ou Shogi, o AlphaDev brinca com as instruções de montagem do computador. As instruções de montagem são instruções de baixo nível que a CPU de um computador pode entender e executar. Para descobrir novos algoritmos, a equipe transformou a ordenação em um “jogo de montagem” para um único jogador. A cada movimento, o AlphaDev observa o algoritmo que criou e as informações contidas na CPU. A cada movimento, o sistema adiciona uma nova instrução ao algoritmo.

Segundo o Google Deepmind, o jogo de montagem é incrivelmente difícil porque exige que o AlphaDev passe eficientemente por uma enorme quantidade de combinações possíveis de instruções para encontrar um algoritmo melhor.

Conforme o AlphaDev constrói o algoritmo, ele verifica se o algoritmo está correto comparando a saída do algoritmo com os resultados esperados. Para algoritmos de ordenação, isso significa fornecer números desordenados como entrada e obter números corretamente ordenados como saída. O AlphaDev é recompensado durante o treinamento por ordenar os números corretamente e pela velocidade e eficiência com que o faz. O objetivo final é encontrar um programa correto e mais rápido.

Uma vez que o AlphaDev encontra esses algoritmos, a equipe os decodifica e os traduz para C++.

AlphaDev para jogar com código C++ no futuro

A otimização em instruções de montagem de baixo nível foi muito eficiente, mas atingiu seus limites à medida que o tamanho do algoritmo aumentava. A equipe está atualmente investigando a capacidade do AlphaDev de otimizar algoritmos diretamente em linguagens como C++.

“Vemos o AlphaDev como um passo em direção ao desenvolvimento de ferramentas de IA de uso geral que poderiam ajudar a otimizar todo o ecossistema de computação e resolver outros problemas que beneficiarão a sociedade.”

Para obter mais informações, consulte o post no blog AlphaDev. Com conteúdo do The Decoder.