Benchmark · coding

RepoBench

0 resultados 0 modelos

O RepoBench é um benchmark de autocompletar código em nível de repositório para Python e Java que mede se um sistema consegue prever a próxima linha de código usando tanto o contexto dentro do arquivo quanto o contexto entre arquivos de outros arquivos do mesmo repositório. Tem três tarefas — recuperação (RepoBench-R), conclusão da próxima linha (RepoBench-C) e o pipeline de ponta a ponta (RepoBench-P) — avaliadas principalmente por Exact Match e Edit Similarity, e pela acurácia de recuperação na tarefa de recuperação.

Saiba mais
Exemplo
Dadas as linhas anteriores de um arquivo-fonte mais trechos de código extraídos de outros arquivos do mesmo repositório (por exemplo, um módulo que define uma função ou classe auxiliar), prever a única próxima linha de código — normalmente uma linha que chama ou referencia algo definido em outro arquivo.
Pontuação
Conclusão (RepoBench-C e -P): a próxima linha prevista é comparada com a linha de referência por Exact Match (porcentagem de linhas idênticas) e Edit Similarity (pontuação 0–100 = 1 − distância de edição de Levenshtein normalizada); o CodeBLEU também é reportado. Recuperação (RepoBench-R): accuracy@k — a fração de itens cujo trecho entre arquivos de referência está entre os k candidatos mais bem recuperados.
Verificação
A avaliação é automática e baseada em referência (sem execução de código): a linha de saída do modelo é normalizada e comparada como string com a verdadeira próxima linha reservada do repositório original. Sob Exact Match, uma conclusão conta como correta apenas se for idêntica caractere a caractere à linha de referência; Edit Similarity dá crédito parcial; uma recuperação é aceita quando o trecho de referência aparece entre os k primeiros.
Por que importa
Assistentes de código reais precisam raciocinar sobre um repositório inteiro, não apenas sobre o arquivo aberto. O RepoBench isola a modelagem do contexto entre arquivos — recuperar o contexto certo e prever a próxima linha que depende dele — por isso se tornou um campo de testes padrão para modelos de código cientes do repositório e de contexto longo.
Exemplo resolvido
Tarefa
Contexto entre arquivos (helpers/formatting.py): def to_title(text): return text.strip().title() Contexto dentro do arquivo (report.py): from helpers.formatting import to_title def make_heading(raw): Preveja a próxima linha.
Solução
return to_title(raw)
Explicação
A próxima linha reservada chama to_title — a função auxiliar definida no trecho entre arquivos e importada no topo — sobre o argumento da função, que é exatamente o que o código original do repositório fazia aqui; um modelo que ignorasse o outro arquivo não teria como saber que to_title é a chamada certa. Avaliação: Exact Match contra a linha de referência, com Edit Similarity dando crédito parcial para correspondências próximas.

Ainda não há pontuações verificadas para este benchmark.