Blog

Cara Membaca Benchmark Coding AI dan Menghindari Memilih Pemenang di Atas Kertas

Markdown

Apa yang diukur HumanEval dan SWE-bench, serta cara mempertimbangkan pembungkus agen, kondisi, kebaruan tugas, variasi, dan biaya saat membaca peringkat coding AI.

Baca artikel lengkap

Singkatnya: angka “menyelesaikan 76 persen tugas” hampir tidak berarti apa-apa jika berdiri sendiri. Yang penting adalah kumpulan tugas mana yang menghasilkan angka itu, model dan pembungkus agen mana yang dihitung bersama, apakah tugasnya baru atau lama, dan berapa biayanya. Tanpa kondisi-kondisi ini, persentase itu cocok untuk spanduk iklan, tetapi tidak untuk memilih alat.

Berikutnya, saya akan menjelaskan dengan bahasa sederhana apa yang diukur oleh dua benchmark coding utama, di mana letak jebakan dalam tabel, dan cara memeriksa peringkat apa pun dalam satu menit sebelum mengandalkannya. Definisi benchmark historis dibahas di bawah. Tidak ada snapshot langsung papan peringkat berpasangan yang disajikan di sini; perbandingan skor atau biaya saat ini memerlukan tabel tertaut, tanggal, dan konfigurasinya sendiri.

Baca lebih lanjut tentang cara bekerja dengan model di dokumentasi Ailoot.

Apa sebenarnya yang ditunjukkan persentase benchmark?

Poin utama

Persentase benchmark adalah bagian dari tugas dalam kumpulan tertentu yang diselesaikan alat dengan hasil yang berfungsi dalam kondisi tertentu. Tugas diperiksa dengan tes otomatis: kodenya lulus tes atau tidak; evaluasinya jujur dan tidak ada “kurang lebih.” Namun, kumpulan tugas selalu sempit dan sudah diketahui sebelumnya, sementara kondisi pengukurannya berbeda-beda. Jadi, angka itu menjawab pertanyaan, “Berapa banyak dari tugas-tugas ini yang diselesaikan alat ini dengan cara ini?” Angka itu tidak menjawab pertanyaan, “Apakah alat ini bisa menangani pekerjaan saya?”

Cara kerja benchmark sederhana. Ada daftar tugas pemrograman yang sudah disiapkan. Alat diberi setiap tugas, mengirimkan kode, lalu sistem menjalankan tes otomatis untuk melihat apakah solusinya berfungsi. Bagian tugas yang lulus menjadi persentase yang ditampilkan di tabel.

Keunggulannya adalah evaluasinya objektif. Tes itu lulus atau gagal; tidak ada yang memberi nilai berdasarkan “perkiraan.” Dalam hal ini, benchmark lebih jujur daripada ulasan atau testimoni mana pun.

Kelemahannya persis sama. Kumpulan tugas terbatas dan sudah diketahui semua orang, termasuk mereka yang melatih model. Setiap pengukuran memiliki kondisinya sendiri. Dan tugas dalam kumpulan itu hampir pasti tidak sama dengan pekerjaan Anda. Hal ini memunculkan semua jebakan yang saya bahas di bawah. Persentase itu menggambarkan perilaku alat pada daftar tugas tertutup milik orang lain, dan tidak langsung berlaku untuk proyek Anda.

Apa yang diukur HumanEval, dan mengapa Anda tidak bisa lagi memilih alat berdasarkan itu?

Poin utama

HumanEval adalah kumpulan lama berisi 164 tugas kecil Python: model diberi deskripsi fungsi, menulis kode, lalu tes otomatis memeriksa tugas tersebut. Saat dirilis pada 2021, Codex pertama menyelesaikan 28,8 persen tugas dalam satu kali percobaan. Kini, model-model kuat menyelesaikan hampir semuanya, sehingga benchmark ini tidak lagi bisa membedakan mereka. Selain itu, tugasnya berupa soal mainan: satu fungsi berdasarkan deskripsi sangat jauh dari pekerjaan di proyek besar yang aktif. Skor HumanEval yang tinggi pada 2026 hampir tidak berarti apa-apa.

