Deepmind AlphaCode: IA escreve código tão bem quanto humanos

AlphaCode é a primeira inteligência artificial de programação da Deepmind. Em um teste, a IA já atinge níveis humanos.

Com o triunfo dos modelos Transformer no processamento de linguagem natural, os pesquisadores perceberam a utilidade dos modelos de geração de texto também para a geração de código. Por exemplo, o modelo GPT-3 da OpenAI mostrou recursos de código oculto, como a conversão de descrições de texto em código HTML nos dias após seu lançamento.

A OpenAI também reconheceu o potencial dos modelos NLP para programação e desenvolveu o Codex, um modelo de transformador especializado para gerar código que está disponível por meio da API da OpenAI. A Microsoft implementou uma variante no software de assistência de código AI Copilot para GitHub.

A contribuição da OpenAI para a programação de máquinas é mais do que um preenchimento automático de código: a Inteligência Artificial pode escrever programas simples a partir de instruções simples. No entanto, o Codex está muito longe da capacidade humana de resolver problemas mais complexos além de simplesmente traduzir instruções em código.

O AlphaCode da Deepmind visa encontrar novas soluções

mente profunda , a empresa de IA da Alphabet por trás do AlphaZero, MuZero, AlphaFold e AlphaStar, está apresentando o AlphaCode, um modelo de IA projetado para escrever código de “nível de competição”. A Deepmind testou o AlphaCode para isso com competições de programação da Codeforces, uma plataforma especializada em competições de código.

Como o Codex da OpenAI, o AlphaCode da Deepmind depende de uma arquitetura Transformer. Ao contrário do Codex, no entanto, o AlphaCode é um modelo de codificador-decodificador. Códice, como GPT-3 é apenas um modelo de decodificador.

A principal diferença entre os dois modelos é como eles processam o contexto dos dados de entrada: um modelo decodificador como o GPT-3 considera apenas o contexto antes ou depois de uma palavra ao processar uma entrada, como uma única frase.

Um modelo de codificador, como o BERT do Google, processa ambas as direções ao representar uma palavra. Portanto, um codificador representa melhor o significado de uma frase inteira e um decodificador é mais adequado para a geração de texto.

Quando o codificador e o decodificador são combinados, como no caso das traduções, o decodificador pode usar a representação gerada pelo codificador, por exemplo, da frase completa, além da entrada inicial, por exemplo, uma palavra.

Semelhante às traduções, os concursos de programação podem ser pensados ​​como uma tarefa de tradução de sequência para sequência: para uma descrição de problema X em linguagem natural, crie uma solução em uma linguagem de programação Y.

A Deepmind recorre, assim, a um modelo codificador-decodificador baseado em Transformer para AlphaCode, com ajustes no modelo e métodos de treinamento. O Salesforce CodeT5 também conta com esse modelo.

AlphaCode é quatro vezes maior que o Codex

A Deepmind treinou o AlphaCode com quase 715 gigabytes de amostras de código do GitHub nas linguagens de programação C++, C#, Go, Java, JavaScript, Lua, PHP, Python, Ruby, Rust, Scala e TypeScript.

O maior modelo AlphaCode tem 41,4 bilhões de parâmetros de tamanho. Em comparação, o código da OpenAI tem pouco menos de 12 bilhões de parâmetros.

A Deepmind treinou adicionalmente o AlphaCode com CodeContests, um conjunto de dados de problemas, soluções e testes de competições Codeforces compilados pela Deepmind.

Após o treinamento, o codificador do AlphaCode processa as descrições do problema e o decodificador gera linhas de código. Para cada problema, o AlphaCode pode gerar milhões de soluções possíveis – grande parte das quais, porém, não funcionam.

O Deepmind filtra as inúmeras soluções possíveis com testes de amostra fornecidos nas descrições do problema. No entanto, esse processo ainda deixa milhares de possíveis candidatos ao programa.

Portanto, o AlphaCode emprega um segundo modelo menor que gera mais testes e agrupa todos os programas candidatos restantes de acordo com saídas iguais para os testes gerados. Desses grupos, o AlphaCode posteriormente seleciona dez soluções para uma descrição do problema.

Programas AlphaCode da Deepmind no nível humano

Usando esse método, o AlphaCode resolveu 34,2% de todos os problemas no conjunto de dados CodeContests. Em dez competições recentes da Codeforce com mais de 5.000 participantes, a AlphaCode alcançou uma classificação média entre os 54,3% melhores. Isso coloca o AlphaCode à frente de quase 46% dos participantes humanos. Segundo a equipe AlphaCode, sua mais nova IA é a primeira a atingir esse patamar.

Um exame também não mostra nenhuma evidência de que AlphaCode copia linhas de código do conjunto de dados de treinamento. Isso demonstra que o modelo de IA pode realmente resolver novos problemas que nunca viu antes – mesmo que esses problemas exijam um pensamento significativo.

AlphaCode não escreve código perfeito, no entanto: Deepmind diz que a IA luta com C++ em particular. Espera-se que o sistema estimule mais pesquisas, e melhorias no AlphaCode também estão sendo planejadas pela Deepmind.

Aqueles que desejam uma visão mais profunda do AlphaCode podem explorar o modelo no site AlphaCode . Mais informações estão disponíveis em blog da mente profunda .

Leia mais sobre Inteligência Artificial:

  • CEO do Google: “Investir em inteligência artificial é fundamental”
  • História dos robôs: de Heron a Spot para o futuro da IA
  • Meta mostra algoritmo de aprendizado para IA multitarefa