HumanEval Benchmark (BG)

From Systems analysis Wiki
Jump to navigation Jump to search

HumanEval — това е еталонен набор от данни (benchmark), предназначен за обективна оценка на качеството на кода, генериран от модели за изкуствен интелект въз основа на текстово описание на задачата[1]. Той беше представен през юли 2021 година от изследователи на OpenAI под ръководството на Марк Чен (Mark Chen) и се превърна в един от ключовите стандарти за измерване на функционалната коректност на генерираните програми.

Разработването на HumanEval беше продиктувано от необходимостта от надежден метод за оценка на кодогенерацията. Преди това качеството на кода, генериран от езикови модели, често се оценяваше с косвени метрики (например BLEU) или ръчно, което не гарантираше съответствие с реалната работоспособност на програмите. HumanEval решава този проблем, като се фокусира върху функционалната коректност: генерираният код се оценява не по синтактичното му сходство с еталона, а по способността му успешно да преминава набор от автоматични unit-тестове[1].

Структура на набора от задачи

Benchmark-ът се състои от 164 задачи по програмиране, написани ръчно специално за този набор от данни, за да се гарантира липсата им в обучителните извадки на моделите. Всички задачи са формулирани на езика Python и са представени под формата на фрагменти от код с описание[2].

Всяко задание включва:

  • Заглавие на функцията: Сигнатура на функцията с нейното наименование и параметри.
  • Текстово описание: Docstring на английски език, описващ изискваната функционалност.
  • Тяло на функцията: Празно място, което моделът трябва да попълни с генериран код.

За всяка задача са предвидени и скрити от модела елементи:

  • Канонично решение: Правилна (еталонна) реализация на функцията.
  • Набор от модулни тестове (unit-тестове): Използва се за автоматична проверка на коректността на генерирания код. Тестовете обхващат както основни, така и гранични случаи.

Задачите обхващат широк спектър от теми: от базови езикови конструкции и алгоритми до проста математика, което прави набора разнообразен и предизвикателен за моделите.

Методика за оценка на моделите

Главната метрика за успех на 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 съответно), надминавайки ранните proprietary модели[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]