HumanEval dibuat di OpenAI dan dirilis pada 2021 bersama model Codex. Isinya 164 tugas kecil Python: model diberi deskripsi fungsi dalam kata-kata, menulis isi fungsinya, lalu serangkaian tes otomatis memeriksa apakah fungsi itu bekerja dengan benar.

Pada saat itu, benchmark ini menjadi pembeda yang baik. Dalam makalah mereka sendiri, para penulis menyebutkan angka ini: Codex pertama menyelesaikan 28,8 persen tugas dalam satu kali percobaan, sementara GPT-3 biasa tidak menyelesaikan satu pun.

Di HumanEval, model kami menyelesaikan 28,8 persen masalah, sedangkan GPT-3 menyelesaikan 0 persen dan GPT-J menyelesaikan 11,4 persen.

— OpenAI, artikel “Evaluating Large Language Models Trained on Code,”

Sejak itu, model berkembang, dan kini model-model yang kuat menyelesaikan hampir seluruh HumanEval. Ketika semua model mendapat skor mendekati 100 persen, tabel itu tak lagi membedakan apa pun: perbedaan antaralat jadi tidak terlihat. Ini disebut saturasi benchmark, dan HumanEval sudah lama berada dalam kondisi tersebut.

Kelemahan kedua lebih serius. Tugasnya sangat kecil: menulis satu fungsi berdasarkan deskripsi. Pekerjaan nyata Anda berbeda—melibatkan proyek besar dengan riwayat, di mana Anda perlu memahami kode orang lain, menemukan cacat, dan menghindari kerusakan pada kode di sekitarnya. Ada jurang antara “menulis fungsi dari awal” dan “memperbaiki bug di proyek aktif.” Jadi, skor HumanEval yang tinggi saat ini bukan lagi alasan untuk memilih alat; skor itu lebih mirip tanda bahwa “dasar-dasarnya sudah dikuasai.”

Apa yang diukur SWE-bench, dan mengapa benchmark ini lebih dekat dengan pekerjaan nyata?

Poin utama

SWE-bench disusun dari cacat nyata di proyek GitHub populer: 2.294 tugas dari 12 repositori Python. Alat diberi deskripsi masalah, mengedit kode, lalu sistem menjalankan tes yang gagal sebelum perubahan dan seharusnya lulus setelah perbaikan. Ini jauh lebih dekat dengan pekerjaan nyata daripada HumanEval, sehingga digunakan untuk membandingkan alat-alat serius. Tingkat kesulitannya terlihat jelas dari riwayatnya: pendekatan sederhana pertama hanya menyelesaikan kurang dari dua persen tugas.

SWE-bench pada dasarnya berbeda, dan karena itu lebih menarik. Benchmark ini dibuat dari masalah dan pull request nyata di proyek GitHub populer. Menurut para penulisnya, benchmark ini memuat 2.294 tugas dari 12 repositori Python besar dan dirilis pada Oktober 2023.

Logika evaluasinya jujur. Mereka mengambil titik dalam proyek yang memiliki cacat nyata dan serangkaian tes yang saat itu gagal. Alat diberi deskripsi masalah dan mengedit kode. Lalu tes yang sama dijalankan: jika tes itu berubah menjadi lulus, berarti tugasnya benar-benar diselesaikan; tidak ada yang di sini mempercayai janji lisan.

Kami mengumpulkan 2.294 tugas dengan menelusuri pull request dan masalah dari 12 repositori Python populer. Setiap tugas didasarkan pada pull request yang terhubung ke suatu masalah dan mengubah setidaknya satu berkas terkait tes.

— SWE-bench, situs web resmi benchmark

Angka-angka awal menunjukkan betapa lebih sulitnya benchmark ini dibandingkan tugas mainan. Pendekatan baseline pertama hanya mendapat skor 1,96 persen pada SWE-bench, dan agen pertama mendapat skor 12,47 persen. Dengan kata lain, bahkan untuk mendekati pekerjaan coding nyata saja sudah sulit; persentasenya kemudian meningkat, tetapi awalnya nyaris nol.

