Bolt42

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


Amazon Web Services anunciou hoje a introdução do SWE-PolyBench, um benchmark abrangente multilingue projetado para avaliar assistentes de codificação em IA em uma variedade diversificada de linguagens de programação e cenários do mundo real. O benchmark aborda limitações significativas em estruturas de avaliação existentes e oferece novos métodos para pesquisadores e desenvolvedores avaliarem a eficácia dos agentes de IA na navegação por bases de código complexas.

“Agora eles têm um benchmark que podem usar para avaliar se os agentes de codificação são capazes de resolver tarefas complexas de programação”, disse Anoop Deoras, Diretor de Ciências Aplicadas para Aplicações de IA Generativa e Experiências de Desenvolvedor na AWS, em uma entrevista para o VentureBeat. “O mundo real oferece tarefas mais complexas. Para corrigir um bug ou desenvolver uma funcionalidade, é necessário trabalhar em vários arquivos, e não apenas em um único.”

O lançamento acontece em um momento em que ferramentas de codificação apoiadas por IA se tornaram extremamente populares, com grandes empresas de tecnologia as integrando em ambientes de desenvolvimento e produtos autônomos. Embora essas ferramentas demonstrem capacidades impressionantes, sua avaliação de desempenho continua sendo um desafio — especialmente em diferentes linguagens de programação e variadas complexidades de tarefas.

SWE-PolyBench contém mais de 2.000 desafios de codificação selecionados, derivados de questões reais do GitHub, abrangendo quatro linguagens: Java (165 tarefas), JavaScript (1.017 tarefas), TypeScript (729 tarefas) e Python (199 tarefas). O benchmark também inclui um subconjunto estratificado de 500 questões (SWE-PolyBench500) projetadas para experimentação mais rápida.

“A diversidade de tarefas e a diversidade das linguagens de programação estava faltando”, explicou Deoras sobre benchmarks existentes. “No SWE-Bench, atualmente, há apenas uma única linguagem de programação, Python, e uma única tarefa: correção de bugs. No PolyBench, ao contrário do SWE-Bench, expandimos este benchmark para incluir três linguagens adicionais.”

O novo benchmark aborda diretamente as limitações do SWE-Bench, que se tornou o padrão de fato para avaliação de agentes de codificação com mais de 50 submissões no ranking. Apesar de seu papel pioneiro, o SWE-Bench foca apenas em repositórios Python, predominantemente apresenta tarefas de correção de bugs, e está significativamente enviesado em relação a uma única base de código — o repositório do Django representa mais de 45% de todas as tarefas.

“Intencionalmente, decidimos ter uma representação um pouco maior para JavaScript e TypeScript, porque já temos o SWE-Bench com tarefas em Python”, observou Deoras. “Portanto, em vez de super-representar o Python, garantimos que temos representações suficientes para JavaScript e TypeScript, além de Java.”

Por que métricas simples de passar/falhar não contam toda a história sobre o desempenho da codificação em IA

Uma inovação chave no SWE-PolyBench é a introdução de métricas de avaliação mais sofisticadas além da tradicional “taxa de aprovação”, que simplesmente mede se um patch gerado resolve com sucesso uma questão de codificação.

“A avaliação desses agentes de codificação tem sido principalmente feita através da métrica chamada taxa de aprovação”, disse Deoras. “A taxa de aprovação, em resumo, é basicamente apenas uma proporção das tarefas que executam com sucesso após a aplicação do patch que os agentes estão produzindo. Mas esse número é uma estatística agregada muito superficial. Ele não lhe conta os detalhes minuciosos, e em particular, não lhe diz como o agente chegou a essa resolução.”

As novas métricas incluem a localização em nível de arquivo, que avalia a capacidade de um agente de identificar quais arquivos precisam ser modificados dentro de um repositório, e a recuperação em nível de nó da Árvore de Sintaxe Concreta (CST), que avalia quão precisamente um agente pode identificar estruturas de código específicas que requerem alterações.

