Digest: HumanEval과 MBPP는 공개된 지 오래되어 LLM 학습 데이터에 포함(데이터 오염, data contamination)되었을 가능성이 높다. UC Berkeley 연구팀은 LeetCode, AtCoder, CodeForces에서 지속적으로 새 문제를 수집하여 오염을 원천 차단하는 LiveCodeBench를 제안했다. 핵심 통찰은 벤치마크가 정적이면 시간이 지날수록 평가 신뢰도가 하락한다는 것이다. 코드 생성뿐 아니라 self-repair, 코드 실행 예측, 테스트 출력 예측 등 4가지 시나리오를 포괄한다. 2023년 5월~2024년 5월 사이 400+개 문제를 수집했으며, GPT-4o가 pass@1 43.4% (Table 2)를 기록한 반면 HumanEval에서는 90%+로, 기존 벤치마크의 과적합(overfitting) 문제를 실증적으로 보여주었다.
메타데이터
항목
내용
제목
LiveCodeBench: Holistic and Contamination Free Evaluation of Large Language Models for Code
저자
Naman Jain, King Han, Alex Gu, Wen-Ding Li, Fanjia Yan, Tianjun Zhang, Sida Wang, Armando Solar-Lezama, Koushik Sen, Ion Stoica
# Problem: Maximum Element After Decreasing and Rearranging
# Given an array of positive integers, return the maximum
# possible value of an element after operations.
Input: arr = [2, 2, 1, 2, 1]
Output: 2
Explanation: Sort → [1,1,2,2,2], adjust → [1,2,2,2,2], max = 2
# Solution:
def maximumElementAfterDecrementingAndRearranging(arr):
arr.sort()
arr[0] = 1
for i in range(1, len(arr)):
if arr[i] - arr[i-1] > 1:
arr[i] = arr[i-1] + 1
return arr[-1]
예시 2: Medium (CodeForces)
# Problem: Count pairs (i,j) where a[i] + a[j] is divisible by k
Input: n=4, k=3, a=[1, 2, 3, 4]
Output: 2
Explanation: (1,2)→3, (2,4)→6 are divisible by 3
# Solution involves modular arithmetic and counting
예시 3: Hard (AtCoder)
# Problem: Find minimum cost to connect all nodes in a
# weighted graph with specific constraints on edge selection.
# Requires advanced graph algorithms (MST variants).
왜 이 연구를 하는가?
핵심 질문
정적 벤치마크의 데이터 오염 문제를 해결하면서, 코드 생성 이상의 포괄적 코딩 능력을 어떻게 평가할 수 있는가?
기존 접근법의 한계
한계
설명
데이터 오염
HumanEval/MBPP가 학습 데이터에 유출되어 점수가 과대 추정됨
단일 시나리오
기존 벤치마크는 코드 생성만 평가, 디버깅/실행 이해 미포함
정적 데이터셋
한 번 공개되면 업데이트 없어 시간이 지날수록 의미 감소
핵심 통찰
벤치마크를 살아있는(live) 시스템으로 설계하여, 프로그래밍 대회에서 지속적으로 새 문제를 수집하면 오염 문제를 근본적으로 해결할 수 있다.
방법 (Method)
프레임워크 개요
graph TB
A["프로그래밍 대회 플랫폼<br/>(LeetCode, AtCoder, CodeForces)"] --> B["새 문제 자동 수집<br/>(매월 rolling)"]
B --> C["표준화 및 정제<br/>(format, test cases)"]
C --> D["LiveCodeBench<br/>4개 시나리오"]
D --> E["Code Generation"]
D --> F["Self-Repair"]
D --> G["Code Execution"]
D --> H["Test Output Prediction"]
I["시간별 필터링<br/>(cutoff date)"] --> J["모델별 오염 분석"]
발견 (Findings)
주요 결과 (Code Generation, pass@1)
모델
LiveCodeBench
HumanEval
차이
GPT-4o
43.4%
90.2%
-46.8%p
Claude 3.5 Sonnet
41.4%
92.0%
-50.6%p
GPT-4-Turbo
36.1%
87.8%
-51.7%p
DeepSeek-Coder-33B
18.9%
79.3%
-60.4%p
(Table 2)
핵심 발견
오염의 증거: 모든 모델에서 HumanEval 대비 LiveCodeBench 성능이 40-60%p 낮음 (Table 2)
시간별 성능 저하: 더 최근 문제일수록 성능이 낮아짐 — 오염의 직접적 증거 (Figure 3)
Self-repair 능력: GPT-4는 실패 코드의 ~25%를 자체 수정 가능, 작은 모델은 5% 미만 (Table 4)
코드 실행 이해: LLM이 코드를 “이해”한다면 실행 결과를 예측할 수 있어야 하나, 정확도는 50% 수준
이론적 의의
동적 벤치마크 패러다임
LiveCodeBench는 정적 벤치마크의 근본적 한계를 지적하고, “살아있는 벤치마크”라는 새로운 패러다임을 제시했다. 이후 LiveBench(일반), LiveMathBench(수학) 등 유사한 동적 벤치마크들이 등장했다.