Jadi, saat ini angka besar dalam peringkat agen coding AI paling sering berasal dari SWE-bench atau subset-nya yang diverifikasi manusia dan berisi 500 tugas, bernama SWE-bench Verified. Ini benchmark yang masuk akal. Namun, benchmark ini juga memiliki kondisi yang jika diabaikan membuat persentasenya menyesatkan, dan itulah yang akan saya bahas selanjutnya.

Bahkan benchmark paling jujur di dalam tabel belum menunjukkan hasil pada proyek Anda. Hasilnya bergantung pada cara Anda bekerja dengan alat tersebut, dan baris teratas dalam peringkat hanya menentukan sedikit. Untuk pekerjaan yang andal, yang penting adalah kombinasinya: klon AI, Second Brain, dan rekayasa konteks. Konteks yang bersih meningkatkan tingkat keberhasilan pribadi Anda jauh lebih nyata daripada memilih model dari sebuah tabel.

Mengapa model yang sama menunjukkan persentase berbeda?

Poin utama

Karena hasilnya bergantung pada lebih dari sekadar model. Setidaknya ada tiga hal yang terlibat dalam setiap pengukuran: model itu sendiri, pembungkus agen yang mengelilinginya, dan tingkat penalaran yang diaktifkan. Mengubah pengaturan penalaran dapat menghasilkan baris berbeda untuk model dan pembungkus agen yang sama. Tanpa nama harness, revisi, pengaturan, dan sumber bertanggal, baris tersebut tidak mendukung perbandingan numerik. Jadi, Anda perlu membandingkan kombinasi lengkapnya; nama merek model saja tidak banyak menentukan hasil.

Di sinilah kesalahan paling umum saat membaca benchmark tersembunyi. Orang membaca tabel sebagai peringkat model: model ini dua persen lebih pintar daripada model itu. Namun, persentase dipengaruhi tiga hal, dan model hanya salah satunya.

Pertama, model itu sendiri. Kedua, pembungkus agen di sekelilingnya: program yang memungkinkan model menelusuri berkas, menjalankan perintah, membaca kesalahan, dan menulis ulang kode. Model yang sama dalam pembungkus cerdas dan pembungkus sederhana akan menunjukkan hasil berbeda karena pembungkus menentukan cara model bekerja dengan proyek. Ketiga, tingkat penalaran—yaitu seberapa dalam model memikirkan setiap langkah. Semakin lama model berpikir, biasanya semakin tinggi persentasenya dan semakin besar biayanya.

Perbandingan yang dapat direproduksi harus mempertahankan seluruh pengaturan. Gunakan ini sebagai templat pelaporan, bukan papan peringkat terukur:

FieldProses AProses B
Model dan versi tepatCatat versi yang diujiVersi sama untuk perbandingan terkontrol
Harness agen dan revisiCatat repositori dan commitHarness serta commit sama
Kumpulan tugas dan penilaianCatat subset dan revisi evaluasiKumpulan tugas serta penilaian sama
Pengaturan penalaranCatat pengaturan ACatat pengaturan B
Hasil dan buktiJumlah terselesaikan, penyebut, log, tanggalJumlah terselesaikan, penyebut, log, tanggal

Ini membantu melihat apa yang berubah dan apakah perbandingan benar-benar mengisolasi pengaturan penalaran. Contoh numerik sebelumnya yang tanpa tautan tidak diperlakukan sebagai hasil terukur.

Aturannya begini: peringkat yang baik selalu menyebutkan model, pembungkus, dan tingkat penalaran yang digunakan. Jika tabel hanya mencantumkan nama model dan persentase tanpa menyebutkan pembungkusnya, sulit untuk memercayainya: Anda tidak tahu apa yang sebenarnya diukur. Penjelasan lebih lanjut tentang komponen kombinasi “model plus pembungkus” ada dalam artikel tentang peringkat agen coding AI.

