Sumário
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