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.
As society becomes more digital, it’s critical to improve the code powering the world's computing.
— Google DeepMind (@DeepMind) June 7, 2023
Today in @Nature, we present AlphaDev, an AI system using reinforcement learning to discover enhanced computer science algorithms.
How does it work? 🧵 https://t.co/2ukGaPey5w pic.twitter.com/dSedrv7eik
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.