Benchmark · coding
MBPP
MBPP (Mostly Basic Python Problems) é um benchmark de geração de código com cerca de 1000 tarefas de programação em Python de nível iniciante, descritas em inglês simples e cada uma acompanhada de casos de teste automáticos. Ele mede com que frequência um modelo escreve uma função correta na primeira tentativa, reportado pela métrica pass@1.
Saiba mais
- Exemplo
- Um item típico pede que o modelo escreva uma pequena função em Python a partir de uma descrição de uma linha — por exemplo, «escreva uma função que retorne o n-ésimo número de Fibonacci» ou «verifique se uma string é um palíndromo» — que então é executada contra alguns testes baseados em assert.
- Pontuação
- A métrica é pass@1: para cada tarefa o modelo gera uma solução, e a pontuação é a fração de tarefas cujo código gerado passa em todos os casos de teste daquela tarefa.
- Verificação
- A solução é aceita automaticamente: a função gerada é executada contra os testes unitários baseados em assert da tarefa e só conta como correta se todos passarem (sem avaliação humana nem correspondência exata de texto).
- Por que importa
- MBPP é uma referência antiga e fácil de rodar para geração de código Python básico; como os modelos fortes de hoje pontuam perto do teto, ele é considerado saturado e serve mais como verificação de sanidade do que para distinguir os melhores sistemas.
Exemplo resolvido
Tarefa
Item no estilo MBPP: «Escreva uma função em python para contar o número de vogais (a, e, i, o, u) em uma string dada em minúsculas». Ele vem com três testes assert ocultos, por ex.
assert count_vowels('hello') == 2, assert count_vowels('world') == 1, assert count_vowels('rhythm') == 0; a função precisa ter o nome que os testes chamam.Solução
def count_vowels(s):
return sum(1 for ch in s if ch in 'aeiou')
Explicação
Percorrer a string e contar os caracteres do conjunto de vogais 'aeiou' produz 2, 1 e 0 para as três entradas, então todos os assert passam. O MBPP avalia a solução como aprovada/reprovada executando a função gerada contra os três testes assert fornecidos (correção funcional, pass@k).
| Data | Modelo | Pontuação | Fonte |
|---|---|---|---|
| 2026-07-16 | Granite 4.0 3B | 63.2% | IBM lança o CodeAlchemy, um conjunto de dados sintético massivo de código de alta qualidade |
| 2026-07-13 | Qwen3.5-4B | 13.0% | Flint comprime rastros de raciocínio para reduzir o uso de tokens enquanto mantém a precisão |
| 2024-12-17 | Falcon3-10B-Base | 73.8% | Família Falcon3 lança cinco modelos abertos com capacidades aprimoradas de ciência, matemática e código |