Copilot 평가 프레임워크: LLM 기반 소프트웨어 프로그래밍 평가
Copilot Evaluation Harness: Evaluating LLM-Guided Software Programming
February 22, 2024
저자: Anisha Agarwal, Aaron Chan, Shubham Chandel, Jinu Jang, Shaun Miller, Roshanak Zilouchian Moghaddam, Yevhen Mohylevskyy, Neel Sundaresan, Michele Tufano
cs.AI
초록
대규모 언어 모델(LLM)을 통합 개발 환경(IDE)에 접목하는 것은 현대 소프트웨어 개발에서 중요한 주제로 부상했습니다. OpenAI의 GPT-3.5/4와 Code Llama와 같은 LLM은 지능형 채팅 기반 프로그래밍 도우미로서 개발자 생산성을 크게 향상시킬 잠재력을 가지고 있습니다. 그러나 LLM을 그대로 사용하는 것은 특정 시나리오에서 최적의 결과를 보장하기 어렵습니다. 각 시스템은 최상의 성능을 위해 LLM이 해당 휴리스틱에 맞게 세밀하게 조정되어야 합니다. 본 논문에서는 'Copilot 평가 하네스'를 소개합니다. 이는 다양한 프로그래밍 시나리오와 언어를 포괄하는 LLM 기반 IDE 상호작용을 평가하기 위한 데이터와 도구 세트입니다. 우리는 기존의 최신 평가 시스템보다 더 견고하고 정보가 풍부한 평가 지표를 제안합니다. 또한, 자연어에서 코드 생성(generate), 코드에서 문서 생성(doc), 테스트 케이스 생성(test), 버그 수정(fix), 작업 공간 이해 및 쿼리 해결(workspace) 등 다양한 개발자 작업을 포함하는 시나리오에 대해 정적 및 실행 기반 성공 지표를 설계하고 계산합니다. 이러한 성공 지표는 주어진 IDE와 해당 매개변수 공간 내에서 LLM의 성능을 평가하기 위해 설계되었습니다. 우리는 이러한 지표를 사용하여 세 가지 일반적인 LLM을 평가한 결과를 통해 향후 LLM 기반 IDE 시나리오의 개발과 검증에 유용한 통찰을 제공할 수 있습니다.
English
The integration of Large Language Models (LLMs) into Development Environments
(IDEs) has become a focal point in modern software development. LLMs such as
OpenAI GPT-3.5/4 and Code Llama offer the potential to significantly augment
developer productivity by serving as intelligent, chat-driven programming
assistants. However, utilizing LLMs out of the box is unlikely to be optimal
for any given scenario. Rather, each system requires the LLM to be honed to its
set of heuristics to ensure the best performance. In this paper, we introduce
the Copilot evaluation harness: a set of data and tools for evaluating
LLM-guided IDE interactions, covering various programming scenarios and
languages. We propose our metrics as a more robust and information-dense
evaluation than previous state of the art evaluation systems. We design and
compute both static and execution based success metrics for scenarios
encompassing a wide range of developer tasks, including code generation from
natural language (generate), documentation generation from code (doc), test
case generation (test), bug-fixing (fix), and workspace understanding and query
resolution (workspace). These success metrics are designed to evaluate the
performance of LLMs within a given IDE and its respective parameter space. Our
learnings from evaluating three common LLMs using these metrics can inform the
development and validation of future scenarios in LLM guided IDEs.