Benchmark · coding

EvalPlus

0 hasil 0 model

EvalPlus menguji ketepatan kode buatan LLM secara ketat dengan memperluas benchmark HumanEval dan MBPP (sebagai HumanEval+ dan MBPP+) memakai jauh lebih banyak kasus uji; metriknya adalah pass@k (biasanya pass@1).

Selengkapnya
Contoh
Tugas melengkapi fungsi Python: diberikan tanda tangan fungsi dan docstring bahasa alami dengan beberapa contoh, model menulis badan fungsi, yang lalu dijalankan terhadap rangkaian uji yang jauh diperbesar dan menambahkan kasus tepi (masukan kosong, batas, nilai besar) yang terlewat oleh benchmark asli.
Penilaian
Metriknya adalah pass@k, hampir selalu pass@1. Sebuah soal dihitung terpecahkan hanya jika kode yang dihasilkan lulus semua uji (uji «base» asli ditambah uji «plus» baru). pass@k adalah penaksir tak bias: dengan n≥k sampel dan c yang benar, 1 − C(n−c, k)/C(n, k); skor yang dilaporkan adalah proporsi soal yang terpecahkan pada seluruh himpunan.
Verifikasi
Setiap solusi dijalankan di sandbox terhadap rangkaian lengkap base+plus dengan batas waktu per uji, dan diterima hanya jika semua assertion lulus. Masukan tambahan dibuat lewat mutasi sadar-tipe ditambah penyemaian oleh LLM, lalu disaring terhadap solusi rujukan tervalidasi, sehingga vonis «passed» berarti cocok dengan rujukan pada setiap masukan.
Mengapa penting
Rangkaian uji asli HumanEval/MBPP terlalu tipis dan meloloskan kode yang tampak benar padahal salah, sehingga menaksir ketepatan model terlalu tinggi; rangkaian EvalPlus yang ~80× (HumanEval+) dan ~35× (MBPP+) lebih besar menangkap kesalahan itu dan biasanya menurunkan pass@1 beberapa poin, menjadikannya standar yang lebih tepercaya untuk mengevaluasi LLM kode.
Contoh penyelesaian
Tugas
Butir representatif bergaya EvalPlus (HumanEval+) — lengkapi badan fungsi dari tanda tangan dan docstring-nya: ```python from typing import List def sum_even_at_odd_index(numbers: List[int]) -> int: """Return the sum of all even values located at odd indices. >>> sum_even_at_odd_index([3, 8, 7, 4, 5]) 12 >>> sum_even_at_odd_index([1, 3, 5]) 0 """ ```
Solusi
```python
def sum_even_at_odd_index(numbers: List[int]) -> int:
    return sum(n for i, n in enumerate(numbers) if i % 2 == 1 and n % 2 == 0)
```
Penjelasan
Solusi menelusuri daftar dengan enumerate, menyimpan nilai pada indeks ganjil (i % 2 == 1) yang genap (n % 2 == 0), lalu menjumlahkannya, cocok dengan kedua contoh docstring maupun kasus tepi seperti daftar kosong atau seluruhnya ganjil. Penilaiannya lulus/gagal: fungsi dijalankan terhadap seluruh rangkaian base+plus dan butir hanya dihitung jika semua uji lulus.

Belum ada skor terverifikasi yang dilaporkan untuk benchmark ini.