Benchmark · agentic
SWE-rebench
SWE-rebench é uma variante continuamente atualizada do benchmark de programação SWE-bench que retira tarefas de issues recentes do GitHub para reduzir a chance de o modelo já tê-las visto durante o treinamento. Ele reporta a porcentagem de tarefas de engenharia de software que o modelo resolve (% resolved).
Saiba mais
- Exemplo
- Um item típico entrega ao modelo um relatório de bug ou pedido de funcionalidade real de um repositório do GitHub, e ele precisa editar o código do projeto para resolver o problema.
- Pontuação
- A métrica é % resolved: o número de tarefas que o modelo corrige dividido pelo total de tarefas, expresso em porcentagem.
- Verificação
- Uma solução é aceita automaticamente quando a própria suíte de testes do repositório passa no código corrigido — a correção precisa deixar verdes os testes que falhavam sem quebrar os demais.
- Por que importa
- Como suas tarefas são renovadas a partir de issues recentes, ele oferece uma leitura mais limpa da real habilidade de programação, mais difícil de inflar decorando dados antigos e públicos de benchmarks.
Exemplo resolvido
Tarefa
Instância do SWE-rebench criada a partir de um repositório Python real do GitHub (
python-slugify), fixado em um commit base. Problema: slugify('Hello, World!') retorna 'hello--world' — separadores consecutivos geram um hífen duplicado em vez de um só, mas o slug esperado é 'hello-world'. Entrega: um patch git-diff sobre o snapshot do repositório que faça o teste FAIL_TO_PASS passar mantendo todos os testes PASS_TO_PASS verdes.Solução
--- a/slugify/slugify.py
+++ b/slugify/slugify.py
@@ def slugify(text):
text = re.sub(r"[^\w\s-]", "", text).strip().lower()
- return re.sub(r"[\s]+", "-", text)
+ text = re.sub(r"[\s]+", "-", text)
+ return re.sub(r"-{2,}", "-", text)
Explicação
O gerador de slug reduz os espaços a
- mas nunca elimina hífens repetidos, então vários separadores vazam; adicionar re.sub(r'-{2,}', '-', text) os normaliza para um único -. O SWE-rebench avalia por execução: aplica o patch no contêiner do repositório e marca a instância como resolvida só se o teste FAIL_TO_PASS agora passar e todos os testes PASS_TO_PASS continuarem passando (ranking = % resolvidas).