Benchmark · coding

CRUXEval

0 resultados 0 modelos

CRUXEval (Code Reasoning, Understanding, and eXecution Evaluation) mide qué tan bien un modelo razona sobre la ejecución de código en 800 funciones cortas de Python, mediante dos tareas —predecir una entrada que produzca una salida dada y predecir la salida para una entrada dada— puntuadas por corrección funcional pass@1.

Leer más
Ejemplo
Se muestra una función de Python corta y autocontenida. En la predicción de salida se da al modelo una entrada concreta y debe indicar el valor exacto que devuelve la función; en la predicción de entrada se le da la salida y debe proponer cualquier entrada que la reproduzca.
Puntuación
La métrica es pass@1 (también se informa pass@k con el estimador insesgado estándar): el modelo genera una o más respuestas por problema, cada una se comprueba ejecutando la función, y la puntuación es la fracción de los 800 problemas resueltos, por separado para CRUXEval-I (entrada) y CRUXEval-O (salida).
Verificación
Cada predicción se verifica por ejecución, no por coincidencia de cadenas. Una respuesta de salida se acepta solo si es igual al valor de retorno real de la función; una respuesta de entrada se acepta solo si, al pasarla a la función, produce realmente la salida objetivo, por lo que sirve cualquier entrada válida, no solo la original.
Por qué importa
Predecir el comportamiento de ejecución aísla el razonamiento sobre código de la escritura de código: un modelo puede generar código plausible sin seguir lo que realmente hace. Las funciones son simples y autocontenidas, lo que hace de CRUXEval una prueba limpia de esa habilidad, y las dos direcciones evalúan el razonamiento hacia adelante (salida) y hacia atrás (entrada).
Ejemplo resuelto
Tarea
def f(nums): result = [] for n in nums: result.append(n * 2) return result assert f([1, 2, 3]) == ?? CRUXEval-O (predicción de salida): reemplaza ?? por el valor que devuelve f.
Solución
[2, 4, 6]
Explicación
El bucle duplica cada elemento de [1, 2, 3], produciendo [2, 4, 6]. La calificación ejecuta assert f([1, 2, 3]) == [2, 4, 6] y acepta la respuesta solo si esa aserción pasa.

Aún no hay puntuaciones verificadas para este benchmark.