Benchmark · coding
BigCodeBench
BigCodeBench adalah benchmark pembuatan kode Python berisi 1.140 tugas pemrograman dunia nyata, yang masing-masing menuntut penggabungan panggilan ke beberapa pustaka; dinilai dengan Pass@1 berbasis eksekusi — proporsi tugas yang solusi hasil generasinya lolos semua uji unit.
Selengkapnya
- Contoh
- Tugas yang umum memberikan tanda tangan fungsi plus docstring terperinci — misalnya 'muat sebuah CSV, hitung statistik ringkasan per grup dengan pandas, lalu gambar diagram batang dengan matplotlib' — dan meminta model menulis badan fungsi yang merangkai beberapa panggilan pustaka dengan benar.
- Penilaian
- Metriknya adalah Pass@1 terkalibrasi, biasanya dengan greedy decoding: setiap program hasil generasi dijalankan terhadap uji unit tugas dalam sandbox, sebuah tugas dihitung selesai hanya jika semua uji lolos, dan skornya adalah persentase tugas yang selesai. Dilaporkan dua pembagian — Complete (melengkapi fungsi yang kerangkanya disediakan docstring) dan Instruct (hanya instruksi bahasa alami) — ditambah subhimpunan Hard berisi 148 tugas.
- Verifikasi
- Penerimaan murni lewat eksekusi: solusi harus lolos semua uji unit tugas yang ditulis tangan (sekitar 5,6 per tugas, dengan rata-rata cakupan cabang ~99%) saat dijalankan di lingkungan terisolasi. Tidak ada nilai sebagian maupun pencocokan dengan teks acuan.
- Mengapa penting
- Berbeda dari benchmark pendek berfungsi tunggal seperti HumanEval, BigCodeBench menguji apakah model dapat mengikuti instruksi kompleks dan menggunakan beragam API dunia nyata dari 139 pustaka dan 7 domain dengan benar, yang lebih mencerminkan pekerjaan perangkat lunak praktis; pembagian Instruct dan subhimpunan Hard makin menekan kepatuhan instruksi dan komposisi alat.
Contoh penyelesaian
Tugas
```python
import pandas as pd
import numpy as np
def task_func(df, column):
"""
Standarkan kolom numerik tertentu dari sebuah DataFrame menjadi rata-rata nol
dan varians satu, lalu kembalikan DataFrame yang telah dimodifikasi.
Kebutuhan:
- pandas
- numpy
Parameter:
df (pd.DataFrame): Data masukan.
column (str): Nama kolom numerik yang akan distandarkan.
Mengembalikan:
pd.DataFrame: DataFrame dengan kolom yang telah distandarkan.
Contoh:
>>> df = pd.DataFrame({'a': [1, 2, 3, 4, 5]})
>>> round(task_func(df, 'a')['a'].mean(), 5)
0.0
"""
```
Solusi
```python
df[column] = (df[column] - np.mean(df[column])) / np.std(df[column])
return df
```
Penjelasan
Mengurangi rata-rata kolom lalu membaginya dengan simpangan baku populasi (np.std, ddof=0) menskalakan ulang nilai-nilai menjadi rata-rata 0 dan varians satu, memenuhi docstring beserta doctest-nya (rata-ratanya membulat ke 0.0), dan solusi ini memakai kedua library yang diwajibkan. Penilaian berbasis eksekusi: BigCodeBench menjalankan fungsi yang telah dilengkapi terhadap unit test tersembunyi milik tugas dan memberikan Pass@1 hanya jika setiap tes lolos.
Belum ada skor terverifikasi yang dilaporkan untuk benchmark ini.