Benchmark · coding
BigCodeBench
BigCodeBench é um benchmark de geração de código em Python com 1.140 tarefas de programação reais, cada uma exigindo combinar chamadas a várias bibliotecas; é pontuado por Pass@1 baseado em execução — a fração de tarefas cuja solução gerada passa em todos os testes unitários.
Saiba mais
- Exemplo
- Uma tarefa típica fornece a assinatura de uma função mais um docstring detalhado — por exemplo, «carregar um CSV, calcular estatísticas resumidas por grupo com pandas e então desenhar um gráfico de barras com matplotlib» — e pede que o modelo escreva um corpo que conecte corretamente várias chamadas de biblioteca.
- Pontuação
- A métrica é Pass@1 calibrado, geralmente com decodificação gulosa: cada programa gerado é executado contra os testes unitários da tarefa em um sandbox, uma tarefa conta como resolvida só se todos os testes passarem, e a pontuação é a porcentagem de tarefas resolvidas. São reportadas duas divisões — Complete (completar uma função esboçada pelo docstring) e Instruct (apenas uma instrução em linguagem natural) — além de um subconjunto Hard de 148 tarefas.
- Verificação
- A aceitação é puramente por execução: a solução precisa passar em todos os testes unitários escritos à mão da tarefa (cerca de 5,6 por tarefa, com ~99% de cobertura média de ramos) ao ser executada em ambiente isolado. Não há crédito parcial nem comparação com texto de referência.
- Por que importa
- Diferente de benchmarks curtos de função única como o HumanEval, o BigCodeBench testa se um modelo consegue seguir instruções complexas e usar corretamente APIs reais e diversas de 139 bibliotecas e 7 domínios, o que reflete melhor o trabalho prático com software; a divisão Instruct e o subconjunto Hard exigem ainda mais o seguimento de instruções e a composição de ferramentas.
Exemplo resolvido
Tarefa
```python
import pandas as pd
import numpy as np
def task_func(df, column):
"""
Padroniza a coluna numérica indicada de um DataFrame para média zero
e variância unitária, e retorna o DataFrame modificado.
Requirements:
- pandas
- numpy
Parameters:
df (pd.DataFrame): Os dados de entrada.
column (str): Nome da coluna numérica a ser padronizada.
Returns:
pd.DataFrame: O DataFrame com a coluna padronizada.
Example:
>>> df = pd.DataFrame({'a': [1, 2, 3, 4, 5]})
>>> round(task_func(df, 'a')['a'].mean(), 5)
0.0
"""
```
Solução
```python
df[column] = (df[column] - np.mean(df[column])) / np.std(df[column])
return df
```
Explicação
Subtrair a média da coluna e dividir pelo desvio padrão populacional (np.std, ddof=0) reescala os valores para média 0 e variância unitária, satisfazendo o docstring e seu doctest (a média arredonda para 0.0), e usa as duas bibliotecas exigidas. A avaliação é baseada em execução: o BigCodeBench roda a função completada contra os testes unitários ocultos da tarefa e concede Pass@1 apenas se todos os testes passarem.
Ainda não há pontuações verificadas para este benchmark.