Benchmark · coding
BigCodeBench
BigCodeBench es un benchmark de generación de código en Python con 1140 tareas de programación reales, cada una de las cuales exige combinar llamadas a varias bibliotecas; se puntúa con Pass@1 basado en ejecución: la fracción de tareas cuya solución generada supera todas las pruebas unitarias.
Leer más
- Ejemplo
- Una tarea típica da una firma de función más un docstring detallado —por ejemplo, «cargar un CSV, calcular estadísticas resumidas por grupo con pandas y luego dibujar un gráfico de barras con matplotlib»— y pide al modelo escribir un cuerpo que conecte correctamente varias llamadas a bibliotecas.
- Puntuación
- La métrica es Pass@1 calibrado, normalmente con decodificación voraz: cada programa generado se ejecuta contra las pruebas unitarias de la tarea en un entorno aislado, una tarea cuenta como resuelta solo si pasan todas las pruebas, y la puntuación es el porcentaje de tareas resueltas. Se reportan dos particiones —Complete (completar una función guiada por docstring) e Instruct (solo una instrucción en lenguaje natural)— más un subconjunto Hard de 148 tareas.
- Verificación
- La aceptación es únicamente por ejecución: la solución debe pasar todas las pruebas unitarias escritas a mano de la tarea (unas 5,6 por tarea, con ~99% de cobertura media de ramas) al ejecutarse en un entorno aislado. No hay crédito parcial ni comparación con un texto de referencia.
- Por qué importa
- A diferencia de benchmarks cortos de una sola función como HumanEval, BigCodeBench comprueba si un modelo puede seguir instrucciones complejas y usar correctamente APIs reales y diversas de 139 bibliotecas y 7 dominios, lo que refleja mejor el trabajo práctico con software; la partición Instruct y el subconjunto Hard exigen aún más el seguimiento de instrucciones y la composición de herramientas.
Ejemplo resuelto
Tarea
```python
import pandas as pd
import numpy as np
def task_func(df, column):
"""
Estandariza la columna numérica dada de un DataFrame a media cero
y varianza unitaria, y devuelve el DataFrame modificado.
Requirements:
- pandas
- numpy
Parameters:
df (pd.DataFrame): Los datos de entrada.
column (str): Nombre de la columna numérica a estandarizar.
Returns:
pd.DataFrame: El DataFrame con la columna estandarizada.
Example:
>>> df = pd.DataFrame({'a': [1, 2, 3, 4, 5]})
>>> round(task_func(df, 'a')['a'].mean(), 5)
0.0
"""
```
Solución
```python
df[column] = (df[column] - np.mean(df[column])) / np.std(df[column])
return df
```
Explicación
Restar la media de la columna y dividir por la desviación estándar poblacional (np.std, ddof=0) reescala los valores a media 0 y varianza unitaria, satisfaciendo el docstring y su doctest (la media se redondea a 0.0), y usa ambas librerías requeridas. La calificación se basa en la ejecución: BigCodeBench ejecuta la función completada contra las pruebas unitarias ocultas de la tarea y otorga Pass@1 solo si todas las pruebas pasan.
Aún no hay puntuaciones verificadas para este benchmark.