Benchmark · coding
CRUXEval
CRUXEval (Code Reasoning, Understanding, and eXecution Evaluation) mengukur seberapa baik model menalar tentang eksekusi kode pada 800 fungsi Python pendek, melalui dua tugas — memprediksi input yang menghasilkan output tertentu, dan memprediksi output untuk input tertentu — dinilai dengan kebenaran fungsional pass@1.
Selengkapnya
- Contoh
- Sebuah fungsi Python pendek dan mandiri ditampilkan. Dalam prediksi output, model diberi input tertentu dan harus menyebutkan nilai persis yang dikembalikan fungsi; dalam prediksi input, model diberi output dan harus menyediakan input apa pun yang mereproduksinya.
- Penilaian
- Metriknya adalah pass@1 (pass@k juga dilaporkan menggunakan estimator tak bias standar): model menghasilkan satu atau lebih jawaban per soal, masing-masing diperiksa dengan menjalankan fungsi, dan skornya adalah fraksi dari 800 soal yang terpecahkan, dilaporkan terpisah untuk CRUXEval-I (input) dan CRUXEval-O (output).
- Verifikasi
- Setiap prediksi diverifikasi melalui eksekusi, bukan pencocokan string. Jawaban output hanya diterima jika sama dengan nilai kembalian sebenarnya dari fungsi; jawaban input hanya diterima jika, saat dimasukkan ke fungsi, benar-benar menghasilkan output target, sehingga input valid apa pun berlaku, bukan hanya yang asli.
- Mengapa penting
- Memprediksi perilaku eksekusi memisahkan penalaran kode dari penulisan kode — model bisa menghasilkan kode yang tampak masuk akal tanpa melacak apa yang sebenarnya dilakukannya. Fungsi-fungsinya sederhana dan mandiri, menjadikan CRUXEval penguji yang bersih untuk keterampilan itu, dan kedua arah menguji penalaran maju (output) maupun mundur (input).
Contoh penyelesaian
Tugas
def f(nums):
result = []
for n in nums:
result.append(n * 2)
return result
assert f([1, 2, 3]) == ??
CRUXEval-O (prediksi output): ganti ?? dengan nilai yang dikembalikan f.
Solusi
[2, 4, 6]
Penjelasan
Loop menggandakan setiap elemen [1, 2, 3], menghasilkan [2, 4, 6]. Penilaian menjalankan assert f([1, 2, 3]) == [2, 4, 6] dan hanya menerima jawaban jika asersi itu lolos.
Belum ada skor terverifikasi yang dilaporkan untuk benchmark ini.