Hal ini juga menjelaskan mengapa alat dengan skor tertinggi kadang kesulitan saat Anda menggunakannya. Benchmark mengukur model di dalam pembungkus yang disempurnakan oleh orang lain, pada tugas milik orang lain. Pembungkus, proyek, dan konteks yang Anda berikan kepada model berbeda. Pada proyek Anda, hasilnya bergantung pada konteks; baris tabel berada di urutan kedua.

Mengapa tugas bisa “kedaluwarsa,” dan apa itu kebocoran data pelatihan?

Poin utama

Model dilatih dengan teks dan kode dalam jumlah sangat besar dari internet, sementara benchmark populer tersedia untuk umum. Jika tugas dan solusinya masuk ke dalam data pelatihan, model mungkin telah menghafalnya dan sekadar mereproduksi hafalan itu saat evaluasi, alih-alih menyelesaikan tugas. Ini disebut kebocoran tugas ke dalam pelatihan. Semakin lama dan semakin dikenal suatu kumpulan, semakin tinggi risikonya: benchmark lama lebih mungkin menunjukkan ingatan model daripada kemampuan penalarannya. Kumpulan tugas baru dan tertutup lebih andal daripada yang lama dan tersedia untuk umum.

Inilah jebakan yang tidak terlihat pada angkanya sendiri, tetapi paling merusak maknanya. Model dilatih dengan teks dan kode dalam jumlah besar yang dikumpulkan dari internet. Dan hampir semua benchmark coding tersedia untuk umum: tugas, tes, dan solusi acuannya.

Mekanismenya sederhana. Jika suatu tugas dan solusi yang benar masuk ke data pelatihan, model mungkin telah menghafalnya. Saat dievaluasi, model sebenarnya bukan menyelesaikan tugas, melainkan mengambil jawaban yang sudah dikenalnya dari ingatan. Hasilnya tampak seperti solusi, tetapi sebenarnya hanya hafalan. Ini disebut kebocoran pelatihan atau kontaminasi data.

Semakin lama dan semakin populer kumpulan tugas, semakin tinggi risikonya. HumanEval sudah tersedia daring sejak 2021; benchmark ini sudah ditulis ulang, dianalisis, dan berkali-kali dimasukkan ke dalam banyak kumpulan data. Aneh jika mengharapkan model modern belum pernah “melihatnya.” Karena itu, kebaruan tugas menjadi indikator kualitas benchmark tersendiri. Kumpulan yang baik diperbarui secara berkala atau menyimpan sebagian tugas secara tertutup agar tidak bisa dipelajari sebelumnya.

Apa yang harus Anda lakukan saat membaca peringkat? Periksa tanggal tugas dan apakah kumpulannya diperbarui. Jika benchmark dibuat dari cacat baru dalam beberapa bulan terakhir, hasilnya lebih layak dipercaya. Jika kumpulannya berasal dari lima tahun lalu, persentase tinggi di dalamnya lebih banyak menunjukkan ingatan model yang baik daripada kemampuannya menyelesaikan tugas baru Anda. Efek persis ini ditunjukkan dengan contoh konkret dalam artikel tentang benchmark FrontierCode yang baru, yang tugas-tugasnya sengaja dibuat baru.

Mengapa selisih beberapa poin persentase sering kali tidak berarti apa-apa?

Poin utama

Benchmark memiliki variasi: alat yang sama pada tugas yang sama memberi hasil sedikit berbeda dalam setiap percobaan karena model tidak selalu merespons dengan cara yang sama. Karena itu, selisih satu atau dua poin antara baris-baris yang berdekatan dalam peringkat sering kali hilang dalam derau dan tidak menunjukkan keunggulan nyata. Periksa juga harganya secara terpisah: persentase yang mirip bisa berbiaya berkali-kali lipat. Bandingkan biaya hanya ketika kedua pengaturan lengkap, tingkat keberhasilan, asumsi penagihan, dan penyebut biaya dijelaskan.

