EvoCodeBench - Self-Evolving LLM-Driven Coding Systems
6분 분량
Introduction
EvoCodeBench는 LLM 기반 코딩 시스템의 자기진화(self-evolving) 능력을 측정하기 위한 인간 성능 기준 벤치마크
LeetCode에서 수집한 3,822개 문제 중 100개를 선별하여 데이터 오염을 최소화
5개 언어 지원: Python3, C++, Java, Go, Kotlin (Kotlin은 long-tail 언어로 robustness 측정)
최대 3회 Reflection-Revision 반복 루프로 자기진화 궤적(trajectory-level) 측정
핵심 기여: 능력 지표(Pass Rate), 효율성 지표(Runtime/Memory), 인간 참조 지표(ARB/AMB) 3축 평가
Related Papers
HumanEval, MBPP: 단일 시도 통과율만 측정 — 자기 개선 능력 미포착
SWE-bench: 실제 GitHub 이슈 해결 — 반복 개선 미측정
Reflexion (Shinn et al., 2023): 언어 강화학습 기반 자기 반성 — EvoCodeBench의 Reflection-Revision 루프와 연결
차별점: (1) 자기진화 궤적 측정 최초 체계화, (2) 인간 성능 직접 비교(ARB/AMB), (3) 다언어 long-tail 평가
Methods
벤치마크 구성
문제 선정
LeetCode 3,822개 문제에서 최신 100개 선별 → 데이터 오염 최소화
5개 언어별 코드 템플릿 생성 (Python3, C++, Java, Go, Kotlin)
자기진화 프레임워크
최대 3회 Reflection-Revision 반복 루프
각 루프: 실패 원인 분석(엣지케이스, 논리 오류, 복잡도, 언어 문제) → 개선 코드 재생성 → 재평가
문제 사양, 프롬프트, 모델 파라미터 고정 — 오직 솔루션 artifact만 수정
평가 지표
능력 지표: Pass Rate(PR), TLE, MLE, CE, RE, WA, TO, RpE
효율성 지표: Average Runtime(AR), Average Memory(AM), Average Passed Cases(APC)
인간 참조 지표: ARB(Average Runtime Beats), AMB(Average Memory Beats) — LeetCode 인간 제출 분포 백분위 기준
방법론 다이어그램
graph TD
A[LeetCode 3,822 문제 풀] -->|오염 방지 필터링| B[100문제 평가 세트]
B --> C[5개 언어 코드 템플릿 생성]
C --> D[LLM 초기 솔루션 생성]
D --> E{LeetCode 저지 실행}
E -->|통과| F[능력 지표 기록]
E -->|실패| G[자기 진화 루프<br/>최대 3회 반복]
G --> H[Reflection: 실패 원인 분석]
H --> I[Revision: 개선 코드 생성]
I --> J{반복 횟수 < 3?}
J -->|Yes| E
J -->|No| K[최종 결과 기록]
F --> L[효율성 지표 측정<br/>AR / AM / APC]
K --> L
L --> M[인간 참조 지표 산출<br/>ARB / AMB]
style G fill:#ffe4e1
style M fill:#f3e5f5
Results
평가 모델: GPT-5.2, Claude-4.5-Opus, Gemini-3-Flash/Pro, Grok-4.1-Fast, DeepSeek-v3.2
데이터셋: 100문제 × 5언어
핵심 발견: 자기진화 효과가 언어마다 비대칭적 — long-tail 언어에서 최대 개선
실험 결과 상세
기본 Pass Rate 비교 (100문제 기준)
Model
Python3
C++
Java
Go
Kotlin
GPT-5.2
84
90
91
90
78
Claude-4.5-Opus
82
85
87
84
83
Gemini-3-Flash
79
84
84
82
75
DeepSeek-v3.2
34
11
11
7
7
자기진화 효과 (Gemini-3-Flash, 3회 반복)
Language
Before PR
After PR
Gain
Runtime 감소
Python3
79
87
+10.1%
-7.8%
C++
84
99
+17.9%
-46.4%
Java
84
98
+16.7%
N/A
Go
82
95
+15.9%
N/A
Kotlin
75
95
+26.7%
N/A
인간 비교 지표 (GPT-5.2)
Language
PR
ARB (%)
AMB (%)
Python3
84
68.06
37.98
C++
90
71.87
56.48
Kotlin
78
88.44
83.12
Discussion
Long-tail 언어에서 자기진화 효과 극대화: Kotlin(+26.7%)이 Python3(+10.1%)보다 3배 큰 개선 — 초기 성능 낮을수록 reflection의 상대적 이득 증가