HumanEval Benchmark (FA)

From Systems analysis Wiki
Jump to navigation Jump to search

HumanEval — یک مجموعه داده معیار (benchmark) است که برای ارزیابی عینی کیفیت کدی که مدل‌های هوش مصنوعی بر اساس توصیف متنی یک مسئله تولید می‌کنند، طراحی شده است[1]. این مجموعه در ژوئیه ۲۰۲۱ توسط پژوهشگران OpenAI به سرپرستی مارک چن (Mark Chen) معرفی شد و به یکی از استانداردهای کلیدی برای اندازه‌گیری صحت عملکردی برنامه‌های تولیدشده تبدیل گردید.

توسعه HumanEval به دلیل نیاز به روشی قابل‌اعتماد برای ارزیابی تولید کد انجام شد. پیش از این، کیفیت کد تولیدشده توسط مدل‌های زبانی اغلب با معیارهای غیرمستقیم (مانند BLEU) یا به صورت دستی سنجیده می‌شد که تضمینی برای انطباق با کارایی واقعی برنامه‌ها نبود. HumanEval این مشکل را با تمرکز بر صحت عملکردی حل می‌کند: کد تولیدشده نه بر اساس شباهت نحوی با نمونه مرجع، بلکه بر اساس توانایی موفقیت در گذراندن مجموعه‌ای از آزمون‌های واحد خودکار ارزیابی می‌شود[1].

ساختار مجموعه مسائل

این benchmark از ۱۶۴ مسئله برنامه‌نویسی تشکیل شده که به صورت دستی و به‌طور ویژه برای این مجموعه داده نوشته شده‌اند تا اطمینان حاصل شود که در داده‌های آموزشی مدل‌ها وجود ندارند. تمام مسائل به زبان Python فرموله شده و به شکل قطعه‌های کد همراه با توصیف ارائه می‌شوند[2].

هر تکلیف شامل موارد زیر است:

  • سرآیند تابع: امضای تابع با نام و پارامترهای آن.
  • توصیف متنی: یک Docstring به زبان انگلیسی که قابلیت عملکردی مورد نیاز را توصیف می‌کند.
  • بدنه تابع: فضای خالی که مدل باید آن را با کد تولیدشده پر کند.

برای هر مسئله، عناصری نیز وجود دارند که از دید مدل پنهان هستند:

  • راه‌حل متعارف: پیاده‌سازی صحیح (مرجع) تابع.
  • مجموعه آزمون‌های واحد (unit tests): برای بررسی خودکار صحت کد تولیدشده استفاده می‌شود. آزمون‌ها هم حالت‌های اصلی و هم حالت‌های مرزی را پوشش می‌دهند.

مسائل طیف گسترده‌ای از موضوعات را در بر می‌گیرند: از ساختارهای پایه زبان و الگوریتم‌ها گرفته تا ریاضیات ساده، که این مجموعه را متنوع و چالش‌برانگیز برای مدل‌ها می‌سازد.

روش‌شناسی ارزیابی مدل‌ها

معیار اصلی موفقیت در HumanEval، pass@k است که نسبت مسائلی را که مدل به درستی عملکردی حل کرده است اندازه می‌گیرد[1]. یک راه‌حل زمانی موفق شمرده می‌شود که کد تولیدشده تمام آزمون‌های خودکار آن مسئله را بگذراند.

  • pass@1: شاخص اصلی و پراستفاده‌ترین معیار. این شاخص درصد مسائلی را نشان می‌دهد که مدل در اولین تلاش حل کرده است (یعنی با تولید یک راه‌حل برای هر مسئله).
  • pass@k: به طور کلی، این معیار نسبت مسائلی را نشان می‌دهد که حداقل یکی از k راه‌حل تولیدشده توسط مدل تمام آزمون‌ها را می‌گذراند. برای مثال، pass@10 نشان می‌دهد که مدل چه نسبتی از مسائل را می‌تواند حل کند اگر تا ۱۰ تلاش برای هر مسئله به آن داده شود.

از آنجا که محاسبه مستقیم pass@k به تعداد زیادی نمونه نیاز دارد، نویسندگان روشی آماری صحیح برای محاسبه این معیار پیشنهاد دادند که امکان دریافت برآورد بدون تورش را فراهم می‌کند[1].