Hal lain yang membuat posisi teratas dalam tabel menyesatkan adalah model tidak memberikan respons yang sama setiap kali. Untuk prompt yang sama, model bisa mengambil alur penalaran yang sedikit berbeda. Jadi, jika Anda menjalankan satu alat beberapa kali pada satu kumpulan tugas, persentasenya sedikit berubah dari satu percobaan ke percobaan lain, dan perubahan ini disebut variasi.

Kesimpulan praktisnya sederhana. Ketika dua baris dalam peringkat hanya berbeda satu atau dua persen, perbedaan itu bisa saja sekadar derau. Mengejar alat yang “dua persen lebih tinggi” tidak masuk akal: posisi mereka bisa saja bertukar pada percobaan berikutnya. Perbedaan layak dianggap signifikan jika terlihat jelas dan bertahan pada kumpulan tugas yang besar; selisih beberapa poin tidak memenuhi kriteria itu.

Hal terakhir, yang hampir selalu lebih penting daripada persentasenya sendiri, adalah harga. Hasil yang mirip bisa berbiaya sangat berbeda. Perbandingan biaya memerlukan kedua konfigurasi model beserta harness dan seluruh pengeluaran pada kumpulan tugas evaluasi, termasuk upaya gagal. Bagi dengan tugas yang dicoba untuk biaya per upaya, atau dengan tugas terselesaikan untuk biaya per tugas terselesaikan, dan beri label ukuran yang digunakan. Artikel ini tidak menyediakan pengukuran biaya berpasangan yang bersumber. Jadi, selalu baca satu baris peringkat bersama harganya, karena persentase saja tidak banyak artinya. Artikel tentang biaya satu tugas yang berhasil diselesaikan menjelaskan cara membandingkan alat secara adil berdasarkan biaya.

Bagaimana membaca tabel benchmark apa pun dalam satu menit?

Poin utama

Sebelum mengandalkan suatu peringkat, ajukan tujuh pertanyaan: Kumpulan tugas apa? Apakah tugasnya baru atau lama? Model yang mana? Pembungkus agen yang mana? Tingkat penalaran yang mana? Berapa biaya per tugas? Seberapa besar variasinya? Jika tabel tidak menjawab setidaknya separuh pertanyaan ini, Anda tidak bisa memercayainya: kemungkinan besar itu iklan. Periksa secara terpisah apakah tugas dalam kumpulan tersebut menyerupai pekerjaan nyata Anda, karena bahkan persentase yang jujur untuk tugas milik orang lain tidak berlaku untuk proyek Anda.

Mari saya rangkum semuanya menjadi daftar periksa singkat. Buka tabel peringkat apa pun dan ikuti tujuh poin ini secara berurutan.

  1. Kumpulan tugas apa? HumanEval kini lemah; SWE-bench lebih dekat dengan pekerjaan nyata. Jika nama kumpulannya tidak disebutkan sama sekali, tak perlu lanjut membaca.
  2. Apakah tugasnya baru atau lama? Kumpulan yang baru atau sebagian tertutup lebih andal daripada kumpulan lama yang tersedia untuk umum dan mungkin sudah dipelajari model.
  3. Model mana yang diukur? Nama dan versi yang tepat, bukan “AI” yang samar atau nama keluarga model.
  4. Pembungkus agen yang mana? Persentase itu berlaku untuk kombinasi “model plus pembungkus.” Jika pembungkusnya tidak disebutkan, Anda tidak tahu apa yang diukur.
  5. Tingkat penalaran yang mana? Satu model pada tingkat berbeda menghasilkan persentase dan biaya berbeda.
  6. Berapa biaya per tugas? Hasil yang mirip bisa berbeda berkali-kali lipat harganya. Baca persentase bersama biayanya.
  7. Seberapa besar variasinya? Selisih satu atau dua poin antarbari sering kali hanya derau.

