HumanEval benchmark
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,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]