Benchmark · coding
MBPP+
MBPP+ é uma versão do benchmark de programação MBPP (Mostly Basic Python Problems) com um conjunto de testes rigorosamente ampliado, construída com o framework EvalPlus. Mede a correção funcional das funções Python geradas pelo modelo e é reportada como pass@1.
Saiba mais
- Exemplo
- Um item típico traz uma breve descrição em linguagem natural de uma função básica de Python a ser escrita (por exemplo, “encontrar os elementos comuns de duas listas”), junto com algumas asserções de exemplo que fixam o comportamento esperado.
- Pontuação
- A métrica é pass@k, normalmente pass@1: uma tarefa conta como resolvida apenas se a função gerada passar em todos os testes; a pontuação é a porcentagem de tarefas resolvidas. pass@k é calculada com o estimador não enviesado padrão sobre n conclusões amostradas.
- Verificação
- Cada função candidata é executada em um sandbox contra o conjunto completo — as asserções originais do MBPP mais as entradas geradas automaticamente pelo EvalPlus (mutação ciente de tipos e semeadura com LLM, cerca de 35 vezes mais testes que o MBPP). É aceita para uma tarefa somente se passar em todos os testes dentro do limite de tempo.
- Por que importa
- O MBPP original inclui apenas cerca de três testes por problema, então um código sutilmente incorreto pode passar como falso positivo. O MBPP+ endurece a avaliação, de modo que as taxas de aprovação publicadas e os rankings dos modelos reflitam a correção real, e não um teste fraco.
Exemplo resolvido
Tarefa
Escreva uma função que encontre os elementos comuns de duas listas dadas e os retorne como uma lista ordenada de valores únicos. Seu código deve passar em testes como: assert shared_elements([1, 2, 3, 4], [3, 4, 5, 6]) == [3, 4]
Solução
```python
def shared_elements(list1, list2):
return sorted(set(list1) & set(list2))
```
Explicação
Interseccionar as duas listas como conjuntos e ordená-las produz os valores comuns únicos em ordem, satisfazendo as asserções. O MBPP+ ainda executa muitas entradas extras (listas vazias, duplicatas, casos maiores); com a nota pass@1, a solução só conta se passar em todas.
Ainda não há pontuações verificadas para este benchmark.