[논문 리뷰] EffiBench: Benchmarking the Efficiency of Automatically Generated Code
이 논문은 LeetCode의 1,000개의 효율성 중심 프로그래밍 문제와 각 문제에 대응하는 인간이 작성한 최적의 솔루션을 함께 제공하는 EffiBench를 소개한다. 이는 실행 시간과 메모리 사용량 지표를 사용하여 21개의 대규모 언어 모델의 코드 효율성을 평가하며, GPT-4-turbo가 인간의 최적 솔루션보다 평균적으로 1.69배 느리지만, 다른 모델들보다 훨씬 우수한 성능을 보였다.
Code generation models have increasingly become integral to aiding software development. Although current research has thoroughly examined the correctness of the code produced by code generation models, a vital aspect that plays a pivotal role in green computing and sustainability efforts has often been neglected. This paper presents EffiBench, a benchmark with 1,000 efficiency-critical coding problems to assess the efficiency of code generated by code generation models. EffiBench contains a diverse set of LeetCode coding problems. Each problem is paired with an executable human-written canonical solution, which obtains the SOTA efficiency on the LeetCode solution leaderboard. With EffiBench, we empirically examine the ability of 42 large language models (35 open-source and 7 closed-source) to generate efficient code. Our evaluation results demonstrate that the efficiency of the code generated by LLMs is generally worse than the efficiency of human-written canonical solutions. For example, GPT-4 generated code has an average extbf{3.12} times execution time that of the human-written canonical solutions. In the most extreme cases, the execution time and total memory usage of GPT-4 generated code are extbf{13.89} and extbf{43.92} times that of the canonical solutions. The source code of EffiBench is released on https://github.com/huangd1999/EffiBench. We also provide the LeaderBoard at https://huggingface.co/spaces/EffiBench/effibench-leaderboard.
연구 동기 및 목표
- 기존 코드 생성 평가 프레임워크에서 코드 효율성에 중점을 둔 벤치마크가 부족한 점을 보완하기 위해.
- 실행 시간과 메모리 사용량과 같은 성능 지표를 우선시하지 않는 현재의 벤치마크에서의 격차를 규명하기 위해.
- LLM이 생성한 코드의 실용적 효율성을 측정하기 위한 표준화되고 자동화된 평가 프레임워크를 제공하기 위해.
- 오픈소스 및 비공개 모델을 포함한 다양한 대규모 언어 모델 간의 효율성에 대한 체계적인 비교를 가능하게 하기 위해.
- 실제 컴퓨팅 워크로드에서 LLM이 생성한 코드와 인간 최적화 솔루션 사이의 성능 격차를 부각시키기 위해.
제안 방법
- 최적의 시간 및 공간 복잡도가 요구되는 LeetCode에서 1,000개의 효율성 중심 프로그래밍 문제를 선별한다.
- LeetCode에서 가장 높은 효율성 평가를 받은 실행 가능한 인간 작성 최적 솔루션과 각 문제를 짝지어 제공한다.
- 다수의 실행 루프를 통해 실행 시간(ET), 정규화된 실행 시간(NET), 최대 메모리 사용량(MU), 정규화된 최대 메모리 사용량(NMU), 총 메모리 사용량(TMU), 정규화된 총 메모리 사용량(NTMU)을 측정한다.
- 이론적 시간 복잡도 분석에 의존하지 않고, 자동화된 실행 및 프로파일링을 통해 성능 지표를 수집한다.
- 모델 간 비교를 가능하게 하기 위해 성능 지표를 최적 솔루션 기준으로 정규화한다.
- 일致한 입력 프롬프트와 실행 환경을 사용하여 동일한 벤치마크에서 21개의 대규모 언어 모델(13개의 오픈소스, 8개의 비공개 모델)을 평가한다.

실험 결과
연구 질문
- RQ1다양한 대규모 언어 모델이 인간 최적화 솔루션과 비교해 효율적인 코드를 얼마나 잘 생성하는가?
- RQ2LLM이 생성한 코드의 효율성은 이론적 시간 및 공간 복잡도와 어느 정도 상관관계가 있는가?
- RQ3다양한 효율성 중심 문제들에 대해 실행 시간과 메모리 사용량 측면에서 가장 효율적인 코드를 생성하는 모델은 무엇인가?
- RQ4LLM이 생성한 코드의 성능 지표는 여러 실행 루프에 걸쳐 일관된가? 실행 시간과 메모리 사용량의 변동성은 어떠한가?
- RQ5자동화된 런타임 기반 지표는 이론적 복잡도 주석보다 더 정확하고 객관적인 코드 효율성 평가를 가능하게 하는가?
주요 결과
- GPT-4-turbo는 평가된 모든 모델 중에서 가장 효율적인 코드를 생성했으며, 최적 솔루션 대비 평균 정규화된 실행 시간(NET)이 1.69배였다.
- GPT-4-turbo가 생성한 코드의 최악의 경우 실행 시간은 최적 솔루션보다 45.49배 느렸다. 이는 극단적인 케이스에서 성능의 변동성이 크다는 것을 시사한다.
- GPT-3.5-turbo-1106는 모든 모델 중에서 가장 높은 pass@1 비율(53.1%)을 기록했지만, NET가 2.91로 GPT-4-turbo의 1.69보다 훨씬 열 劣했다.
- PaLM-2-chat-bison과 Gemini-pro는 각각 91.90 MB와 71.95 MB의 매우 높은 메모리 사용량을 보였으며, NMU 값이 각각 3.35와 2.72로 메모리 효율성이 떨어지는 것으로 나타났다.
- Claude-instant-1과 GPT-4는 실행 시간에 높은 변동성을 보였으며, 표준편차가 각각 0.01초와 0.01초였다. 그러나 NET 값이 3.80과 2.27로 여전히 열 劣한 성능을 보였다.
- 최적 솔루션은 항상 모든 LLM이 생성한 코드를 뛰어넘었으며, GPT-4-turbo는 평균적으로 오직 1.69배 빠르게 작동하여 가장 가까운 성능을 보였다. 이는 실제 워크로드에서 여전히 지속적인 효율성 격차가 존재함을 시사한다.

더 나은 연구,지금 바로 시작하세요
논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.
카드 등록 없음 · 무료 플랜 제공
이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.