Benchmark · coding
DS-1000
DS-1000 es un benchmark de 1000 problemas reales de ciencia de datos recopilados de Stack Overflow y que abarcan siete librerías de Python (NumPy, Pandas, SciPy, scikit-learn, PyTorch, TensorFlow, Matplotlib); mide si un modelo genera código que resuelve correctamente cada problema, y se reporta como precisión de ejecución pass@1.
Leer más
- Ejemplo
- Un ítem representativo es una pregunta en lenguaje natural sobre cómo hacer algo con una librería concreta —por ejemplo, filtrar o transformar un DataFrame de Pandas, una operación sobre un array de NumPy o un gráfico de Matplotlib—, junto con un contexto de código inicial que el modelo debe completar (se ofrece en los formatos Completion e Insertion).
- Puntuación
- La métrica es la precisión de ejecución pass@1. Cada solución generada se ejecuta contra casos de prueba ocultos y cuenta como resuelta solo si pasa todas las pruebas Y cumple las restricciones surface-form (comprobaciones regex de que se usan las API requeridas y no los atajos prohibidos). La puntuación es la fracción de los 1000 problemas resueltos.
- Verificación
- La aceptación es totalmente automática: el programa completado se ejecuta en un entorno aislado (sandbox) y su salida se verifica en cuanto a corrección funcional frente a los casos de prueba, combinada con las restricciones surface-form. Esta comprobación multicriterio está diseñada para mantener bajas las tasas de falsa aceptación y falso rechazo, y los problemas se perturbaron respecto a sus originales de Stack Overflow para reducir la memorización.
- Por qué importa
- Refleja necesidades realistas y cotidianas de programación en ciencia de datos en lugar de acertijos sintéticos, cubre siete librerías ampliamente usadas y su evaluación fiable basada en ejecución lo convierte en una referencia común para medir modelos de generación de código en trabajo práctico de DS.
Ejemplo resuelto
Tarea
Problema: dado un DataFrame de Pandas df con una columna numérica 'value', produce un DataFrame que contenga solo las filas cuyo 'value' sea mayor que la media de la columna.
<code>
import pandas as pd
df = pd.DataFrame({'value': [1, 5, 3, 9, 2]})
</code>
BEGIN SOLUTION — asigna la respuesta a
result. (Ilustrativo, no un ítem oficial textual.)Solución
result = df[df['value'] > df['value'].mean()]
Explicación
El enmascaramiento booleano conserva las filas donde 'value' supera a df['value'].mean(); el harness ejecuta el script completado y compara result con el DataFrame esperado (por ejemplo, con las utilidades de prueba de pandas), mientras que las restricciones surface-form confirman que es una solución genuina de Pandas. Se califica como aprobado/reprobado según la ejecución.
Aún no hay puntuaciones verificadas para este benchmark.