Tornando a IA melhor na resolução de problemas em competições de codificação

Tornando a IA melhor na resolução de problemas em competições de codificação

Entrevista As habilidades dos modelos comerciais de grandes linguagens para resolver problemas de programação competitivos podem ser significativamente aumentadas guiando cuidadosamente seus processos por meio de engenharia rápida e inteligente.

Para demonstrar isso, a Codium AI, com sede em Israel, construiu o AlphaCodium e liberado o software no GitHub este mês. AlphaCodium não é um grande modelo de linguagem por si só. Em vez disso, é um método que melhora as habilidades de resolução de problemas de ferramentas generativas de IA como o GPT-4, usando o que o CEO Itamar Friedman chama de “engenharia de fluxo”.

Primeiro, uma questão de programação é inserida no grande modelo de linguagem subjacente e é solicitada a descrição e resumo do problema. Essas informações orientam como deve começar a resolver o problema. AlphaCodium define coisas, como quais devem ser as entradas e saídas, ao encontrar uma solução. Tudo isso é especificado em linguagem natural.

O modelo então começa a gerar código que se alinha com as especificações que acabou de descrever. As competições de programação que solicitam aos concorrentes que codifiquem de acordo com as especificações geralmente fornecem testes que mostram o que um script deve produzir para uma determinada entrada. AlphaCodium gera mais desses casos de teste e, em seguida, executa soluções possíveis para verificar se o código está funcionando conforme o esperado.

Caso não consiga corresponder a nenhuma das saídas definidas em nenhum dos testes, o modelo gera soluções diferentes até que passem em todos os testes ou falhem. Erros podem surgir quando seu código não é compilado ou está errado.

Você pode ver as diferentes etapas do processo de engenharia de fluxo no diagrama abaixo. É amplamente dividido em uma fase de pré-processamento, onde o sistema analisa o problema em linguagem natural, e um estágio de iteração de código, onde executa possíveis soluções em testes públicos e gerados por IA.

alfacódio

Todas as etapas gerais que orientam o AlphaCodium na geração de código para resolver problemas

“Não pegamos o problema e vamos até o modelo e dizemos: 'Ei, por favor, gere a solução final'”, disse Friedman O registro. “Pedimos ao modelo que redefina este problema em marcadores.” Simplificá-lo e dividir as coisas em partes torna mais fácil para o modelo gerar posteriormente código para diferentes partes de um algoritmo.

Essencialmente, a engenharia de fluxo é um procedimento que orienta o processo de resolução de problemas do modelo, dividindo-o em etapas bem definidas. Solicitar que ele “divida o código gerado em pequenas subfunções, com nomes e funcionalidades significativas”, dizem, leva a menos bugs e torna o código mais fácil de testar e corrigir.

“Basicamente gastamos 95% do nosso tempo na engenharia de fluxo e apenas 5% na engenharia imediata e não alteramos as instruções para cada [etapa]”, acrescentou Friedman.

Os engenheiros da Codium testaram o desempenho de seu modelo em centenas de problemas usados ​​nas partes de verificação e teste do conjunto de dados CodeForces compilado pelo Google DeepMind há dois anos. Eles afirmam que o AlphaCodium foi melhor na resolução de problemas de codificação do que os modelos AlphaCode e AlphaCode2 do Google DeepMind.

Nos resultados relatados em um arXiv papel [PDF], AlphaCodium foi capaz de responder corretamente 44 por cento das perguntas em comparação com os 24 por cento do AlphaCode, enquanto gerou apenas cinco soluções em comparação com as dez soluções escolhidas pelo AlphaCode para 107 problemas de validação. Curiosamente, a diferença diminuiu quando se tratou de 165 problemas de teste com o AlphaCodium resolvendo 29% em comparação com os 28% do AlphaCode.

AlphaCode seleciona as dez soluções mais promissoras entre dezenas de milhares ou centenas de milhares de scripts possíveis que ele gera – tornando sua execução computacionalmente intensiva.

“Nós nos concentramos muito mais em todo o fluxo de testes”, disse Friedman. “Para [Google], eles trabalharam muito na geração. Eles tentam gerar centenas de outras opções e nós geramos pouquíssimas soluções, mas testamos muito bem para orientar a melhoria do código.”

AlphaCodium é um pouco melhor que o modelo AlphaCode2 mais recente do Google DeepMind, que é 10,000 vezes mais eficiente que seu antecessor AlphaCode, acrescentou.

alfacódio_2

Como o AlphaCodium se compara a outros modelos de última geração em termos de precisão e eficiência

Friedman disse estar confiante de que o desempenho do AlphaCodium não se deve ao vazamento de dados, onde o modelo subjacente foi treinado e testado nos mesmos problemas. A versão GPT-4 que alimenta o AlphaCodium foi treinada em texto extraído da Internet até setembro de 2021, enquanto os problemas em que testou seu sistema foram retirados do conjunto de dados CodeForces mencionado acima, que foi lançado muito mais tarde.

Uma comparação melhor entre maçãs que avalia o processo de engenharia de fluxo, no entanto, está analisando a capacidade do GPT-4 de resolver essas mesmas questões com e sem a aplicação do AlphaCodium. O antigo GPT-4 só poderia responder corretamente a 19 e 12 por cento dos problemas nos conjuntos de validação e teste, respectivamente, em comparação com 44 e 29 por cento da variante alimentada pelo AlphaCodium.

Resumindo, parece que implementar um pipeline cuidadoso que gere dados adicionais para orientar como o código é gerado e melhorar o processo de teste pode ser mais eficaz do que tentar treinar um grande modelo de linguagem do zero.

A Codium lançou recentemente uma nova ferramenta para oferecer suporte aos desenvolvedores Python, que agora podem chamar o AlphaCodium para resolver diretamente um problema de codificação em seu IDE. Você pode brincar com isso aqui. ®

Carimbo de hora:

Mais de O registro