A divisão DeepMind AI do Google cuidou de tudo, desde StarCraft para mim proteína de dobramento. Portanto, provavelmente não é surpresa que os criadores tenham se voltado para o que é sem dúvida um interesse pessoal: a programação de computadores. Na edição de quinta-feira da Science, a empresa descreve um sistema desenvolvido por ela que produz código em resposta à programação típica daquela usada em competições de programação humana.
No desafio médio, o sistema de IA consegue pontuar próximo da metade superior dos participantes. Mas tinha algumas dificuldades com o dimensionamento, pois era menos provável que produzisse um programa que funcionasse em problemas que geralmente exigiam mais código. No entanto, o fato de funcionar sem nenhuma informação estrutural sobre algoritmos ou linguagens de programação é uma surpresa.
Aceite o desafio
Os desafios de programação de computadores são bastante simples: as pessoas recebem uma tarefa para concluir e produzir o código que deve executar a tarefa necessária. No exemplo do novo artigo, os programadores receberam duas strings e foram solicitados a determinar se a menor das duas poderia ser produzida substituindo backspaces por alguns dos pressionamentos de tecla necessários para digitar a string maior. Os programas enviados são verificados para ver se fornecem uma solução geral para o problema ou falham quando exemplos adicionais são testados.
Dados exemplos suficientes de software que podem resolver um único problema, provavelmente deve ser possível para um sistema de IA inferir a estrutura algorítmica necessária para o sucesso. Mas esta não será uma solução geral para resolver quaisquer problemas; Uma IA treinada em uma categoria de desafio falhará quando solicitada a enfrentar um desafio não relacionado.
Para tornar algo mais generalizável, a equipe do DeepMind o tratou mais como um problema de linguagem. Até certo ponto, a descrição do desafio é uma expressão do que o algoritmo deve fazer, enquanto o código é uma expressão da mesma coisa, apenas em uma linguagem diferente. Assim, a IA em questão foi projetada para ter duas partes: uma parte pega a descrição e a transforma em uma representação interna, e a segunda parte usa a representação interna para gerar o código funcional.
O treinamento do sistema também foi um processo de duas etapas. Na primeira fase, o sistema precisava apenas processar um instantâneo do material no GitHub, totalizando mais de 700 GB de código. (Nos dias em que você pode colocar isso em um pen drive, isso pode não parecer muito, mas lembre-se de que o código é apenas texto bruto, então você obtém muitas linhas por gigabyte.) Observe que esses dados também incluirão comentários, que você deve usar Uma linguagem natural para explicar o que o código próximo faz e, portanto, deve ajudar nas tarefas de entrada e saída.
Depois que o sistema é treinado, ele passa por um período de ajuste. DeepMind configura seus próprios questionários de programação e, em seguida, alimenta os resultados no sistema: descrição do problema, código de trabalho, código com falha e casos de teste usados para verificá-lo.
Abordagens semelhantes foram tentadas anteriormente, mas a DeepMind relata que foi capaz de lançar mais recursos no treinamento. O documento afirma que “um dos principais impulsionadores do desempenho do AlphaCode veio do aumento do número de amostras do modelo para ordens de magnitude maiores do que o trabalho anterior”.
“Criador. Viciado em mídia social que gosta de hipster. Fã da web. Fanático por álcool apaixonado.”
More Stories
A Boeing pode não conseguir operar o veículo Starliner antes que a estação espacial seja destruída
Vivendo com ansiedade: conselhos de especialistas sobre como aceitar um problema de saúde mental
Nova pesquisa sobre uma enorme falha de impulso sugere que o próximo grande terremoto pode ser iminente