A empresa DeepMind, conhecida por seus desenvolvimentos no campo da inteligência artificial e na construção de redes neurais capazes de jogar jogos de computador e de tabuleiro em nível humano, apresentou o projeto AlphaCode, que desenvolve um sistema de aprendizado de máquina para geração de código, capaz de participar de competições de programação na plataforma Codeforces e demonstrar um desempenho médio. A principal característica dessa tecnologia é a capacidade de gerar código nas linguagens Python ou C++, aceitando como entrada um texto que descreve a tarefa em inglês.
Para testar o sistema, foram selecionadas 10 novas competições do Codeforces, com mais de 5000 participantes, realizadas após a conclusão do treinamento do modelo de aprendizado de máquina. Os resultados obtidos nas tarefas permitiram que o AlphaCode alcançasse aproximadamente o meio da classificação dessas competições (54,3%). A classificação geral prevista do AlphaCode foi de 1238 pontos, o que garante sua inclusão no Top 28% entre todos os participantes do Codeforces que participaram de competições nos últimos 6 meses. Observa-se que o projeto ainda está em estágio inicial de desenvolvimento e, no futuro, planeja-se melhorar a qualidade do código gerado, bem como desenvolver o AlphaCode em direção a sistemas que ajudem na escrita de códigos ou ferramentas de desenvolvimento de aplicativos que possam ser utilizadas por pessoas sem habilidades de programação.
O projeto utiliza a arquitetura de rede neural "Transformer" em conjunto com métodos de amostragem e filtragem, permitindo a geração de várias variantes imprevisíveis de código que correspondem ao texto em linguagem natural. Após a filtragem, clusterização e ranqueamento do fluxo gerado de opções, o código funcional mais otimizado é selecionado, sendo posteriormente testado para verificar se produz o resultado correto (em cada tarefa das competições, é fornecido um exemplo de dados de entrada e o resultado esperado que deve ser obtido após a execução do programa).

Para um treinamento bruto do sistema de aprendizado de máquina, foi utilizada uma base de código disponível em repositórios públicos do GitHub. Após a preparação do modelo inicial, foi realizada uma fase de otimização, implementada com base em uma coleção de códigos com exemplos de problemas e soluções, oferecidos aos participantes das competições Codeforces, CodeChef, HackerEarth, AtCoder e Aizu. No total, foram utilizados 715 GB de código do GitHub e mais de um milhão de exemplos de soluções para problemas típicos de competições. Antes de passar para a geração de código, o texto da tarefa passou por uma fase de normalização, na qual o que era supérfluo foi excluído, mantendo apenas as partes significativas.

Fonte: opennet.ru
