HumanEval adalah tolok ukur untuk menilai kemampuan pembuatan kode pada model bahasa besar (LLM). Solusi ini dikembangkan oleh OpenAI untuk mengevaluasi versi awal model AI yang mendukung Codex, agen rekayasa perangkat lunak perusahaan tersebut.
Tolok ukur HumanEval dirancang khusus untuk kode buatan Python. Solusi ini tidak hanya menangani sintaksis, tetapi juga memvalidasi bahwa kode yang dibuat akurat dan berfungsi sebagaimana mestinya.
Kerangka kerja tolok ukur ini dapat diakses di repositori GitHub OpenAI HumanEval. HumanEval juga memiliki papan peringkat yang memeringkat kinerja berbagai model pembuatan kode, antara lain rangkaian Claude, Kimi K2, Google Gemma dan Gemini, GPT-5 serta GPT-4o dan GPT-4 yang lebih lama, serta rangkaian IBM Granite.
Dapatkan kurasi insight tentang berita AI yang paling penting dan menarik. Berlangganan buletin Think mingguan. Lihat Pernyataan Privasi IBM.
Kumpulan data HumanEval terdiri dari 164 soal pemrograman yang ditulis tangan dan pengujian unit yang berkaitan.1 Semua soal tersebut mengukur kemampuan model dalam memahami bahasa, memanipulasi string, serta melakukan pencarian dan pengurutan. Soal-soal tersebut juga menilai keterampilan pemecahan masalah dalam matematika sederhana dan algoritma kompleks. Tugas pemrograman ini mirip dengan pertanyaan algoritmik, latihan pengodean, atau tantangan desain sistem yang dikerjakan pengembang perangkat lunak selama wawancara teknis.
Setiap tugas pembuatan kode berisi komponen berikut:
Tanda tangan menentukan nama dan parameter fungsi. Sebagai contoh, berikut adalah tanda tangan untuk fungsi yang menjumlahkan hasil perhitungan dua bilangan bulat:
Docstring adalah prompt bahasa alami atau deskripsi perilaku, tujuan, input, dan output yang diharapkan dari suatu fungsi. Komentar ini menguraikan kegunaan fungsi, dengan memandu model saat menghasilkan kode Python.
Sebagai contoh, docstring fungsi perkalian (multiply) adalah:
Ini adalah segmen yang dialokasikan untuk kode yang dihasilkan model. Bagian ini berisi solusi yang diimplementasikan untuk soal yang diberi tanda tangan fungsi dan docstring.
Kasus pengujian ini memverifikasi kebenaran fungsional kode yang dihasilkan di berbagai skenario. Setiap pengujian memasukkan input spesifik ke fungsi, kemudian memeriksa output terhadap hasil yang diinginkan.
Berikut adalah beberapa sampel pengujian unit untuk fungsi perkalian:
Banyak tolok ukur LLM kode menerapkan metodologi yang digunakan untuk pembuatan teks, seperti metrik berbasis kecocokan yang membandingkan sampel kode yang dihasilkan dengan solusi referensi. Namun, metrik berbasis kecocokan biasanya tidak memperhitungkan berbagai cara untuk menyelesaikan soal, karena cara mana pun dapat secara fungsional setara dengan solusi referensi.
Inilah alasan tolok ukur HumanEval beralih ke kebenaran fungsional, yang menganggap sampel kode yang dihasilkan benar jika lulus serangkaian pengujian unit. Pendekatan ini mencerminkan cara pengembang menilai keberhasilan kode mereka dengan menjalankannya melalui serangkaian pengujian unit dan memastikan kode lulus pada tiap pengujian.
HumanEval mengukur kebenaran fungsional menggunakan metrik pass@k. Untuk setiap soal, model menghasilkan sampel kode k. Jika salah satu sampel tersebut lulus pengujian unit, soal akan dianggap terpecahkan dengan benar. Metrik pass@k memperkirakan probabilitas bahwa setidaknya satu dari sampel k secara fungsional benar.
HumanEval hanyalah salah satu dari banyak tolok ukur untuk menilai LLM kode. Tim pengembangan perangkat lunak masih harus mengevaluasi kode buatan LLM menggunakan pengujian internal mereka sendiri dan menggabungkan beberapa metrik untuk mendapatkan perspektif yang lebih komprehensif tentang kinerja model. Pendekatan human-in-the-loop juga tetap penting untuk membantu memastikan akurasi kode buatan AI, sekaligus menyempurnakan dan meningkatkan kualitas model machine learning dari waktu ke waktu.
Berikut adalah beberapa batasan tolok ukur HumanEval:
Soal pemrograman yang disertakan dalam kumpulan data mungkin sudah pernah ditemui selama pelatihan model karena ketersediaannya yang luas. Jumlah soal juga cukup sedikit, sehingga model pembuatan kode mungkin dapat menghafal semuanya.
Tingkat kesulitan tugas pembuatan kode pada HumanEval biasanya berkisar dari mudah hingga menengah. Sebaliknya, tugas pemrograman di dunia nyata cenderung lebih kompleks, yang antara lain mencakup integrasi API dengan banyak sistem, basis kode besar, dan kumpulan data besar.
Tolok ukur ini juga gagal mencerminkan kondisi lingkungan dan alur kerja pengembangan perangkat lunak di dunia nyata yang sering kali rumit: contoh penggunaan yang terus berkembang, kasus pengujian yang tidak lengkap, persyaratan yang tidak konsisten, kode lama atau spesifikasi yang kurang jelas, dan itu hanyalah beberapa di antaranya.
Pemrograman tidak hanya mencakup kebenaran fungsional. Sebagai contoh, HumanEval tidak memperhitungkan efisiensi. Ini berarti kode buatan LLM yang akurat dan berfungsi sesuai harapan mungkin bukan solusi yang paling efisien dan optimal dari segi kinerja.
Tolok ukur ini juga tidak memperhitungkan praktik terbaik pemrograman, seperti konvensi pengodean, standar gaya, penanganan kesalahan, validasi input, dan pengodean yang aman.
HumanEval disesuaikan khusus untuk bahasa pemrograman Python sumber terbuka . Kode sumber yang dihasilkan dalam bahasa lain harus dievaluasi menggunakan tolok ukur lain.
Tolok ukur ini memiliki beberapa versi berbeda yang mengatasi beberapa keterbatasannya:
HumanEval+
HumanEval-V
HumanEval-X
HumanEvalNext
Setiap soal pemrograman di HumanEval memiliki rata-rata sekitar 7 hingga 8 pengujian unit.1 HumanEval+ meningkatkan cakupan pengujian tersebut secara signifikan menjadi rata-rata 764 pengujian per soal untuk penilaian yang lebih ketat.2
HumanEval-V dirancang berdasarkan versi sebelumnya untuk membuat tolok ukur bagi model AI multimodal, khususnya model bahasa visi (VLM). Versi ini mengukur kemampuan VLM dalam memahami dan bernalar atas bagan, diagram, dan grafik pada konteks pemrograman, dengan menghasilkan kode berdasarkan, antara lain, diagram alir algoritma atau transformasi matriks.
Sebagai perluasan dari tolok ukur versi asli, HumanEval-X juga mencakup bahasa pemrograman C++, Go, Java, dan JavaScript. Sebanyak 820 tugas pada versi ini dapat digunakan untuk mengevaluasi pembuatan kode dan keterampilan penerjemahan kode.
HumanEvalNext merupakan penyempurnaan dari HumanEval. Versi ini menambahkan lebih banyak konteks melalui anotasi jenis (sintaksis pemrograman untuk menunjukkan jenis data parameter fungsi dan nilai yang ditampilkan), menggabungkan lebih banyak kasus edge, menghadirkan lebih banyak pengujian unit dan menaikkan tingkat kerumitan soal.3
Percepat pengiriman perangkat lunak dengan Bob, mitra AI Anda untuk pengembangan yang aman dan memahami maksud.
Optimalkan upaya pengembangan perangkat lunak dengan alat berbasis AI tepercaya yang meminimalkan waktu yang dihabiskan untuk menulis kode, debugging, pemfaktoran ulang kode, atau penyelesaian kode dan membuat lebih banyak ruang untuk inovasi.
Ciptakan kembali alur kerja dan operasi yang penting dengan menambahkan AI untuk memaksimalkan pengalaman, pengambilan keputusan secara waktu nyata, dan nilai bisnis.
1. Evaluating Large Language Models Trained on Code, arXiv, 14 Juli 2021
2. Is Your Code Generated by ChatGPT Really Correct? Rigorous Evaluation of Large Language Models for Code Generation, arXiv, 30 Oktober 2023
3. Benchmarking AI Models in Software Engineering: A Review, Search Tool, and Unified Approach for Elevating Benchmark Quality, arXiv, 12 Desember 2025