HumanEval Benchmark (KO)
HumanEval — 인공지능 모델이 텍스트 설명을 바탕으로 생성한 코드의 품질을 객관적으로 평가하기 위한 기준 데이터셋(benchmark)입니다[1]. 2021년 7월 마크 첸(Mark Chen)이 이끄는 OpenAI 연구팀에 의해 발표되었으며, 생성된 프로그램의 기능적 정확성을 측정하는 핵심 표준 중 하나로 자리매김했습니다.
HumanEval의 개발은 코드 생성 평가를 위한 신뢰할 수 있는 방법론의 필요성에서 비롯되었습니다. 이전에는 언어 모델이 생성한 코드의 품질을 BLEU와 같은 간접 지표로 평가하거나 수동으로 검토하는 방식이 주로 사용되었는데, 이는 실제 프로그램의 동작 가능 여부와의 일치를 보장하지 못했습니다. HumanEval은 기능적 정확성에 초점을 맞춤으로써 이 문제를 해결합니다. 즉, 생성된 코드는 기준 코드와의 구문적 유사성이 아니라 자동화된 단위 테스트(unit test) 집합을 성공적으로 통과하는 능력에 따라 평가됩니다[1].
문제 집합의 구조
이 benchmark는 모델의 학습 데이터에 포함되지 않았음을 보장하기 위해 이 데이터셋을 위해 수작업으로 작성된 164개의 프로그래밍 문제로 구성되어 있습니다. 모든 문제는 Python으로 작성되었으며 설명이 포함된 코드 조각 형태로 제공됩니다[2].
각 과제는 다음 요소를 포함합니다:
- 함수 헤더: 함수 이름과 매개변수가 포함된 함수 시그니처.
- 텍스트 설명: 요구되는 기능을 설명하는 영어 docstring.
- 함수 본문: 모델이 생성한 코드로 채워야 하는 빈 공간.
각 문제에는 모델에게 숨겨진 요소도 있습니다:
- 정답 솔루션: 함수의 올바른(기준) 구현.
- 단위 테스트(unit test) 집합: 생성된 코드의 정확성을 자동으로 검증하는 데 사용됩니다. 테스트는 일반적인 경우와 경계 조건(edge case) 모두를 포함합니다.
문제들은 기본 언어 구조 및 알고리즘부터 간단한 수학에 이르기까지 다양한 주제를 다루고 있어, 모델에게 다양하고 도전적인 데이터셋이 됩니다.
모델 평가 방법론
HumanEval에서 성공을 측정하는 주요 지표는 pass@k로, 이는 모델이 기능적으로 올바르게 해결한 문제의 비율을 측정합니다[1]. 생성된 코드가 해당 문제의 모든 자동화 테스트를 통과하면 해결된 것으로 간주됩니다.
- pass@1: 가장 기본적이고 널리 사용되는 지표입니다. 모델이 첫 번째 시도에서 해결한 문제의 비율(즉, 문제당 하나의 솔루션을 생성하는 경우)을 의미합니다.
- pass@k: 일반적으로 이 지표는 모델이 생성한 k개의 솔루션 중 하나 이상이 모든 테스트를 통과한 문제의 비율을 나타냅니다. 예를 들어, pass@10은 모델이 각 문제에 최대 10번의 시도를 허용할 경우 해결할 수 있는 문제의 비율을 보여줍니다.
pass@k를 직접 계산하려면 대량의 샘플이 필요하기 때문에, 저자들은 비편향 추정치를 얻을 수 있는 통계적으로 올바른 지표 계산 방법을 제안했습니다[1].
실제 테스트는 특별한 '샌드박스' 환경에서 수행됩니다. 생성된 코드는 검증 테스트 집합에서 컴파일되고 실행됩니다. 이 접근 방식은 모델이 기준 코드와 단순히 구문적으로 유사한 코드가 아니라, 실행 가능하고 올바른 코드를 생성하는 능력을 측정할 수 있게 해줍니다.
결과 및 산업에 대한 영향
HumanEval에서의 초기 실험 결과는 범용 모델과 코드 전문으로 학습된 모델 간의 상당한 격차를 보여주었습니다.
- 2021년에 OpenAI Codex 모델(코드에 특화되어 GitHub 데이터로 학습된 120억 파라미터)은 첫 번째 시도에서 문제의 약 28.8%를 해결했습니다(pass@1).
- 반면, 코드로 학습되지 않은 더 큰 언어 모델 GPT-3(1,750억 파라미터)는 단 하나의 문제도 올바르게 해결하지 못했습니다[1].
이러한 결과는 성공적인 코드 생성을 위해 프로그래밍 데이터에 대한 특화 학습의 필요성을 강조했습니다. HumanEval이 등장한 이후 이 benchmark는 새로운 모델의 발전 정도를 비교하는 표준 테스트로 빠르게 자리 잡았습니다.
- GPT-3.5 계열 모델(2023년 초)은 pass@1 약 72%를 달성했습니다.
- GPT-4 모델(2023년)은 기본 버전에서 약 67%를 달성하고 추가 fine-tuning 후에는 85%를 초과하는 더욱 높은 결과를 보여주었습니다[3].
- Code Llama(Meta, 2023) 및 WizardCoder(2023)와 같은 오픈 소스 모델도 높은 결과(각각 pass@1 약 53% 및 약 57%)를 보이며 초기 독점 모델들을 능가했습니다[4].
Benchmark의 확장 및 변형
HumanEval의 성공은 더 광범위한 조건에서 모델을 평가하기 위한 여러 파생 버전의 탄생에 영감을 주었습니다.
- CL-HumanEval(Cross-Lingual HumanEval): 크로스-언어 변형(2024)으로, 원본 HumanEval의 문제를 Python 코드를 생성하면서 영어 외의 다양한 언어로 된 설명을 이해하는 모델의 능력을 테스트하도록 적용한 것입니다[5].
- Multilingual HumanEval: 영어 설명을 기반으로 Java, C#, JavaScript 등을 포함한 12가지 다양한 프로그래밍 언어로의 코드 생성 능력을 평가하기 위한 확장판(2023)입니다[6].
- HumanEval-XL: 두 가지 접근 방식을 결합한 대규모 benchmark(2024)입니다. 12개의 프로그래밍 언어로 된 문제와 러시아어, 중국어, 아랍어 등 23개 자연어로 번역된 텍스트 설명을 포함합니다. HumanEval-XL은 총 22,000쌍 이상의 '설명-코드' 쌍을 포함합니다[7].
외부 링크
- Hugging Face의 HumanEval
- Papers with Code의 HumanEval 페이지
참고 문헌
- 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]