“Além da taxa de aprovação, temos precisão e recall. E, para chegar à métrica de precisão e recall, estamos usando uma ferramenta de análise de programas chamada árvore de sintaxe concreta”, explicou Deoras. “Ela informa como sua estrutura de arquivo principal é composta, para que você possa observar qual é o nó da classe e, dentro dessa classe, quais são os nós de função e as variáveis.”

Como o Python permanece dominante enquanto tarefas complexas expõem limitações da IA

A avaliação da Amazon de vários agentes de codificação de código aberto no SWE-PolyBench revelou vários padrões. O Python continua sendo a linguagem mais forte para todos os agentes testados, provavelmente devido à sua prevalência nos dados de treinamento e benchmarks existentes. O desempenho se degrada à medida que a complexidade das tarefas aumenta, especialmente quando são necessárias modificações em três ou mais arquivos.

Diferentes agentes apresentam pontos fortes variados em categorias de tarefas. Enquanto o desempenho nas tarefas de correção de bugs é relativamente consistente, há mais variabilidade entre os agentes ao lidar com pedidos de recursos e refatoração de código.

O benchmark também descobriu que a clareza das descrições dos problemas impacta significativamente as taxas de sucesso, sugerindo que descrições de questões claras permanecem cruciais para uma assistência eficaz da IA.

O que o SWE-PolyBench significa para desenvolvedores empresariais que trabalham em várias linguagens

SWE-PolyBench chega em um momento crítico para o desenvolvimento de assistentes de codificação em IA. À medida que essas ferramentas passam de ambientes experimentais para ambientes de produção, a necessidade de benchmarks rigorosos, diversos e representativos se intensificou.

“Com o tempo, não apenas as capacidades dos LLMs evoluíram, mas ao mesmo tempo, as tarefas se tornaram cada vez mais complexas,” observou Deoras. “Há uma necessidade de os desenvolvedores resolverem tarefas cada vez mais complexas de forma síncrona usando esses agentes.”

O suporte expandido a linguagens do benchmark torna-o particularmente valioso para ambientes empresariais onde o desenvolvimento poliglota é comum. Java, JavaScript, TypeScript e Python estão consistentemente entre as linguagens de programação mais populares em configurações empresariais, tornando a cobertura do SWE-PolyBench altamente relevante para cenários de desenvolvimento do mundo real.

A Amazon tornou todo o framework do SWE-PolyBench publicamente disponível. O conjunto de dados está acessível no Hugging Face, e o suporte à avaliação está disponível no GitHub. Um ranking dedicado foi estabelecido para acompanhar o desempenho de vários agentes de codificação no benchmark.

“Estendemos o pipeline de aquisição de dados do SWE-Bench para suportar essas três linguagens adicionais,” disse Deoras. “A esperança é que possamos extrapolar esse processo no futuro e estender além de quatro linguagens, além das três tarefas que mencionei, para que este benchmark se torne ainda mais abrangente.”

À medida que o mercado de assistentes de codificação em IA esquenta com ofertas de todas as principais empresas de tecnologia, o SWE-PolyBench fornece uma importante verificação da realidade sobre suas capacidades reais. O design do benchmark reconhece que o desenvolvimento de software do mundo real exige mais do que simples correções de bugs em Python — é necessário trabalhar entre linguagens, entender bases de código complexas e lidar com desafios de engenharia diversos.

Para tomadores de decisão empresariais que avaliam ferramentas de codificação em IA, o SWE-PolyBench oferece algo inestimável: uma maneira de separar o hype de marketing da verdadeira capacidade técnica. Afinal, o verdadeiro teste de um assistente de codificação em IA não é o quão bem ele se sai em demonstrações simplificadas, mas se ele pode lidar com a complexidade desordenada e poliglota de projetos de software reais — o tipo de desafio que os desenvolvedores enfrentam todos os dias.





    quinze − 9 =




    Bolt42