[논문 리뷰] A Survey on Large Language Models for Code Generation
대형 언어 모델이 NL-to-code 생성에 어떻게 활용되는지에 대한 포괄적 체계적 검토로, 분류 체계 도입, 데이터, 학습, 평가 및 실용적 응용을 조사하며, HumanEval 및 MBPP 벤치마크를 사용한 실증적 참조를 제공한다.
Large Language Models (LLMs) have garnered remarkable advancements across diverse code-related tasks, known as Code LLMs, particularly in code generation that generates source code with LLM from natural language descriptions. This burgeoning field has captured significant interest from both academic researchers and industry professionals due to its practical significance in software development, e.g., GitHub Copilot. Despite the active exploration of LLMs for a variety of code tasks, either from the perspective of natural language processing (NLP) or software engineering (SE) or both, there is a noticeable absence of a comprehensive and up-to-date literature review dedicated to LLM for code generation. In this survey, we aim to bridge this gap by providing a systematic literature review that serves as a valuable reference for researchers investigating the cutting-edge progress in LLMs for code generation. We introduce a taxonomy to categorize and discuss the recent developments in LLMs for code generation, covering aspects such as data curation, latest advances, performance evaluation, ethical implications, environmental impact, and real-world applications. In addition, we present a historical overview of the evolution of LLMs for code generation and offer an empirical comparison using the HumanEval, MBPP, and BigCodeBench benchmarks across various levels of difficulty and types of programming tasks to highlight the progressive enhancements in LLM capabilities for code generation. We identify critical challenges and promising opportunities regarding the gap between academia and practical development. Furthermore, we have established a dedicated resource GitHub page (https://github.com/juyongjiang/CodeLLMSurvey) to continuously document and disseminate the most recent advances in the field.
연구 동기 및 목표
- LLM 내에서 코드 생성을 NL-to-code로 정의하고 그 중요성을 정당화한다.
- 코드 생성을 위한 데이터, 학습, 평가, 응용을 체계화하기 위한 분류 체계를 제시한다.
- 코드 LLM을 위한 데이터 선별, 사전 학습, 미세 조정, 프롬프팅 전개를 종합한다.
- 연구와 실무를 잇는 데 있어 도전 과제와 기회를 비판적으로 논의한다.
- 진전을 보여주기 위해 HumanEval 및 MBPP 벤치마크를 통한 실증적 맥락을 제시한다.
제안 방법
- 코드 생성을 위한 데이터 선별, 학습, 평가, 응용을 분류하는 분류 체계를 제안한다.
- 데이터 사전 학습, 지시 조정, 미세 조정에서의 데이터 소스, 벤치마크, 모델 계열을 조사한다.
- 검색 보강, 자율 코딩 에이전트, LLM-대-판단자와 같은 고급 주제를 요약한다.
- 평가 지표와 Copilot 및 CodeWhisperer와 같은 산업 도구의 실제 응용에 대해 논의한다.
- Well-known benchmarks (HumanEval, MBPP)의 진행 상황을 언급하여 실증적 관점을 제시한다.
- 계속 업데이트를 위한 리소스 페이지(codellm.github.io)를 제공한다.
실험 결과
연구 질문
- RQ1코드 생성을 위한 LLM을 정의하는 핵심 구성요소와 단계(데이터, 학습, 평가, 배포)는 무엇인가?
- RQ2데이터 선별, 모델 아키텍처, 미세 조정 전략이 NL-to-code 역량을 향상시키기 위해 어떻게 진화해 왔는가?
- RQ3실제 코드 생성 성능을 가장 잘 반영하는 벤치마크 및 평가 방법은 무엇인가?
- RQ4연구-실무 간의 해석을 저해하는 도전과제는 무엇이며 이를 어떻게 해결할 수 있는가?
- RQ5코드 중심 LLM의 가장 유망한 기회와 향후 방향은 무엇인가?
주요 결과
- 코드 LLM은 코드 생성에서 상당한 진전을 보이며, 모델 규모가 커짐에 따라 지시 이행 및 맥락 내 학습과 같은 출현 능력이 나타난다.
- HumanEval 진행 상황 인용: Pass@1에서 3.6%(PaLM 8B)에서 95.1%(LDB)로 증가하여 표준 NL-to-code 작업에서 극적인 성능 향상을 보여준다.
- Code 작업을 위한 StarCoder, Code LLaMA, CodeGemma 등과 같은 전문 코드 모델의 광범위한 생태계가 범용 LLM을 보완한다.
- 데이터 선별, 사전 학습, 지시 조정, 평가, 프롬프트, 검색 보강 생성, 자율 에이전트 등을 코드 생성 파이프라인의 필수 측면으로 포괄하는 넓은 분류 체계.
- 이 논문은 데이터 품질, 프라이버시, 정렬 문제를 포함한 지속적인 과제를 강조하고 학계와 산업 실무를 연결할 기회를 제시한다.
- 발전을 기록하고 보급하기 위해 codellm.github.io라는 전용 리소스 사이트가 설립되었다.
더 나은 연구,지금 바로 시작하세요
연구 설계부터 논문 작성까지, 연구 시간을 획기적으로 줄여보세요.
카드 등록 없음 · 무료 플랜 제공
이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.