EN KO
← 전체 논문 목록

KR-HumanEval을 활용한 언어 모델의 한국어 프로그램 합성 성능 분석

The 36th Annual Conference on Human and Cognitive Language Technology (HCLT 2024) 최우수논문상
Deokyeong Kang, Taeuk Kim

한줄 요약

한국어 코드 생성 벤치마크 KR-HumanEval을 구축하고, 퓨샷 프롬프팅에서 영어 기술을 활용할 때 한국어 프로그램 합성 성능이 가장 높다는 역설적 결과를 밝혀 — 현재 LLM의 근본적인 언어 편향을 드러낸 연구.

배경 및 동기

자연어 명세로부터 코드를 자동 생성하는 프로그램 합성은 거대 언어 모델의 발전과 함께 비약적인 진전을 이루었습니다. OpenAI의 HumanEval(164개 수작업 Python 문제)과 같은 벤치마크가 코드 생성 능력 평가의 사실상 표준으로 자리 잡았으나, 이들은 영어 전용으로 구성되어 있습니다.

핵심 문제: GitHub Copilot, ChatGPT 등 LLM 기반 코딩 어시스턴트가 전 세계적으로 보급되면서, 비영어권 사용자들이 모국어로 과제를 기술하는 경우가 증가하고 있습니다. 그러나 한국어 자연어 기술로부터 모델이 올바른 코드를 생성할 수 있는지 평가할 표준화된 벤치마크가 존재하지 않아, 한국어 코드 생성 능력을 체계적으로 측정하거나 개선하는 것이 불가능한 상황입니다.

기존 다국어 코드 생성 연구는 주로 고자원 언어 쌍이나 함수 시그니처의 단순 번역에 초점을 맞추었으며, 한국어 고유의 도전 과제 — 교착어적 형태론, SOV 어순, 한국어 텍스트와 영어 기술 용어의 빈번한 혼용 등 — 를 종합적으로 고려한 평가 프레임워크는 부재했습니다. HumanEval-XL 등 다국어 코드 생성 벤치마크에 대한 연구가 진행되고 있었으나, 공개적으로 사용 가능한 한국어 프로그램 합성 데이터셋은 본 연구 시점에 존재하지 않았습니다.

제안 방법

저자들은 HumanEval의 영어 독스트링을 한국어로 번역하여 KR-HumanEval 벤치마크를 구축하고, 다양한 프롬프팅 전략 하에서 여러 LLM을 체계적으로 평가하여 프롬프트 내 언어 선택이 코드 생성 품질에 미치는 영향을 분석합니다.

1
KR-HumanEval 벤치마크 구축
원본 HumanEval의 164개 영어 독스트링을 다단계 파이프라인을 통해 한국어로 번역합니다. 먼저 DeepL 기계 번역으로 초안을 생성한 뒤, 인간 검수자가 각 번역을 수동 검토하여 1–3점 척도로 품질을 평가합니다. 이후 GPT-4o-mini를 활용한 품질 검수 및 개선을 거칩니다. 최종 데이터셋은 155개(94.5%)가 3점(최고 품질), 9개(5.5%)가 2점, 0개가 1점으로 우수한 번역 품질을 보입니다. 함수 시그니처, 테스트 케이스, 코드 구조는 원본과 동일하게 유지되어 통제된 비교가 가능합니다.
2
네 가지 퓨샷 예제 유형 설계
언어 구성이 다른 네 가지 퓨샷 예제 유형을 정의합니다: [KO, PY] — 한국어 설명 + 표준 Python 코드; [KO, PY(KO var)] — 한국어 설명 + 한국어 변수명 Python 코드; [KO, PY(KO doc)] — 한국어 설명 + 한국어 주석이 추가된 Python 코드; [EN, PY] — 영어 설명 + 표준 Python 코드. 각 유형은 템플릿과 변환 지시문을 통해 일관성을 확보합니다.
3
1-Shot부터 5-Shot까지 체계적 실험
네 가지 예제 유형 각각에 대해 1~5개의 퓨샷 예제를 사용한 실험을 수행하여, 모델당 제로샷 기준선 포함 총 21개 설정을 테스트합니다. 각 예제는 데이터 오염을 방지하기 위해 LLM(Gemini)이 제작한 문제에서 선정합니다. 지시어 튜닝 모델(GPT-4o-mini, EXAONE-3.0-7.8B-Instruct)은 대화형 템플릿을, 기반 모델(DeepSeek-Coder-V2-16B-Base)은 표준 완성형 템플릿을 사용합니다.

평가 모델

평가 지표로는 탐욕적 디코딩을 사용하여 모델이 생성한 단일 코드 샘플이 모든 단위 테스트를 통과하는지 확인하는 표준 함수 정확성 지표인 pass@1을 사용합니다.

실험 결과

세 모델을 KR-HumanEval에서 제로샷 및 네 가지 퓨샷 구성(각 1~5샷)으로 평가한 결과, 프롬프트 내 언어 선택과 예제 유형이 한국어 코드 생성에 미치는 뚜렷한 패턴이 드러났습니다.

제로샷 vs. 최고 퓨샷 성능 (pass@1)

모델제로샷[KO, PY][KO, PY(KO var)][KO, PY(KO doc)][EN, PY]
GPT-4o-mini72.873.66972.475
DeepSeek-Coder-V2-16B-Base37.250.648.446.549.7
EXAONE-3.0-7.8B-Instruct53.652.350.254.451.5

각 예제 유형별 1~5샷 중 최고 pass@1 값을 표시. 굵은 글씨는 모델별 전체 설정 중 최고 점수.

샷 수별 상세 퓨샷 결과 (pass@1)

모델# 샷[KO, PY][KO, PY(KO var)][KO, PY(KO doc)][EN, PY]
GPT-4o-mini173.276.271.375.6
276.870.176.878.7
377.468.37575.6
470.76470.169.5
570.166.468.975.6
DeepSeek-Coder-V2-16B-Base145.74743.344.5
248.850.64751.2
353.751.248.254.3
452.446.344.548.2
552.44749.450.6
EXAONE-3.0-7.8B-Instruct156.156.752.457.3
256.151.854.356.7
351.248.255.550.6
45046.35347
548.148.156.745.7

굵은 글씨는 각 모델의 전체 퓨샷 설정 중 최고 점수.

주요 발견

코드 분석: 한국어 변수 채택

[KO, PY(KO var)] 예제 사용 시, 모델 간 한국어 변수 채택에 극적인 차이가 나타납니다. 5-shot 예제 기준 EXAONE-3.0-7.8B-Instruct는 164개 문제 중 108개에서 한국어 변수명이 포함된 코드를 생성하여, GPT-4o-mini나 DeepSeek-Coder-V2-16B-Base보다 월등히 많았습니다. 특히 GPT-4o-mini와 DeepSeek는 한국어 변수를 사용하지 않거나 사용 시 오류가 있는 코드를 생성한 반면, EXAONE은 한국어 변수를 활용하여 올바른 코드를 성공적으로 생성하여 — 한국어 중심 사전학습의 코드 생성에서의 가치를 부각했습니다.

프롬프트 설계에 대한 시사점

의의

본 연구는 다국어 코드 생성 연구에 네 가지 중요한 기여를 합니다:

본 논문은 한국어 NLP 커뮤니티에 대한 기여를 인정받아 HCLT 2024 최우수논문상을 수상하였습니다. 향후 다른 프로그래밍 언어로의 확장, 한국어 데이터 증강 및 교차 언어 전이 기법 연구 등이 후속 연구 방향으로 제시되었습니다.

링크

Benchmark Multilingual