HumanEval Benchmark (TH)

From Systems analysis Wiki
Jump to navigation Jump to search

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. 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]
  2. «openai/openai_humaneval». Hugging Face Datasets. [2]
  3. 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]
  4. Lutfullaev, J. «HumanEval on LLMs Revisited in Late 2023». arXiv:2402.14852, 2023. [4]
  5. 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]
  6. Athiwaratkun, B. et al. «Multilingual HumanEval: A Multilingual Code Generation Benchmark». arXiv:2307.11892, 2023. [6]
  7. Liu, J. et al. «HumanEval-XL: A Multilingual Code Generation Benchmark for Cross-lingual Natural Language Generalization». LREC-COLING 2024. [7]