SWE-bench (benchmark) (PT)
SWE-bench — é um benchmark (conjunto de tarefas de teste) em larga escala para avaliar as capacidades de modelos de linguagem grandes (LLMs) no campo do desenvolvimento automatizado e depuração de software[1]. Foi desenvolvido por um grupo de pesquisadores da Universidade de Princeton e outras organizações e apresentado na conferência ICLR 2024[2]. O SWE-bench se diferencia dos benchmarks de código tradicionais por utilizar tarefas reais da prática de desenvolvimento: o conjunto de testes inclui 2.294 tarefas baseadas em issues fechadas e pull requests correspondentes de 12 repositórios Python populares de código aberto no GitHub[1][3]. Cada tarefa contém a descrição do problema (issue) e fornece ao modelo acesso ao código-fonte do projeto correspondente; o objetivo do modelo é gerar as mínimas alterações na base de código (um patch) que corrijam o problema especificado[1][3].
Metodologia e Características da Avaliação
O SWE-bench modela o processo real de desenvolvimento de software. Para cada tarefa, o modelo recebe o texto do issue original do GitHub (descrição do problema) e um snapshot do código do repositório na versão anterior à correção[4]. O modelo (ou um agente baseado no modelo) precisa analisar o código-fonte, entender a natureza do erro ou da alteração necessária e fazer as edições nos arquivos de código correspondentes para resolver o problema[4][5]. A validação da solução é automatizada: cada tarefa está associada a testes unitários reais do pull request que fechou o problema. Entre eles, há tanto testes “falha-para-passar” (fail-to-pass, que não passam no código original, mas devem passar após a aplicação da correção correta) quanto testes de regressão (pass-to-pass, que passam inicialmente e devem continuar passando após as alterações)[3]. O patch proposto pelo modelo é aplicado ao código, e em seguida os testes correspondentes são executados: se todos os testes fail-to-pass começarem a passar e, ao mesmo tempo, os testes pass-to-pass não forem quebrados, a tarefa é considerada resolvida corretamente[3]. Essa abordagem de avaliação permite verificar não apenas a capacidade do modelo de gerar código sintaticamente correto, mas também sua habilidade de resolver efetivamente o problema proposto sem quebrar a funcionalidade existente. Para isso, o modelo precisa operar com um contexto grande (um repositório de código inteiro), entender as interdependências entre os componentes e coordenar alterações em vários arquivos simultaneamente[1] — tudo isso é significativamente mais complexo do que as tarefas típicas de escrever uma função a partir de uma descrição.
Em avaliações do SWE-bench, geralmente não participam apenas os LLMs em si, mas sistemas de agentes que envolvem o modelo com ferramentas auxiliares (por exemplo, para navegar por arquivos, executar código, usar um depurador, etc.)[4][6]. Tal sistema imita o ciclo real de desenvolvimento: o modelo pode visualizar arquivos sequencialmente, executar testes ou scripts e melhorar a solução passo a passo até alcançar um resultado bem-sucedido[4]. É notável que a eficácia na resolução das tarefas do SWE-bench depende em grande parte da qualidade desse “scaffolding” (infraestrutura do agente): os mesmos modelos base podem apresentar resultados diferentes dependendo de como a interação com o repositório e as ferramentas é organizada[4][7]. Assim, o SWE-bench serve como uma medida das capacidades do conjunto modelo e sua estratégia de resolução de problemas, aproximando a avaliação das condições reais de trabalho de um desenvolvedor de IA autônomo[4][7].
Variantes do Conjunto de Tarefas
Os autores do SWE-bench e a comunidade subsequentemente apresentaram vários conjuntos derivados para diferentes propósitos de avaliação:
- SWE-bench Lite — uma versão simplificada do benchmark, incluindo ~300 tarefas[8], selecionadas para reduzir a complexidade e os custos computacionais dos testes de modelos. Este subconjunto foi criado para experimentação rápida com modelos e exclui as validações mais trabalhosas, mantendo a representatividade dos problemas principais[7]. Essencialmente, o Lite contém tarefas mais simples e curtas de correção de bugs, e os resultados dos modelos no Lite são geralmente mais altos do que no conjunto completo, devido à exclusão dos casos mais complexos[7].
- SWE-bench Verified — um subconjunto filtrado por verificação manual, apresentado em agosto de 2024 em colaboração com a OpenAI[7]. Os pesquisadores contrataram 93 desenvolvedores profissionais para analisar cada tarefa do benchmark original e excluíram os casos em que a descrição do problema era muito vaga ou o comportamento exigido pelos testes não decorria explicitamente da declaração do problema[7]. Também foram removidas tarefas que, na prática, eram impossíveis de resolver devido a problemas de ambiente ou testes incorretos[7]. O resultado foi um conjunto de 500 tarefas garantidamente solucionáveis e corretamente formuladas[7]. O SWE-bench Verified visa fornecer uma avaliação mais confiável das capacidades dos modelos, eliminando casos em que até mesmo uma solução correta é rejeitada devido à inadequação dos testes ou da tarefa[7]. Este conjunto substituiu as amostras de teste originais do SWE-bench (completa e Lite) como a principal referência para comparação de modelos[7]. Além disso, junto com o Verified, foram publicadas avaliações de dificuldade das tarefas (por exemplo, destacando tarefas “fáceis”, que um humano resolve em <15 minutos, e “difíceis”, que exigem >1 hora)[7], e um novo framework de ferramentas baseado em Docker foi lançado para uma execução de testes mais estável e reprodutível[7].
- SWE-bench Multimodal — uma extensão do benchmark, apresentada em janeiro de 2025, que inclui tarefas onde a descrição do problema contém não apenas texto, mas também elementos visuais (por exemplo, imagens de interface, capturas de tela de erros, etc.)[8]. Este conjunto (517 tarefas[8]) testa a capacidade dos modelos e agentes de entender e utilizar informações visuais ao resolver problemas de programação. A avaliação no conjunto multimodal é organizada de forma semelhante, mas requer que o modelo tenha capacidades multimodais (por exemplo, reconhecimento de texto em imagens). A parte de teste do SWE-bench Multimodal é mantida fechada (oculta) para evitar o ajuste de soluções a respostas conhecidas; os desenvolvedores podem enviar soluções para um placar de líderes remoto para avaliar seus modelos nessas tarefas[2].
Além dessas variações principais, um ecossistema de ferramentas se formou em torno do SWE-bench: SWE-agent — um “agente” solucionador de software de código aberto que demonstra resultados de ponta nas tarefas do benchmark[2]; SWE-smith — um framework para treinar modelos de desenvolvedores próprios; SWE-REX — uma ferramenta para extração e processamento avançado de informações de repositórios, entre outros. Esses projetos visam simplificar a reprodutibilidade dos resultados e promover a pesquisa no campo de sistemas de programação autônomos.
Resultados e Progresso dos Modelos
Quando o SWE-bench apareceu pela primeira vez, revelou uma lacuna significativa entre os LLMs modernos e as habilidades de programadores experientes. Os autores relataram que mesmo os modelos mais poderosos do início de 2023 resolviam apenas alguns pontos percentuais das tarefas: por exemplo, o modelo Claude 2 da Anthropic resolveu com sucesso menos de 2% das tarefas do conjunto completo[1]. Um modelo especialmente treinado pelos autores do benchmark (baseado no LLaMA, chamado SWE-Llama) e modelos proprietários como o GPT-4 conseguiam resolver principalmente apenas os erros mais simples[1]. Essas métricas iniciais baixas destacaram a complexidade do SWE-bench e serviram de estímulo para o desenvolvimento de novas abordagens.
Ao longo de 2024, com o surgimento de modelos mais avançados e esquemas de agentes, os resultados melhoraram significativamente. Pesquisadores de Princeton apresentaram o sistema SWE-agent, que combina o GPT-4 com busca de código, planejamento e outras ferramentas; ele alcançou cerca de 12,5% de tarefas resolvidas no conjunto completo, estabelecendo uma nova referência para modelos acadêmicos[5]. Em meados de 2024, no placar de líderes oficial do SWE-bench, as melhores soluções (incluindo as proprietárias) alcançaram cerca de 20% de resoluções bem-sucedidas no benchmark completo e até 43% no conjunto simplificado Lite[7]. Esse crescimento está associado à melhoria dos modelos (por exemplo, o surgimento do GPT-4, Claude 2 e 3) e especialmente ao desenvolvimento do “scaffolding” — estratégias externas que permitem ao modelo dividir eficientemente a tarefa em etapas, ler documentação, iniciar sessões de depuração, etc.[7].
Após a introdução do conjunto Verified no final de 2024 (limpo de tarefas incorretas), o desempenho medido aumentou ainda mais. O modelo GPT-4 (variante GPT-4o) mostrou imediatamente cerca de 33% de soluções bem-sucedidas no Verified, em comparação com ~16% anteriormente no conjunto original[7]. Os melhores frameworks de agentes de código aberto (por exemplo, Agentless) dobraram seu resultado de ~16% para 32% no Verified[7]. Isso confirmou a suposição de que o benchmark original estava subestimando os indicadores devido à presença de casos insolúveis[7]. Ao mesmo tempo, a melhoria nos resultados do Verified em comparação com o Lite não foi tão dramática (os melhores modelos já atingiam ~43% no Lite), o que é lógico: o Lite selecionava inicialmente exemplos mais fáceis, enquanto o Verified removeu os impossíveis, mas manteve as tarefas complexas[7]. É importante notar que o aumento nos indicadores ao passar para o Verified ocorreu em todas as categorias de dificuldade das tarefas, e não apenas pela eliminação das mais difíceis — ou seja, a filtragem também removeu do conjunto os casos secretamente impossíveis entre as tarefas relativamente simples[7].
No início de 2025, os sistemas de IA líderes já demonstram uma eficácia próxima à humana no conjunto de tarefas verificado, embora o teto de 100% ainda esteja distante. Em janeiro de 2025, a Anthropic informou que seu novo modelo Claude 3.5 Sonnet, em conjunto com um agente aprimorado, resolveu 49% das tarefas do SWE-bench Verified[4], assumindo temporariamente o primeiro lugar. Grandes empresas de tecnologia e equipes independentes também participam ativamente de competições não oficiais neste benchmark. Por exemplo, a equipe CodeStory desenvolveu uma abordagem multi-modelo com tentativa e erro de variantes (“Midwit Agent”), que alcançou um recorde de 62,2% de tarefas resolvidas no Verified (dados do início de 2025)[5][9]. Foi observado que, para isso, foi necessário aumentar substancialmente os custos de recursos computacionais na fase de inferência do modelo (o chamado inference time scaling), executando múltiplas tentativas de solução e selecionando o melhor resultado[5]. Por sua vez, materiais da OpenAI mencionaram um sistema experimental GPT-03 que, com escalonamento suficiente de computação, supostamente ultrapassou a marca de 70% no Verified (dados não oficiais)[5]. No entanto, não há verificação independente desses resultados, e um indicador tão alto permanece mais como uma referência para pesquisas futuras do que um marco alcançado.
De acordo com um estudo da Microsoft Research (2025), mesmo os modelos mais recentes, quando equipados com ferramentas de depuração, ainda não ultrapassam a marca de 50% de correções de bugs bem-sucedidas do SWE-bench Lite[6]. Neste teste, o melhor desempenho foi do Claude 3.7 Sonnet, com ~48,4% das tarefas resolvidas, enquanto um sistema baseado no GPT-4 (OpenAI 01) resolveu cerca de 30%, e o modelo mais leve 03-mini, apenas 22%[6]. Esses resultados destacam que, apesar do rápido progresso, as IAs modernas ainda estão aquém dos programadores experientes: para um ser humano, resolver tarefas semelhantes (com compreensão do código) não apresenta dificuldades, enquanto o modelo muitas vezes não sabe como aplicar ferramentas de depuração de forma eficaz ou sofre com a falta de dados de treinamento que reflitam o processo de correção de erros em várias etapas[6].
Limitações e Perspectivas
O SWE-bench tornou-se uma plataforma padronizada para avaliar agentes de código inteligentes, no entanto, pesquisas também revelaram algumas de suas limitações. O principal problema é a incompletude dos testes: o conjunto de testes de verificação para cada tarefa é retirado de um pull request específico e geralmente inclui apenas os testes unitários que foram alterados durante a correção do erro[3]. Como mostrou uma análise de um grupo de cientistas da Universidade de Zhejiang e da Universidade de Stuttgart (Wang et al. 2025), ignorar os outros testes do projeto pode ocultar a incorreção de algumas soluções[3]. A re-verificação das soluções no conjunto completo de testes do repositório revelou que, em média, 7,8% dos patches marcados como bem-sucedidos no SWE-bench, na verdade, não passam em outros testes do projeto[3]. Isso leva a uma superestimação da métrica “tarefas resolvidas” em cerca de 4-6 pontos percentuais[3]. Um caso ainda mais sutil é quando o patch gerado passa em todos os testes originais, mas não é equivalente à solução do desenvolvedor e altera o comportamento do programa de forma diferente do esperado. Usando a geração de casos de teste adicionais (método PatchDiff), os pesquisadores descobriram que quase 30% das correções propostas pela IA se comportam de maneira diferente dos patches de referência, e cerca de 11% são inequivocamente erradas, embora não sejam detectadas pelos testes existentes[3]. Assim, as capacidades reais dos modelos podem ser superestimadas se nos basearmos apenas na passagem de um conjunto limitado de testes. Os criadores do SWE-bench reconhecem essa vulnerabilidade e enfatizam que o benchmark deve evoluir com o tempo: a cobertura de testes deve ser melhorada, verificações para a ausência de efeitos colaterais indesejados devem ser adicionadas, e a variedade de tipos de tarefas deve ser expandida[7]. O desenvolvimento de tais ferramentas de avaliação é uma parte importante da preparação para o surgimento de desenvolvedores de IA cada vez mais autônomos e poderosos, e a experiência com o SWE-bench mostra a necessidade de uma atenção cuidadosa à qualidade dos benchmarks[7].
O SWE-bench, sendo apenas um conjunto estático de tarefas, não cobre absolutamente todos os aspectos da programação, mas já se tornou o padrão de fato para a análise comparativa de modelos de código[3]. Ele é usado em trabalhos científicos para demonstrar novos métodos e algoritmos, bem como por grupos de pesquisa industriais para avaliar o potencial de sistemas destinados a automatizar a programação[3]. O crescimento constante dos resultados no SWE-bench entre 2023-2025 demonstra vividamente a rápida melhoria das capacidades dos LLMs na resolução de tarefas práticas de desenvolvimento. Ao mesmo tempo, ele serve como um barômetro de complexidade: mesmo aproximando-se de 50-60% de tarefas resolvidas, os modelos ainda estão longe de substituir completamente um ser humano, especialmente em condições de informação limitada e da necessidade de uma compreensão sutil dos requisitos[4][7]. No entanto, o progresso não para — graças a iniciativas como o SWE-bench, a comunidade vê claramente seus objetivos e limitações, e continua avançando em direção à criação de um desenvolvedor de IA completo, capaz de entender e corrigir código de programação de forma autônoma no nível de um especialista humano[4][7].
Ligações externas
Literatura
- Liang, P. et al. (2022). Holistic Evaluation of Language Models (HELM). arXiv:2211.09110.
- Chang, Y. et al. (2023). A Survey on Evaluation of Large Language Models. arXiv:2307.03109.
- Ni, S. et al. (2025). A Survey on Large Language Model Benchmarks. arXiv:2508.15361.
- Biderman, S. et al. (2024). The Language Model Evaluation Harness (lm-eval): Guidance and Lessons Learned. arXiv:2405.14782.
- Kiela, D. et al. (2021). Dynabench: Rethinking Benchmarking in NLP. arXiv:2104.14337.
- Ma, Z. et al. (2021). Dynaboard: An Evaluation‑As‑A‑Service Platform for Holistic Next‑Generation Benchmarking. arXiv:2106.06052.
- Goel, K. et al. (2021). Robustness Gym: Unifying the NLP Evaluation Landscape. arXiv:2101.04840.
- Xu, C. et al. (2024). Benchmark Data Contamination of Large Language Models: A Survey. arXiv:2406.04244.
- Liu, S. et al. (2025). A Comprehensive Survey on Safety Evaluation of LLMs. arXiv:2506.11094.
- Chiang, W.-L. et al. (2024). Chatbot Arena: An Open Platform for Evaluating LLMs by Human Preference. arXiv:2403.04132.
- Boubdir, M. et al. (2023). Elo Uncovered: Robustness and Best Practices in Language Model Evaluation. arXiv:2311.17295.
- Huang, L. et al. (2023). A Survey on Hallucination in Large Language Models. arXiv:2311.05232.
Notas
- ↑ 1.0 1.1 1.2 1.3 1.4 1.5 Jimenez, Carlos E. et al. “SWE-bench: Can Language Models Resolve Real-World GitHub Issues?”. arXiv. [1]
- ↑ 2.0 2.1 2.2 “SWE-bench/SWE-bench”. GitHub. [2]
- ↑ 3.00 3.01 3.02 3.03 3.04 3.05 3.06 3.07 3.08 3.09 3.10 Wang, Shuyang et al. “Are "Solved Issues" in SWE-bench Really Solved Correctly? An Empirical Study”. arXiv. [3]
- ↑ 4.0 4.1 4.2 4.3 4.4 4.5 4.6 4.7 4.8 “Claude SWE-Bench Performance”. Anthropic. [4]
- ↑ 5.0 5.1 5.2 5.3 5.4 Jain, Sulbha. “SWE Benchmark: LLM evaluation in Software Engineering Setting”. Medium. [5]
- ↑ 6.0 6.1 6.2 6.3 Hatmaker, Taylor. “AI models still struggle to debug software, Microsoft study shows”. TechCrunch. [6]
- ↑ 7.00 7.01 7.02 7.03 7.04 7.05 7.06 7.07 7.08 7.09 7.10 7.11 7.12 7.13 7.14 7.15 7.16 7.17 7.18 7.19 7.20 7.21 7.22 “Introducing SWE-bench Verified”. OpenAI. [7]
- ↑ 8.0 8.1 8.2 “SWE-bench Leaderboard”. [8]
- ↑ “SOTA on swebench-verified: relearning the bitter lesson”. Hacker News (Y Combinator). [9]