Skip to main content
QUICK REVIEW

[논문 리뷰] A Performance Study of LLM-Generated Code on Leetcode - Code and Dataset artifacts

Jean-Baptiste Döderlein|arXiv (Cornell University)|2022. 10. 26.
Software Engineering Research인용 수 6
한 줄 요약

이 논문은 프롬프트 변형과 온도 설정이 알고리즘 코딩 작업에서 Codex와 GitHub Copilot의 성능에 미치는 영향을 조사한다. LeetCode과 HumanEval에서의 자동화된 실험을 통해 이러한 파라미터를 튜닝하면 일장 생성 시 성공률을 최대 79.27%까지 끌어올릴 수 있음을 입증한다—기본 설정보다 뚜렷하게 높은 성능을 보이며, 현재의 코드 생성 모델이 높은 잠재력과 동시에 내재된 취약성을 지닌다는 점을 드러낸다.

ABSTRACT

Language models are promising solutions for tackling increasing complex problems. In software engineering, they recently gained attention in code assistants, which generate programs from a natural language task description (prompt). They have the potential to save time and effort but remain poorly understood, limiting their optimal use. In this article, we investigate the impact of input variations on two configurations of a language model, focusing on parameters such as task description, surrounding context, model creativity, and the number of generated solutions. We design specific operators to modify these inputs and apply them to three LLM-based code assistants (Copilot, Codex, StarCoder2) and two benchmarks representing algorithmic problems (HumanEval, LeetCode). Our study examines whether these variations significantly affect program quality and how these effects generalize across models. Our results show that varying input parameters can greatly improve performance, achieving up to 79.27% success in one-shot generation compared to 22.44% for Codex and 31.1% for Copilot in default settings. Actioning this potential in practice is challenging due to the complex interplay in our study - the optimal settings for temperature, prompt, and number of generated solutions vary by problem. Reproducing our study with StarCoder2 confirms these findings, indicating they are not model-specific. We also uncover surprising behaviors (e.g., fully removing the prompt can be effective), revealing model brittleness and areas for improvement.

연구 동기 및 목표

  • Codex와 GitHub Copilot가 생성하는 코드의 품질과 정확도에 프롬프트 변형과 온도 설정이 미치는 영향을 평가하는 것.
  • 입력 파라미터를 체계적으로 튜닝하면 알고리즘 프로그래밍 문제에서 코드 생성 성능을 크게 향상시킬 수 있는지 조사하는 것.
  • 다양한 코딩 작업에서 입력 설정 변경에 대한 코드 어시스턴트의 강건성과 민감도를 평가하는 것.
  • 표준 설정보다 우수한 성능을 내는 예상치 못한 또는 역설적인 설정(예: 프롬프트 제거)을 식별하는 것.
  • 향후 소프트웨어 공학 분야에서 LLM 기반 코드 생성 연구를 위한 재현 가능한 벤치마크와 데이터셋을 제공하는 것.

제안 방법

  • 각 코딩 작업에 대해 프롬프트, 온도, 생성된 솔루션 수(pass@k)를 체계적으로 변화시킬 수 있는 맞춤형 연산자 설계.
  • 두 가지 벤치마크(50개 작업의 HumanEval, 6개 프로그래밍 언어에서 300개 작업의 LeetCode)에 이 연산자 적용.
  • Codex와 Copilot API를 사용하여 제어된 입력 변형을 기반으로 코드 생성을 자동화.
  • 자동화된 테스트 세트를 사용해 생성된 코드의 정확도(성공률)를 평가.
  • 다양한 설정에서 결과를 수집하고 분석하여 성능 추세와 최적 설정 식별.
  • 재현 가능성을 위해 데이터셋과 아티팩트를 공개하며, 프롬프트 변형과 평가 결과 포함.

실험 결과

연구 질문

  • RQ1알고리즘 문제에서 Codex와 Copilot가 생성하는 코드의 성공률에 프롬프트 기술 방식의 변화가 미치는 영향는 어떠한가?
  • RQ2온도 하이퍼파라미터 튜닝이 코드 생성 품질과 정확도에 미치는 영향는 무엇인가?
  • RQ3프롬프트를 제거하거나 단순화하면 표준 또는 복잡한 프롬프트보다 더 나은 코드 생성 결과를 낼 수 있는가?
  • RQ4다양한 유형의 알고리즘 문제에서 최적 설정(온도, 프롬프트, pass@k)은 어떻게 달라지는가?
  • RQ5코드 어시스턴트의 성능가 입력 파라미터 설정에 얼마나 민감한가? 이는 신뢰성과 자동화에 어떤 의미를 갖는가?

주요 결과

  • 프롬프트와 온도 설정을 다양화하면 코드 생성 성능이 크게 향상되었으며, 최적 설정을 사용한 일장 생성 시 최고 성공률 79.27%를 기록했다.
  • 기본 설정에서 Codex는 성공률 22.44%에 머물렀고, Copilot는 31.1%를 기록하여 표준 설정 하에서의 성능 격차가 뚜렷하다는 점을 확인했다.
  • 놀랍게도 일부 경우에서 프롬프트를 완전히 제거한 것이 표준 또는 복잡한 프롬프트보다 더 좋은 결과를 낸 것으로 나타나, 현재 모델의 잠재적 취약성을 시사한다.
  • 최적 설정(온도, 프롬프트, pass@k)은 문제 유형에 따라 크게 달라져 일반화된 튜닝이 어려운 것으로 나타났다.
  • 성능 향상은 문제 유형이나 프로그래밍 언어에 따라 균일하지 않아, 모델 행동에 맥락에 따라 민감한 특성이 있음을 시사한다.
  • 본 연구는 현재의 코드 어시스턴트가 입력 설정에 매우 민감하다는 점을 드러내며, 최적 사용을 위해 수동 또는 자동 하이퍼파라미터 튜닝이 필수적임을 시사한다.

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

논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.

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

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