Benchmark · coding

RepoCoder

niche 0 hasil 0 model

RepoCoder mengevaluasi penyelesaian kode tingkat repositori: diberikan sebuah posisi dalam berkas sumber, model harus memprediksi kode yang hilang menggunakan konteks dari seluruh repositori. Benchmark RepoEval-nya melaporkan Exact Match dan Edit Similarity untuk penyelesaian baris dan pemanggilan API, serta tingkat kelulusan uji unit untuk badan fungsi utuh.

Selengkapnya
Contoh
Menyelesaikan sebuah baris yang ditulis separuh di dalam berkas repositori yang memanggil fungsi atau kelas yang didefinisikan di berkas lain pada proyek yang sama — model harus menggunakan konteks lintas-berkas repositori untuk menghasilkan penyelesaian yang benar.
Penilaian
Penyelesaian baris dan pemanggilan API dinilai dengan Exact Match (1 jika prediksi sama persis dengan kode acuan yang disembunyikan, jika tidak 0) dan Edit Similarity (1 − jarak Levenshtein ternormalisasi), dirata-ratakan atas semua sampel dalam persen. Penyelesaian badan fungsi dinilai lewat eksekusi: badan yang dihasilkan menggantikan aslinya dan harus lulus uji unit yang sudah ada di repositori.
Verifikasi
Untuk item baris/API, sebuah prediksi diterima per sampel dengan membandingkannya terhadap kode acuan yang disembunyikan dari repositori sumber — persis (EM) atau lewat kemiripan berbasis jarak sunting (ES). Penyelesaian fungsi hanya diterima bila uji unit milik repositori itu sendiri lulus terhadap badan yang dihasilkan. Repositori dipilih yang baru dan berkualitas tinggi untuk mengurangi kebocoran data pelatihan.
Mengapa penting
Pemrograman nyata terjadi di dalam basis kode besar yang sudah ada, bukan potongan terisolasi. RepoCoder/RepoEval menguji apakah model bisa menggunakan API, simbol, dan konvensi khusus proyek yang tersebar di banyak berkas — ukuran asisten koding yang lebih realistis daripada sintesis fungsi tunggal.
Contoh penyelesaian
Tugas
Penyelesaian tingkat baris (RepoEval). Di repositori, utils/config.py mendefinisikan pembantu load_config(path), dan trainer.py diawali from .utils.config import load_config. Berdasarkan kode di bawah ditambah konteks lintas-berkas yang diambil dari repositori, prediksikan satu baris berikutnya yang disembunyikan di dalam __init__: ```python class Trainer: def __init__(self, path): ```
Solusi
self.config = load_config(path)
Penjelasan
Benar karena load_config adalah pembantu milik repositori sendiri, diimpor di bagian atas trainer.py; hanya konteks lintas-berkas repositori yang mengungkapkannya, sehingga tebakan generik (misalnya menyisipkan pembacaan JSON) akan meleset. Baris ini dinilai dengan Exact Match terhadap acuan yang disembunyikan, dengan Edit Similarity memberi nilai sebagian.

Belum ada skor terverifikasi yang dilaporkan untuk benchmark ini.