HumanEval Benchmark (VI)
HumanEval — đây là bộ dữ liệu chuẩn (benchmark) được thiết kế để đánh giá khách quan chất lượng mã nguồn do các mô hình trí tuệ nhân tạo tạo ra dựa trên mô tả văn bản của bài toán[1]. Nó được giới thiệu vào tháng 7 năm 2021 bởi các nhà nghiên cứu của OpenAI dưới sự dẫn dắt của Mark Chen và trở thành một trong những tiêu chuẩn quan trọng để đo lường tính đúng đắn chức năng của các chương trình được tạo ra.
Việc phát triển HumanEval xuất phát từ nhu cầu có một phương pháp đánh giá sinh mã đáng tin cậy. Trước đây, chất lượng mã nguồn do các mô hình ngôn ngữ tạo ra thường được đánh giá bằng các thước đo gián tiếp (chẳng hạn như BLEU) hoặc thủ công, điều này không đảm bảo sự tương ứng với khả năng hoạt động thực tế của chương trình. HumanEval giải quyết vấn đề này bằng cách tập trung vào tính đúng đắn chức năng: mã nguồn được tạo ra không được đánh giá theo độ tương đồng cú pháp với mẫu chuẩn, mà theo khả năng vượt qua thành công một tập hợp các bài kiểm tra đơn vị tự động[1].
Cấu trúc bộ bài tập
Benchmark bao gồm 164 bài tập lập trình được viết tay đặc biệt cho bộ dữ liệu này, nhằm đảm bảo chúng không xuất hiện trong tập huấn luyện của các mô hình. Tất cả các bài tập được xây dựng bằng ngôn ngữ Python và được trình bày dưới dạng các đoạn mã có mô tả[2].
Mỗi bài tập bao gồm:
- Tiêu đề hàm: Chữ ký hàm với tên và các tham số của nó.
- Mô tả văn bản: Docstring bằng tiếng Anh mô tả chức năng yêu cầu.
- Thân hàm: Phần trống mà mô hình cần điền bằng mã nguồn được tạo ra.
Đối với mỗi bài tập, cũng có các yếu tố bị ẩn khỏi mô hình:
- Lời giải chuẩn: Triển khai hàm đúng đắn (mẫu chuẩn).
- Bộ kiểm tra đơn vị (unit test): Được sử dụng để tự động kiểm tra tính đúng đắn của mã nguồn được tạo ra. Các bài kiểm tra bao gồm cả các trường hợp cơ bản lẫn các trường hợp biên.
Các bài tập bao phủ một phạm vi chủ đề rộng: từ các cấu trúc ngôn ngữ cơ bản và thuật toán đến toán học đơn giản, điều này làm cho bộ dữ liệu trở nên đa dạng và thách thức đối với các mô hình.
Phương pháp đánh giá mô hình
Thước đo thành công chính trên HumanEval là pass@k, đo lường tỷ lệ các bài tập được mô hình giải đúng về mặt chức năng[1]. Một lời giải được coi là thành công nếu mã nguồn được tạo ra vượt qua tất cả các bài kiểm tra tự động cho bài tập đó.
- pass@1: Chỉ số chính và được sử dụng phổ biến nhất. Nó biểu thị tỷ lệ phần trăm các bài tập được mô hình giải đúng ngay từ lần thử đầu tiên (tức là khi tạo ra một phương án giải cho mỗi bài tập).
- pass@k: Trong trường hợp tổng quát, thước đo này cho thấy tỷ lệ các bài tập mà ít nhất một trong số k phương án giải do mô hình tạo ra vượt qua tất cả các bài kiểm tra. Ví dụ, pass@10 cho thấy tỷ lệ bài tập mà mô hình có thể giải được nếu cho nó tới 10 lần thử cho mỗi bài.
Do việc tính trực tiếp pass@k đòi hỏi số lượng mẫu lớn, các tác giả đã đề xuất một phương pháp tính toán thống kê chính xác cho thước đo này, cho phép thu được ước lượng không lệch[1].
Việc kiểm tra thực tế diễn ra trong một "hộp cát" đặc biệt: mã nguồn được tạo ra được biên dịch và chạy trên bộ các bài kiểm tra xác minh. Cách tiếp cận này cho phép đo lường khả năng của mô hình trong việc tạo ra mã nguồn có thể thực thi và đúng đắn, chứ không chỉ đơn thuần là tương đồng về mặt cú pháp với mẫu chuẩn.
Kết quả và ảnh hưởng đến ngành
Các thí nghiệm ban đầu trên HumanEval cho thấy sự khác biệt đáng kể giữa các mô hình đa năng và các mô hình được huấn luyện chuyên biệt trên mã nguồn.
- Năm 2021, mô hình OpenAI Codex (12 tỷ tham số, được huấn luyện trên mã nguồn từ GitHub) đã giải được ~28,8% bài tập ngay từ lần thử đầu tiên (pass@1).
- Trong khi đó, mô hình ngôn ngữ lớn hơn GPT-3 (175 tỷ tham số), không được huấn luyện trên mã nguồn, không thể giải đúng bất kỳ bài tập nào[1].
Các kết quả này nhấn mạnh sự cần thiết của việc huấn luyện chuyên biệt trên dữ liệu lập trình để sinh mã thành công. Sau khi HumanEval xuất hiện, benchmark này nhanh chóng trở thành bài kiểm tra tiêu chuẩn để so sánh tiến độ của các mô hình mới.
- Các mô hình thuộc dòng GPT-3.5 (đầu năm 2023) đạt ~72% pass@1.
- Mô hình GPT-4 (2023) thể hiện kết quả cao hơn, đạt ~67% trong phiên bản cơ bản và vượt 85% sau các tinh chỉnh bổ sung[3].
- Các mô hình mã nguồn mở như Code Llama (Meta, 2023) và WizardCoder (2023) cũng cho thấy kết quả cao (~53% và ~57% pass@1 tương ứng), vượt qua các mô hình độc quyền thế hệ đầu[4].
Các mở rộng và biến thể của benchmark
Thành công của HumanEval đã truyền cảm hứng cho việc tạo ra một số phiên bản phái sinh, nhằm đánh giá các mô hình trong các điều kiện rộng hơn.
- CL-HumanEval (Cross-Lingual HumanEval): Biến thể đa ngôn ngữ (2024), trong đó các bài tập của HumanEval gốc được điều chỉnh để kiểm tra khả năng của các mô hình trong việc hiểu mô tả bằng các ngôn ngữ khác nhau (ngoài tiếng Anh), đồng thời tạo ra mã nguồn bằng Python[5].
- Multilingual HumanEval: Phần mở rộng (2023) nhằm đánh giá việc sinh mã trên 12 ngôn ngữ lập trình khác nhau (bao gồm Java, C#, JavaScript và các ngôn ngữ khác) dựa trên mô tả bằng tiếng Anh[6].
- HumanEval-XL: Benchmark quy mô lớn (2024) kết hợp cả hai cách tiếp cận. Nó chứa các bài tập trên 12 ngôn ngữ lập trình và bản dịch mô tả văn bản sang 23 ngôn ngữ thế giới, bao gồm tiếng Nga, tiếng Trung, tiếng Ả Rập và các ngôn ngữ khác. Tổng cộng HumanEval-XL có hơn 22.000 cặp "mô tả-mã nguồn"[7].
Liên kết ngoài
- HumanEval trên Hugging Face
- Trang HumanEval trên Papers with Code
Tài liệu tham khảo
- Liang, P. et al. (2022). Holistic Evaluation of Language Models (HELM). arXiv:2211.09110.
- Chang, Y. et al. (2023). A Survey on Evaluation of Large Language Models. arXiv:2307.03109.
- Ni, S. et al. (2025). A Survey on Large Language Model Benchmarks. arXiv:2508.15361.
- Biderman, S. et al. (2024). The Language Model Evaluation Harness (lm-eval): Guidance and Lessons Learned. arXiv:2405.14782.
- Kiela, D. et al. (2021). Dynabench: Rethinking Benchmarking in NLP. arXiv:2104.14337.
- Ma, Z. et al. (2021). Dynaboard: An Evaluation‑As‑A‑Service Platform for Holistic Next‑Generation Benchmarking. arXiv:2106.06052.
- Goel, K. et al. (2021). Robustness Gym: Unifying the NLP Evaluation Landscape. arXiv:2101.04840.
- Xu, C. et al. (2024). Benchmark Data Contamination of Large Language Models: A Survey. arXiv:2406.04244.
- Liu, S. et al. (2025). A Comprehensive Survey on Safety Evaluation of LLMs. arXiv:2506.11094.
- Chiang, W.-L. et al. (2024). Chatbot Arena: An Open Platform for Evaluating LLMs by Human Preference. arXiv:2403.04132.
- Boubdir, M. et al. (2023). Elo Uncovered: Robustness and Best Practices in Language Model Evaluation. arXiv:2311.17295.
- Huang, L. et al. (2023). A Survey on Hallucination in Large Language Models. arXiv:2311.05232.
Chú thích
- ↑ 1.0 1.1 1.2 1.3 1.4 Chen, M. et al. «Evaluating Large Language Models Trained on Code». arXiv:2107.03374, 2021. [1]
- ↑ «openai/openai_humaneval». Hugging Face Datasets. [2]
- ↑ Niu, C. et al. «On Evaluating the Efficiency of Source Code Generated by LLMs». Proceedings of the 2nd International Conference on AI-generated Content, 2024. [3]
- ↑ Lutfullaev, J. «HumanEval on LLMs Revisited in Late 2023». arXiv:2402.14852, 2023. [4]
- ↑ Sato, M. et al. «CL-HumanEval: A Benchmark for Evaluating Cross-Lingual Transfer through Code Generation». Proceedings of the 38th Pacific Asia Conference on Language, Information and Computation, 2024. [5]
- ↑ Athiwaratkun, B. et al. «Multilingual HumanEval: A Multilingual Code Generation Benchmark». arXiv:2307.11892, 2023. [6]
- ↑ Liu, J. et al. «HumanEval-XL: A Multilingual Code Generation Benchmark for Cross-lingual Natural Language Generalization». LREC-COLING 2024. [7]