Ada pertanyaan kedelapan, dan ini tentang Anda: Apakah tugas dalam kumpulan tersebut menyerupai pekerjaan Anda? Benchmark tugas Python hanya sedikit berarti bagi seseorang yang membuat situs web atau bot dengan rangkaian alat berbeda. Bahkan angka yang jujur untuk tugas milik orang lain tidak menjamin hasil pada proyek Anda. Hanya ada satu cara yang andal untuk memeriksanya: jalankan beberapa tugas yang biasa Anda kerjakan dengan alat tersebut, lalu lihat sendiri hasilnya. Artikel tentang cara memeriksa kode yang dihasilkan AI menjelaskan cara mengetahui apakah kode berfungsi jika Anda sendiri tidak memprogram.

Jadi, apa yang sebaiknya Anda lihat pada akhirnya?

Poin utama

Perhatikan kondisi di balik baris teratas, bukan hanya baris teratas itu sendiri: kumpulan tugas dan kebaruannya, kombinasi “model plus pembungkus,” tingkat penalaran, biaya per tugas, serta besarnya variasi. Angka tanpa kondisi ini tidak membuktikan apa pun. Dan ingat, bahkan persentase yang jujur untuk tugas milik orang lain tidak berlaku untuk proyek Anda: keputusan akhir selalu ditentukan dengan menguji tugas nyata Anda sendiri, dan hasil Anda bergantung lebih besar pada cara Anda bekerja dengan alat daripada posisinya di peringkat.

Pokok utama seluruh artikel ini singkat: posisi dalam peringkat adalah alasan untuk melihat alat lebih dekat, tetapi Anda tetap harus menggali lebih lanjut sendiri. Angka besar hanya mengatakan bahwa alat bekerja cukup baik pada daftar tugas tertutup tertentu dalam kondisi tertentu. Persentase itu tidak menunjukkan apakah kondisi tersebut sesuai dengan kondisi Anda.

Jadi, baca keterangan di bawah baris peringkat: tugas apa yang digunakan, seberapa baru tugas itu, kombinasi model dan pembungkus yang mana, tingkat penalaran yang mana, berapa biayanya, dan apakah perbedaannya hanya derau. Tabel yang tidak menjawab pertanyaan-pertanyaan itu cocoknya dipasang di spanduk iklan. Ulasan alat apa yang digunakan untuk coding pada 2026 menjelaskan alat mana yang sebaiknya dipilih untuk tugas Anda.

Dan inilah yang lebih penting daripada benchmark mana pun. Bahkan alat terbaik dalam peringkat pun kesulitan jika konteksnya berantakan dan bekerja dengan baik jika konteksnya bersih. Tingkat keberhasilan pribadi Anda berasal dari apa yang Anda berikan kepada model dan cara Anda merumuskan tugas; baris tabel berada di urutan kedua. Peringkat membantu menyingkirkan pilihan yang jelas lemah, tetapi Andalah yang menghasilkan hasilnya.

Sumber

Posisi dalam peringkat menyingkirkan pilihan yang lemah, tetapi hasil pada proyek Anda bergantung pada metodenya: klon AI plus Second Brain plus rekayasa konteks.

Untuk langkah selanjutnya—Ailoot.

Rincian selengkapnya

Pertanyaan tentang Cara Membaca Benchmark Coding AI dan Menghindari Memilih Pemenang di Atas Kertas

Apa yang harus dicatat sebelum membandingkan dua baris benchmark?

Catat model yang tepat, harness agen dan revisinya, pengaturan penalaran, subset tugas, metode penilaian, tanggal, dan sumber hasil langsung. Tanpa field ini, perbedaan skor tidak dapat diatribusikan kepada satu pengaturan yang berubah.

Apakah biaya per tugas yang dicoba sama dengan biaya per tugas terselesaikan?

Tidak. Bagi total pengeluaran evaluasi dengan seluruh tugas yang dicoba untuk ukuran pertama, atau dengan tugas terselesaikan untuk ukuran kedua. Sertakan biaya upaya gagal dan beri label penyebut sebelum membandingkan harga.

Semua artikel