HumanEval Benchmark (TH)
HumanEval — คือชุดข้อมูลอ้างอิง (benchmark) ที่ออกแบบมาเพื่อประเมินคุณภาพของโค้ดที่สร้างขึ้นโดยโมเดล AI จากคำอธิบายงานในรูปแบบข้อความอย่างเป็นกลาง[1] โดยได้รับการเผยแพร่ในเดือนกรกฎาคม ค.ศ. 2021 โดยนักวิจัยจาก OpenAI ภายใต้การนำของ มาร์ก เชน (Mark Chen) และกลายเป็นหนึ่งในมาตรฐานสำคัญสำหรับการวัดความถูกต้องเชิงฟังก์ชันของโปรแกรมที่สร้างขึ้น
การพัฒนา HumanEval เกิดจากความต้องการวิธีการประเมินการสร้างโค้ดที่เชื่อถือได้ ก่อนหน้านี้ คุณภาพของโค้ดที่สร้างโดยโมเดลภาษามักถูกประเมินด้วยเมตริกทางอ้อม (เช่น BLEU) หรือการประเมินด้วยมือ ซึ่งไม่รับประกันว่าจะสอดคล้องกับความสามารถในการทำงานจริงของโปรแกรม HumanEval แก้ปัญหานี้โดยมุ่งเน้นที่ ความถูกต้องเชิงฟังก์ชัน โดยโค้ดที่สร้างขึ้นจะถูกประเมินไม่ใช่จากความคล้ายคลึงทางไวยากรณ์กับโค้ดอ้างอิง แต่จากความสามารถในการผ่านชุด unit test อัตโนมัติ[1]
โครงสร้างของชุดงาน
Benchmark ประกอบด้วย 164 งาน ด้านการเขียนโปรแกรมที่เขียนขึ้นด้วยมือโดยเฉพาะสำหรับชุดข้อมูลนี้ เพื่อรับประกันว่างานเหล่านี้จะไม่ปรากฏอยู่ในชุดข้อมูลฝึกสอนของโมเดล งานทั้งหมดเขียนในภาษา Python และนำเสนอในรูปแบบของชิ้นส่วนโค้ดพร้อมคำอธิบาย[2]
แต่ละงานประกอบด้วย:
- หัวของฟังก์ชัน: ลายเซ็นของฟังก์ชันพร้อมชื่อและพารามิเตอร์
- คำอธิบายข้อความ: Docstring ภาษาอังกฤษที่อธิบายฟังก์ชันการทำงานที่ต้องการ
- เนื้อหาของฟังก์ชัน: ส่วนว่างที่โมเดลต้องเติมด้วยโค้ดที่สร้างขึ้น
สำหรับแต่ละงานยังมีองค์ประกอบที่ซ่อนจากโมเดล:
- คำตอบแบบ canonical: การปรับใช้ฟังก์ชันที่ถูกต้อง (อ้างอิง)
- ชุด unit test: ใช้สำหรับตรวจสอบความถูกต้องของโค้ดที่สร้างขึ้นโดยอัตโนมัติ โดยครอบคลุมทั้งกรณีพื้นฐานและกรณีขอบ
งานครอบคลุมหัวข้อที่หลากหลาย ตั้งแต่โครงสร้างภาษาพื้นฐานและอัลกอริทึมไปจนถึงคณิตศาสตร์เบื้องต้น ทำให้ชุดข้อมูลมีความหลากหลายและท้าทายสำหรับโมเดล
วิธีการประเมินโมเดล
เมตริกหลักของความสำเร็จบน HumanEval คือ pass@k ซึ่งวัดสัดส่วนของงานที่โมเดลแก้ได้อย่างถูกต้องเชิงฟังก์ชัน[1] การแก้ปัญหาถือว่าสำเร็จเมื่อโค้ดที่สร้างขึ้นผ่านการทดสอบอัตโนมัติทั้งหมดสำหรับงานนั้น
- pass@1: ตัวชี้วัดหลักที่ใช้บ่อยที่สุด หมายถึงเปอร์เซ็นต์ของงานที่โมเดลแก้ได้ใน การพยายามครั้งแรก (นั่นคือเมื่อสร้างคำตอบหนึ่งรูปแบบต่องาน)
- pass@k: ในกรณีทั่วไป เมตริกนี้แสดงสัดส่วนของงานที่ อย่างน้อยหนึ่งใน k รูปแบบคำตอบที่โมเดลสร้างขึ้นผ่านการทดสอบทั้งหมด ตัวอย่างเช่น pass@10 แสดงให้เห็นว่าโมเดลสามารถแก้งานได้กี่สัดส่วน หากให้โอกาสสูงสุด 10 ครั้งต่องาน
เนื่องจากการคำนวณ pass@k โดยตรงต้องใช้จำนวนตัวอย่างจำนวนมาก ผู้เขียนจึงเสนอวิธีการคำนวณเมตริกนี้ที่ถูกต้องทางสถิติ ซึ่งช่วยให้ได้การประมาณค่าที่ไม่มีความลำเอียง[1]
การทดสอบในทางปฏิบัติเกิดขึ้นใน "sandbox" พิเศษ โดยโค้ดที่สร้างขึ้นจะถูกคอมไพล์และรันบนชุดการทดสอบตรวจสอบ วิธีการนี้ช่วยให้วัดความสามารถของโมเดลในการสร้างโค้ดที่รันได้และถูกต้อง ไม่ใช่แค่มีความคล้ายคลึงทางไวยากรณ์กับโค้ดอ้างอิง
ผลลัพธ์และผลกระทบต่ออุตสาหกรรม
การทดลองเบื้องต้นบน HumanEval แสดงให้เห็นความแตกต่างอย่างมีนัยสำคัญระหว่างโมเดลทั่วไปและโมเดลที่ได้รับการฝึกสอนเฉพาะด้านโค้ด
- ในปี ค.ศ. 2021 โมเดล OpenAI Codex (12 พันล้านพารามิเตอร์ ฝึกสอนบนโค้ดจาก GitHub) สามารถแก้งาน ~28.8% ได้ในการพยายามครั้งแรก (pass@1)
- ในขณะเดียวกัน โมเดลภาษาขนาดใหญ่กว่าอย่าง GPT-3 (175 พันล้านพารามิเตอร์) ที่ไม่ได้ฝึกสอนบนโค้ด ไม่สามารถแก้งานใดได้อย่างถูกต้องเลยแม้แต่งานเดียว[1]
ผลลัพธ์เหล่านี้เน้นย้ำถึงความจำเป็นของการฝึกสอนเฉพาะทางบนข้อมูลการเขียนโปรแกรมเพื่อความสำเร็จในการสร้างโค้ด หลังจาก HumanEval ปรากฏขึ้น benchmark ดังกล่าวก็กลายเป็นการทดสอบมาตรฐานอย่างรวดเร็วสำหรับการเปรียบเทียบความก้าวหน้าของโมเดลใหม่
- โมเดลในตระกูล GPT-3.5 (ต้นปี ค.ศ. 2023) บรรลุ ~72% pass@1
- โมเดล GPT-4 (ค.ศ. 2023) แสดงผลลัพธ์ที่สูงยิ่งขึ้น โดยบรรลุ ~67% ในเวอร์ชันพื้นฐานและเกิน 85% หลังการปรับแต่งเพิ่มเติม[3]
- โมเดลโอเพนซอร์ส เช่น Code Llama (Meta, ค.ศ. 2023) และ WizardCoder (ค.ศ. 2023) ก็แสดงผลลัพธ์สูง (~53% และ ~57% pass@1 ตามลำดับ) ซึ่งเหนือกว่าโมเดลเชิงพาณิชย์ในยุคแรก[4]
ส่วนขยายและรูปแบบต่าง ๆ ของ benchmark
ความสำเร็จของ HumanEval เป็นแรงบันดาลใจให้สร้างเวอร์ชันดัดแปลงหลายรูปแบบ ซึ่งมุ่งประเมินโมเดลในเงื่อนไขที่กว้างขึ้น
- CL-HumanEval (Cross-Lingual HumanEval): รูปแบบข้ามภาษา (ค.ศ. 2024) ซึ่งงานจาก HumanEval ต้นฉบับถูกดัดแปลงเพื่อทดสอบความสามารถของโมเดลในการทำความเข้าใจคำอธิบายในภาษาต่าง ๆ (นอกเหนือจากภาษาอังกฤษ) โดยสร้างโค้ดในภาษา Python[5]
- Multilingual HumanEval: ส่วนขยาย (ค.ศ. 2023) ที่มุ่งประเมินการสร้างโค้ดใน 12 ภาษาโปรแกรมที่แตกต่างกัน (รวมถึง Java, C#, JavaScript และอื่น ๆ) จากคำอธิบายภาษาอังกฤษ[6]
- HumanEval-XL: Benchmark ขนาดใหญ่ (ค.ศ. 2024) ที่ผสมผสานทั้งสองแนวทาง ประกอบด้วยงานใน 12 ภาษาโปรแกรมและการแปลคำอธิบายข้อความเป็น 23 ภาษาของโลก รวมถึงภาษารัสเซีย จีน อาหรับ และอื่น ๆ โดยรวม HumanEval-XL มีคู่ "คำอธิบาย-โค้ด" มากกว่า 22,000 คู่[7]
ลิงก์
- HumanEval บน Hugging Face
- หน้า HumanEval บน Papers with Code
เอกสารอ้างอิง
- 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.
หมายเหตุ
- ↑ 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]