Benchmark · coding
HumanEval
O HumanEval mede a capacidade de um modelo de escrever código Python correto a partir de uma descrição em linguagem natural; é pontuado por pass@1, a fração de problemas que ele resolve na primeira tentativa.
Saiba mais
- Exemplo
- Um item típico traz a assinatura de uma função e sua docstring — por exemplo, «retornar a lista de todos os números primos menores que n» — e o modelo precisa preencher o corpo da função.
- Pontuação
- A métrica é pass@1: cada solução gerada é executada contra testes unitários ocultos, e a pontuação é a porcentagem dos 164 problemas cuja solução passa em todos os seus testes.
- Verificação
- Totalmente automática: uma solução só conta como correta se passar em todos os testes unitários ocultos daquele problema; sem julgamento humano nem comparação exata de strings.
- Por que importa
- Foi um dos primeiros benchmarks de geração de código amplamente usados e virou referência padrão da habilidade de programação, embora os melhores modelos já pontuem tão alto que ele está praticamente saturado e mal os distingue.
Exemplo resolvido
Tarefa
Complete o corpo desta função Python para que ela passe nos testes unitários ocultos:
```python
from typing import List
def below_zero(operations: List[int]) -> bool:
"""You're given a list of deposit and withdrawal operations on a bank account starting at zero balance. Detect whether the balance ever drops below zero and return True at that point; otherwise return False.
>>> below_zero([1, 2, 3])
False
>>> below_zero([1, 2, -4, 5])
True
"""
```
Solução
from typing import List
def below_zero(operations: List[int]) -> bool:
balance = 0
for op in operations:
balance += op
if balance < 0:
return True
return False
Explicação
Mantém-se um saldo acumulado, soma-se cada operação em ordem e retorna-se True no instante em que ele fica negativo; se o laço terminar, o saldo nunca ficou abaixo de zero, então retorna False. O HumanEval avalia anexando a conclusão do modelo ao prompt e executando-a contra testes unitários ocultos (pass@k) — o item só conta como resolvido se todos os assert passarem.
| Data | Modelo | Pontuação | Fonte |
|---|---|---|---|
| 2026-07-16 | Granite 4.0 3B | 83.5% | IBM lança o CodeAlchemy, um conjunto de dados sintético massivo de código de alta qualidade |
| 2024-07-15 | Qwen2-72B | 64.6% | Relatório Técnico do Qwen2 apresenta modelos densos e MoE até 72B |
| 2024-07-15 | Qwen2-72B | 64.6% | Equipe Qwen lança série Qwen2 com modelos densos e MoE de 72B |
| 2024-06-20 | Claude 3.5 Sonnet | 92.0% | Anthropic lança adendo do Claude 3.5 Sonnet com benchmarks de codificação e visão aprimorados |
| 2024-06-20 | Claude 3.5 Sonnet | 92.0% | Anthropic |
| 2024-05-13 | GPT-4o | 90.2% | OpenAI |
| 2024-03-28 | Grok-1.5 | 74.1% | xAI lança Grok-1.5 com raciocínio aprimorado e contexto de 128K |
| 2023-03-14 | GPT-4 | 67.0% | OpenAI |