آزمایش عملی در یک «محیط ایزوله» (sandbox) ویژه انجام می‌شود: کد تولیدشده کامپایل شده و روی مجموعه آزمون‌های بررسی اجرا می‌گردد. این رویکرد امکان اندازه‌گیری توانایی مدل در تولید کد قابل اجرا و صحیح را فراهم می‌کند، نه صرفاً کدی که از نظر نحوی شبیه به نمونه مرجع باشد.

نتایج و تأثیر بر صنعت

آزمایش‌های اولیه روی HumanEval شکاف قابل‌توجهی میان مدل‌های عمومی و مدل‌های آموزش‌دیده ویژه بر روی کد نشان داد.

  • در سال ۲۰۲۱، مدل OpenAI Codex (با ۱۲ میلیارد پارامتر، آموزش‌دیده بر روی کد GitHub) توانست در اولین تلاش ~۲۸٫۸٪ از مسائل را حل کند (pass@1).
  • در همان زمان، مدل زبانی بزرگ‌تر GPT-3 (با ۱۷۵ میلیارد پارامتر) که روی کد آموزش ندیده بود، نتوانست حتی یک مسئله را به درستی حل کند[1].

این نتایج بر ضرورت آموزش تخصصی بر روی داده‌های برنامه‌نویسی برای موفقیت در تولید کد تأکید کرد. پس از ظهور HumanEval، این benchmark به سرعت به آزمون استاندارد برای مقایسه پیشرفت مدل‌های جدید تبدیل شد.

  • مدل‌های خانواده GPT-3.5 (اوایل ۲۰۲۳) به ~۷۲٪ pass@1 دست یافتند.
  • مدل GPT-4 (2023) نتایج بسیار بالاتری نشان داد و در نسخه پایه به ~۶۷٪ رسید و پس از تنظیمات اضافی از ۸۵٪ فراتر رفت[3].
  • مدل‌های متن‌باز مانند Code Llama (Meta، ۲۰۲۳) و WizardCoder (۲۰۲۳) نیز نتایج بالایی نشان دادند (به ترتیب ~۵۳٪ و ~۵۷٪ pass@1) و از مدل‌های اختصاصی اولیه پیشی گرفتند[4].

گسترش‌ها و نسخه‌های مختلف benchmark

موفقیت HumanEval الهام‌بخش ایجاد چندین نسخه مشتق شد که هدفشان ارزیابی مدل‌ها در شرایط گسترده‌تر است.

  • CL-HumanEval (Cross-Lingual HumanEval): نسخه چندزبانی (۲۰۲۴)، که در آن مسائل HumanEval اصلی برای بررسی توانایی مدل‌ها در درک توصیف‌ها به زبان‌های مختلف (غیر از انگلیسی) با تولید کد به زبان Python تطبیق یافته‌اند[5].
  • Multilingual HumanEval: گسترشی (۲۰۲۳) با هدف ارزیابی تولید کد به ۱۲ زبان برنامه‌نویسی مختلف (از جمله Java، C#، JavaScript و غیره) بر اساس توصیف انگلیسی[6].
  • HumanEval-XL: یک benchmark گسترده (۲۰۲۴) که هر دو رویکرد را ترکیب می‌کند. این مجموعه شامل مسائلی به ۱۲ زبان برنامه‌نویسی و ترجمه توصیف‌های متنی به ۲۳ زبان جهانی از جمله روسی، چینی، عربی و غیره است. در مجموع HumanEval-XL بیش از ۲۲٬۰۰۰ جفت «توصیف-کد» دارد[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. [۱]
  2. «openai/openai_humaneval». Hugging Face Datasets. [۲]
  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. [۳]
  4. Lutfullaev, J. «HumanEval on LLMs Revisited in Late 2023». arXiv:2402.14852, 2023. [۴]
  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. [۵]
  6. Athiwaratkun, B. et al. «Multilingual HumanEval: A Multilingual Code Generation Benchmark». arXiv:2307.11892, 2023. [۶]
  7. Liu, J. et al. «HumanEval-XL: A Multilingual Code Generation Benchmark for Cross-lingual Natural Language Generalization». LREC-COLING 2024. [۷]