A automação de geração de código é um campo em rápido desenvolvimento que utiliza modelos linguísticos em larga escala (LLMs) para gerar soluções de programação utilizáveis e logicamente corretas. Esses modelos, pré-treinados em grandes conjuntos de dados de código e texto, visam simplificar as tarefas de codificação para desenvolvedores. Apesar do progresso, a área ainda enfrenta a dificuldade de produzir código confiável e eficiente, principalmente quando se trata de problemas complexos que exigem precisão e criatividade.
Um grande desafio na geração de código reside em navegar no grande espaço de busca para gerar soluções ótimas e otimizadas. Os métodos existentes muitas vezes não conseguem lidar eficazmente com a programação e depuração em vários estágios, o que leva a limitações ao lidar com tarefas complexas. Além disso, o uso de métodos de força bruta para gerar grandes amostras de código provou ser ineficiente. Ao mesmo tempo, os métodos baseados no refinamento muitas vezes enfrentam o problema de ficarem presos em soluções inadequadas.
As abordagens atuais neste campo incluem técnicas como geração de força bruta, refinamento iterativo e uso de métodos de feedback. Os métodos de força bruta tentam melhorar a probabilidade de produzir a solução correta por meio de amostragem de vários resultados. Os métodos iterativos ajustam um subconjunto de soluções com base no feedback dos resultados da simulação. Apesar da sua utilidade, estes métodos precisam de ser ainda mais expandidos e muitas vezes precisam de utilizar todo o potencial dos LLMs na geração de soluções diversas e inovadoras.
Pesquisadores da Universidade do Texas e da Salesforce Research introduziram uma estrutura básica chamada CodeTree para superar essas limitações. CodeTree utiliza uma estrutura baseada em árvore para o processo de geração de código, permitindo testes sistemáticos e refinamento de soluções. Basicamente, o CodeTree usa vários agentes interativos, incluindo um agente Thinker para planejar estratégias, um agente Solver para gerar código inicial e um agente Debugger para refinar soluções. Esses agentes são guiados pelo agente Critic, que avalia e descobre cada solução dinamicamente com base no feedback da assinatura e nos insights gerados pela IA.
A estrutura CodeTree cria uma árvore heterogênea, com cada nó representando uma solução possível. Um agente de raciocínio gera múltiplas estratégias, cada uma das quais atua como um ramo da árvore. O agente Solver gera então uma implementação inicial, que é testada e analisada pelo agente Critic. Com base nesta resposta, o agente Debugger refina ou rejeita soluções, garantindo que o ambiente de pesquisa esteja funcionando perfeitamente. Esta abordagem permite uma tomada de decisão flexível, com o agente Crítico decidindo se deve estender, abortar ou encerrar um determinado caminho na árvore. A interação entre esses agentes permite que o CodeTree identifique soluções ideais, evitando duplicações e ineficiências.
Os pesquisadores testaram exaustivamente o CodeTree em vários benchmarks desafiadores. Ao usar o GPT-4o como modelo base, a estrutura alcançou resultados notáveis. Pontuou 95,1% no HumanEval, 98,7% no MBPP e 43,0% no CodeContest, superando os métodos tradicionais. Notavelmente, o programa teve um desempenho muito bom no benchmark SWWEBench, que gera trechos de código para repositórios Github do mundo real. Ao adaptar sua estratégia a esta tarefa complexa, a CodeTree gerenciou com sucesso grandes campos de pesquisa. Os testes destacaram que o CodeTree supera estruturas sólidas como Reflection e MapCoder por margens significativas, especialmente para tarefas desafiadoras de nível competitivo.
Uma análise mais aprofundada revela as vantagens das técnicas de pesquisa CodeTree. A pesquisa em largura (BFS) provou ser mais eficaz do que a pesquisa em profundidade (DFS) para testar várias estratégias. O agente Critic desempenhou um papel importante, com tarefas como verificar a solução e encontrar pontos que melhorem significativamente o desempenho. Por exemplo, a exclusão destas funções resultou numa diminuição notável na precisão. A capacidade do CodeTree de alterar dinamicamente a profundidade e a amplitude dos testes garantiu que o programa pudesse se adaptar a problemas de complexidade variada, tornando-o uma ferramenta versátil para geração automatizada de código.
Os resultados mostram que o CodeTree não é apenas eficiente, mas também escalável. Mesmo com um orçamento de produção limitado de 20 amostras por problema, a estrutura alcançou alta precisão em todos os benchmarks. Esta eficiência sugere que o programa poderia ter um desempenho ainda melhor com um orçamento aumentado, destacando o seu potencial para aplicações práticas no desenvolvimento de software e em ambientes de programação competitivos.
Concluindo, CodeTree fornece uma maneira de revolucionar a geração automatizada de código, combinando testes sistemáticos com colaboração multiagente. A estrutura desenvolvida pela Salesforce Research aborda com eficácia as limitações dos métodos existentes, fornecendo uma solução robusta para enfrentar desafios complexos de codificação. Com sua capacidade de navegar em vários campos de pesquisa e alcançar alta precisão, o CodeTree estabelece um novo padrão para desenvolvimento futuro na área.
Confira Papel. Todo o crédito deste estudo vai para os pesquisadores deste projeto. Além disso, não se esqueça de nos seguir Twitter e junte-se ao nosso Estação telefônica de novo LinkedIn Gracima. Se você gosta do nosso trabalho, você vai gostar do nosso jornal.. Não se esqueça de participar do nosso SubReddit de 60k + ML.
🚨 [Must Attend Webinar]: 'Transforme provas de conceito em aplicativos e agentes de IA prontos para produção' (Promovido)
Nikhil é consultor estagiário na Marktechpost. Ele está cursando dupla graduação em Materiais no Instituto Indiano de Tecnologia, Kharagpur. Nikhil é um entusiasta de IA/ML que pesquisa constantemente aplicações em áreas como biomateriais e ciências biomédicas. Com sólida formação em Ciência de Materiais, ele explora novos desenvolvimentos e cria oportunidades para contribuir.
🚨🚨 WEBINAR DE IA GRATUITO: 'Acelere suas aplicações LLM com deepset e Haystack' (promovido)