Bolt42

Participe de nossos boletins diários e semanais para as últimas atualizações e conteúdo exclusivo sobre cobertura de IA líder da indústria. Saiba mais


Os grandes modelos de linguagem (LLMs) podem ter mudado o desenvolvimento de software, mas as empresas devem pensar duas vezes antes de substituir totalmente os engenheiros de software humanos por LLMs, apesar da afirmação do CEO da OpenAI, Sam Altman, de que os modelos podem substituir engenheiros de “nível baixo”.

Em um novo artigo, pesquisadores da OpenAI detalham como desenvolveram um benchmark de LLM chamado SWE-Lancer para testar quanto os modelos fundamentais podem ganhar com tarefas reais de engenharia de software freelance. O teste constatou que, enquanto os modelos podem resolver bugs, não conseguem entender por que o bug existe e continuam a cometer mais erros.

Os pesquisadores desafiaram três LLMs — o GPT-4o e o o1 da OpenAI e o Claude-3.5 Sonnet da Anthropic — com 1.488 tarefas de engenheiros de software freelance da plataforma Upwork, totalizando $1 milhão em pagamentos. Eles dividiram as tarefas em duas categorias: tarefas de contribuidores individuais (resolvendo bugs ou implementando recursos) e tarefas de gerenciamento (onde o modelo atua como um gerente que escolherá a melhor proposta para resolver questões).

“Os resultados indicam que o trabalho freelance do mundo real em nosso benchmark continua desafiador para modelos de linguagem avançados,” escrevem os pesquisadores.

O teste mostrou que modelos fundamentais não podem substituir totalmente os engenheiros humanos. Embora consigam ajudar a resolver bugs, ainda não estão no nível em que podem começar a ganhar dinheiro como freelancers sozinhos.

Benchmarking de modelos freelance

Os pesquisadores e outros 100 engenheiros de software profissionais identificaram tarefas potenciais no Upwork e, sem alterar nenhuma palavra, alimentaram essas tarefas em um container Docker para criar o dataset SWE-Lancer. O container não tem acesso à internet e não pode acessar o GitHub “para evitar a possibilidade de os modelos extraírem diffs de código ou detalhes de pull requests,” explicaram.

A equipe identificou 764 tarefas de contribuidores individuais, totalizando cerca de $414.775, que variavam de correções de bugs de 15 minutos a solicitações de recursos que duravam uma semana. Essas tarefas, que incluíam revisar propostas de freelancers e postagens de emprego, pagariam um total de $585.225.

As tarefas foram adicionadas à plataforma de expensas Expensify.

Os pesquisadores geraram prompts com base no título e descrição da tarefa e um instantâneo do código-fonte. Se houvesse propostas adicionais para resolver o problema, “também geramos uma tarefa de gerenciamento usando a descrição do problema e a lista de propostas,” explicaram.

A partir disso, os pesquisadores avançaram para o desenvolvimento de testes de ponta a ponta. Eles escreveram testes Playwright para cada tarefa que aplicam esses patches gerados, que foram então “triplo-verificados” por engenheiros de software profissionais.

“Os testes simulam fluxos de usuários do mundo real, como fazer login no aplicativo, realizar ações complexas (fazer transações financeiras) e verificar se a solução do modelo funciona como esperado,” explica o artigo.

Resultados do teste

Após a execução do teste, os pesquisadores descobriram que nenhum dos modelos ganhou o valor total de $1 milhão das tarefas. Claude 3.5 Sonnet, o modelo com melhor desempenho, ganhou apenas $208.050 e resolveu 26,2% dos problemas dos contribuintes individuais. No entanto, os pesquisadores destacam que “a maioria de suas soluções está incorreta e uma maior confiabilidade é necessária para uma implantação confiável.”

Os modelos se saíram bem na maioria das tarefas de contribuidores individuais, com Claude 3.5 Sonnet se destacando, seguido por o1 e GPT-4o.

“Os agentes se destacam em localizar, mas falham em identificar a causa raiz, resultando em soluções parciais ou defeituosas,” explica o relatório. “Os agentes localizam a origem de um problema de forma notavelmente rápida, usando buscas por palavras-chave em todo o repositório para localizar rapidamente o arquivo e as funções relevantes — muitas vezes muito mais rápido do que um humano faria. No entanto, geralmente exibem uma compreensão limitada de como o problema se estende por múltiplos componentes ou arquivos, e não abordam a causa raiz, levando a soluções que estão incorretas ou insuficientemente abrangentes. Rara vez encontramos casos em que o agente tenta reproduzir o problema ou falha devido a não encontrar o arquivo ou local correto para editar.”

Curiosamente, todos os modelos se saíram melhor em tarefas de gerenciamento que exigiam raciocínio para avaliar a compreensão técnica.

Esses testes de benchmark mostraram que modelos de IA podem resolver alguns problemas de codificação de “nível baixo” e ainda não podem substituir engenheiros de software de “nível baixo”. Os modelos ainda levam tempo, muitas vezes cometem erros e não conseguem rastrear um bug para encontrar a causa raiz dos problemas de codificação. Muitos engenheiros de “nível baixo” trabalham de forma mais eficiente, mas os pesquisadores afirmaram que isso pode não ser o caso por muito tempo.





    6 + 18 =




    Bolt42