HumanEval benchmark

Материал из Systems analysis wiki
Перейти к навигации Перейти к поиску

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

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

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

Бенчмарк состоит из 164 задач по программированию, написанных вручную специально для этого набора данных, чтобы гарантировать их отсутствие в обучающих выборках моделей. Все задачи сформулированы на языке Python и представлены в виде фрагментов кода с описанием[2].

Каждое задание включает:

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

Для каждой задачи также предусмотрены скрытые от модели элементы:

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

Задачи охватывают широкий спектр тем: от базовых языковых конструкций и алгоритмов до простой математики, что делает набор разнообразным и сложным для моделей.

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

Главной метрикой успеха на HumanEval является pass@k, которая измеряет долю задач, решённых моделью функционально правильно[1]. Решение считается успешным, если сгенерированный код проходит все автоматические тесты для данной задачи.

  • pass@1: Основной и наиболее часто используемый показатель. Он означает процент задач, решённых моделью с первой попытки (то есть при генерации одного варианта решения на задачу).
  • pass@k: В общем случае, эта метрика показывает долю задач, для которых хотя бы один из k сгенерированных моделью вариантов решения проходит все тесты. Например, pass@10 показывает, какую долю задач модель способна решить, если ей дать до 10 попыток на каждую.

Поскольку прямое вычисление pass@k требует большого количества выборок, авторы предложили статистически корректный метод расчёта этой метрики, который позволяет получить несмещённую оценку[1].

Практическое тестирование происходит в специальной «песочнице»: сгенерированный код компилируется и запускается на наборе проверочных тестов. Такой подход позволяет измерить способность модели генерировать исполняемый и верный код, а не просто синтаксически похожий на эталон.

Результаты и влияние на индустрию

Первоначальные эксперименты на HumanEval показали значительный разрыв между моделями общего назначения и моделями, специально обученными на коде.

  • В 2021 году модель OpenAI Codex (12 млрд параметров, обученная на коде с GitHub) сумела с первой попытки решить ~28,8% задач (pass@1).
  • В то же время более крупная языковая модель GPT-3 (175 млрд), не обученная на коде, не смогла правильно решить ни одной задачи[1].

Эти результаты подчеркнули необходимость специализированного обучения на данных программирования для успешной кодогенерации. После появления HumanEval бенчмарк быстро стал стандартным тестом для сравнения прогресса новых моделей.

  • Модели линейки GPT-3.5 (начало 2023 г.) достигли ~72% pass@1.
  • Модель GPT-4 (2023 г.) продемонстрировала ещё более высокие результаты, достигнув ~67% в базовой версии и превысив 85% после дополнительных настроек[3].
  • Открытые модели, такие как Code Llama (Meta, 2023) и WizardCoder (2023), также показали высокие результаты (~53% и ~57% pass@1 соответственно), превзойдя ранние проприетарные модели[4].

Расширения и варианты бенчмарка

Успех HumanEval вдохновил создание нескольких производных версий, призванных оценивать модели в более широких условиях.

  • CL-HumanEval (Cross-Lingual HumanEval): Кросс-лингвистический вариант (2024), где задачи оригинального HumanEval адаптированы для проверки способности моделей понимать описания на разных языках (помимо английского), генерируя при этом код на Python[5].
  • Multilingual HumanEval: Расширение (2023), направленное на оценку генерации кода на 12 различных языках программирования (включая Java, C#, JavaScript и др.) на основе англоязычного описания[6].
  • HumanEval-XL: Масштабный бенчмарк (2024), который сочетает оба подхода. Он содержит задачи на 12 языках программирования и переводы текстовых описаний на 23 языка мира, включая русский, китайский, арабский и др. Всего HumanEval-XL насчитывает более 22 000 пар «описание-код»[7].

Ссылки

Литература

  • 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]