O projeto segue uma proposta fácil de ser entendida, mas difícil de ser implementada: receba um problema e apresente uma solução. Isso faz o AlphaCode ter uma atuação generalista. Mecanismos que geram códigos automaticamente já existem, mas costumam ser direcionados a problemas específicos. Para tornar o sistema tão universal quanto possível na resolução de problemas, a DeepMind dividiu o projeto em duas partes. A primeira “lê” o problema e o converte em uma representação que servirá de base para a segunda parte. Esta última é a que produz a solução. O treinamento do AlphaCode também foi dividido em duas partes. Na primeira, o sistema foi treinado com mais de 700 GB de códigos extraídos do GitHub, incluindo aí comentários e instruções em linguagem natural. Na segunda, a DeepMind criou competições internas de programação cujos resultados serviram para treinar a inteligência artificial de um modo mais minucioso.
Parece um programador iniciante
O que torna o projeto promissor é o fato de o AlphaCode ter resolvido problemas inéditos para ele, isto é, que não foram apresentados durante o treinamento. Mas isso só foi possível após o cumprimento de algumas etapas. Uma delas consistiu em fazer o sistema filtrar respostas ruins, que não eram poucas. Os pesquisadores da DeepMind relatam que mais de 40% das soluções apresentadas esgotavam os recursos de memória ou excediam um período de tempo considerado razoável. O nível seguinte de filtragem consistiu em fazer o sistema selecionar até dez soluções para o problema em meio às centenas de milhares de resultados gerados. Isso porque muitos deles eram parecidos entre si. Mas funcionou. Os resultados fizeram o AlphaCode ficar entre as 54% melhores posições em avaliações de desafios de programação. E os pesquisadores não encontraram cópias de códigos usados no treinamento. De acordo com a DeepMind, a inteligência artificial chegou a esse nível participando de competições que “requerem uma combinação de pensamento crítico, lógica, algoritmos e compreensão de linguagem natural”. É um feito impressionante. Só não dá para o sistema ser usado largamente em trabalhos de desenvolvimento. Ainda não. Muitos resultados apresentados consumiram mais recursos do que o necessário. Outros eram inconsistentes. De modo geral, os pesquisadores da DeepMind consideraram que o AlphaCode apresentou um nível de desempenho equivalente ao de um “programador iniciante”, com não mais do que um ano de experiência.
Outras IAs que programam (ou tentam)
Embora o AlphaCode tenha mostrado resultados satisfatórios para a atual fase, não é o momento de colocá-lo em produção. Pelo menos não para trabalhos complexos. Programar não é só um exercício de lógica. A capacidade do programador de prever cenários, estudar contextos e fazer testes conta muito para um bom código. Apesar das limitações atuais, o futuro aponta para a inteligência artificial participando ativamente de projetos de desenvolvimento. Isso já é realidade com o GitHub Copilot, por exemplo, que sugere código para desenvolvedores (embora haja críticas sobre possíveis plágios pela ferramenta). Outro exemplo é o ChatGPT, um chatbot capaz não só de escrever textos convincentes, mas programar. Ou quase. Uma análise cuidadosa revelou que muitos dos códigos gerados pela ferramenta tinham erros de lógica. De todo modo, parece ser questão de tempo para essa inteligência artificial ficar mais… inteligente. O estudo completo sobre o AlphaCode foi publicado na Science. Com informações: Gizmodo, Ars Technica.