Skip to main content
QUICK REVIEW

[논문 리뷰] CRUXEval: A Benchmark for Code Reasoning, Understanding and Execution

Alex Gu, Baptiste Rozière|arXiv (Cornell University)|2024. 01. 05.
Parallel Computing and Optimization Techniques인용 수 5
한 줄 요약

CRUXEval은 LM에서 코드 실행(CRUXEval-O)과 코드 이해(CRUXEval-I)를 테스트하는 800-sample Python 벤치마크를 도입하며, 오픈소스 모델과 GPT-4 간의 격차를 드러내고 CoT 및 미세조정이 도움이 되지만 벤치마크를 해소하진 못함을 보여준다.

ABSTRACT

We present CRUXEval (Code Reasoning, Understanding, and eXecution Evaluation), a benchmark consisting of 800 Python functions (3-13 lines). Each function comes with an input-output pair, leading to two natural tasks: input prediction and output prediction. First, we propose a generic recipe for generating our execution benchmark which can be used to create future variation of the benchmark. Second, we evaluate twenty code models on our benchmark and discover that many recent high-scoring models on HumanEval do not show the same improvements on our benchmark. Third, we show that simple CoT and fine-tuning schemes can improve performance on our benchmark but remain far from solving it. The best setup, GPT-4 with chain of thought (CoT), achieves a pass@1 of 75% and 81% on input and output prediction, respectively. In contrast, Code Llama 34B achieves a pass@1 of 50% and 46% on input and output prediction, highlighting the gap between open and closed source models. As no model is close to acing CRUXEval, we provide examples of consistent GPT-4 failures on simple programs as a lens into its code reasoning capabilities and areas for improvement.

연구 동기 및 목표

  • HumanEval 및 MBPP와 같은 생성 과제를 넘어서는 코드 이해와 실행을 측정하는 벤치마크를 동기화한다.
  • 두 가지 과제: 입력 예측(코드에 대한 추론) 및 출력 예측(코드의 실행)을 제공한다.
  • 향후 variation을 위한 실행 벤치마크를 생성하는 일반적인 레시피를 기술한다.

제안 방법

  • Code Llama 34B를 사용하여 69개의 표준 라이브러리 함수 범위에서 102,000개의 후보 함수와 489,306개의 입력-출력 쌍을 생성한다.
  • 해결 가능하고 메모리 가벼운 문제를 보장하기 위해 샘플을 필터링한다(부동 소수점 수, 제한된 아리티, 결정적, 부수 효과 없음).
  • 임의 선택으로 800-sample 벤치마크를 구성하고 두 과제에서 실행 기반의 정답성 지표(pass@1 및 pass@5)을 사용한다.
  • 비GPT 모델은 N=100 샘플, GPT 모델은 N=10 샘플을 사용하여 GPT-4, GPT-3.5, Code Llama, WizardCoder, Phi, Phind, Mistral, DeepSeek, StarCoder 등의 다양한 모델을 평가한다.
  • CRUXEval 성능에 대해 Chain-of-Thought 프롬프트와 간단한 미세조정의 효과를 검토한다.

실험 결과

연구 질문

  • RQ1LM 기반 코드 모델이 코드 실행에 대해 추론하고 간단한 Python 함수의 출력(prediction)을 예측할 수 있는가(CRUXEval-O)?
  • RQ2LM 기반 모델이 함수를 적용할 때 주어진 출력을 생성하는 입력(inputs)을 예측할 수 있는가(CRUXEval-I)?
  • RQ3오픈소스 모델이 코드 실행 및 이해 과제에서 GPT-4와 어떻게 비교되는가?
  • RQ4Chain-of-Thought와 같은 프롬팅 기법과 간단한 미세조정이 CRUXEval의 성능을 향상시키는가?
  • RQ5현대 LM의 간단한 코드 실행 과제에서의 실패 모드는 무엇인가?

주요 결과

  • GPT-4는 Chain-of-Thought를 사용했을 때 가장 높은 보고 점수(pass@1: ~75% 입력, ~81% 출력)을 달성한다.
  • 오픈소스 모델은 GPT-4에 뒤처지며 Code Llama 34B는 두 과제 모두에서 GPT-4의 성능의 약 절반 정도를 달성한다.
  • CoT와 간단한 미세조정은 CRUXEval 성능을 향상시키지만 벤치마크를 완전히 따라잡지는 못한다.
  • HumanEval과 상관된 모델도 CRUXEval에서 여전히 차이를 보이며, 특히 증류된 GPT-4 기반 모델은 실행 이해를 일관되게 개선하지 못한다.
  • 많은 GPT-4의 간단한 프로그램 실패는 강력한 모델에서도 코드 실행 이해에 지속적인 격차가 있음을 드러낸다.
  • 유사한 샘플에 대한 미세조정은 두 과제에서 GPT-4와 유사한 성과를 냈지만 정확도가 70% 미만으로 한계에 도달하므로 벤치마크가 여전히 도전적임을 시사한다.

더 나은 연구,지금 바로 시작하세요

연구 설계부터 논문 작성까지, 연구 시간을 획기적으로 줄여보세요.

카드 등록 없음 · 무료 플랜 제공

이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.