Skip to main content
QUICK REVIEW

[논문 리뷰] Unifying the Perspectives of NLP and Software Engineering: A Survey on Language Models for Code

Ziyin Zhang, Kai Chen|arXiv (Cornell University)|2023. 11. 14.
Semantic Web and Ontologies인용 수 17
한 줄 요약

이 논문은 코드용 언어 모델의 전망을 조사하여 NLP와 소프트웨어 엔지니어링 관점을 결합하고, 분류 체계(taxonomy), 작업 범위, 코드 특유의 기능 및 향후 방향에 대한 통찰을 제공합니다.

ABSTRACT

In this work we systematically review the recent advancements in software engineering with language models, covering 70+ models, 40+ evaluation tasks, 180+ datasets, and 900 related works. Unlike previous works, we integrate software engineering (SE) with natural language processing (NLP) by discussing the perspectives of both sides: SE applies language models for development automation, while NLP adopts SE tasks for language model evaluation. We break down code processing models into general language models represented by the GPT family and specialized models that are specifically pretrained on code, often with tailored objectives. We discuss the relations and differences between these models, and highlight the historical transition of code modeling from statistical models and RNNs to pretrained Transformers and LLMs, which is exactly the same course that had been taken by NLP. We also go beyond programming and review LLMs' application in other software engineering activities including requirement engineering, testing, deployment, and operations in an endeavor to provide a global view of NLP in SE, and identify key challenges and potential future directions in this domain. We keep the survey open and updated on GitHub at https://github.com/codefuse-ai/Awesome-Code-LLM.

연구 동기 및 목표

  • 코드용 언어 모델 연구에서 NLP와 소프트웨어 엔지니어링 커뮤니티 간의 교류를 촉진한다.
  • 일반 LMs에서 코드 특화 모델까지 코드 지향 LLM의 포괄적 분류 체계를 제공한다.
  • 훈련 및 평가에 사용된 다운스트림 작업, 평가 벤치마크 및 코드 특유의 특징을 요약한다.
  • SE 워크플로우에서의 코드 언어 모델링 및 배포에 대한 도전과제, 기회 및 향후 방향을 강조한다.

제안 방법

  • 코드를 위한 사전 학습된 언어 모델의 분류 체계를 제시하고, 일반 도메인 LMs, 코드 사전 학습 모델, 그리고 특수 아키텍처를 구분한다.
  • 코드 특정 특징(예: AST, CFG, 단위 테스트)과 NLP에서 차용된 학습 목표(예: 인필링, 명령어 튜닝)를 논의한다.
  • 다섯 가지 입력/출력 모듈성(text-to-code, code-to-code, code-to-text, code-to-pattern, text-to-text)에 걸친 다운스트림 작업과 평가 벤치마크를 검토한다.
  • 코드 처리에서 통계/RNN 접근 방식에서 Transformer 기반 LLM으로의 역사적 진행을 종합한다.
  • SE 맥락에서 자율 에이전트와 생산 배포 측면과의 통합을 개략적으로 제시한다.

실험 결과

연구 질문

  • RQ1코드 모델링에 사용되는 서로 다른 모델 계열과 학습 패러다임은 무엇이며, 이것들이 NLP와 SE 전통과 어떤 관계를 갖는가?
  • RQ2코드 언어 모델의 대표적인 다운스트림 작업, 벤치마크, 평가 지표는 무엇이며, 인필링 및 명령어 튜닝과 같은 새로운 기능이 어떻게 발전하는가?
  • RQ3LLMs에서 코드 이해 및 생성을 향상시키기 위해 활용되는 코드 특유의 특징(예: AST, 데이터 흐름)은 무엇인가?
  • RQ4코드 LLMs를 위한 NLP와 SE 접합부의 주요 도전과제와 향후 방향은 무엇인가?

주요 결과

  • 본 조사는 50+ 모델, 30+ 작업, 170+ 데이터셋, 700+ 및 관련 연구를 포괄하며 현장의 범위를 강조한다.
  • 코드 모델링에서도 통계/ RNN 모델에서 사전 학습된 Transformer 및 대형 언어 모델로의 역사적 전환이 일어나며 NLP 경향을 반영한다.
  • AST, CFG, 단위 테스트와 같은 코드 특유의 특징이 코드 LLM의 학습 및 평가에 점점 더 통합되고 있다.
  • 최근 발전으로는 instruction tuning, infilling 목표, 규모의 법칙, 아키텍처 개선, 코드 모델링에서의 자율 에이전트 연구가 포함된다.
  • SE의 코드 엔지니어링 요구사항은 LLM 개발을 실제 운영 준비로 이끄는 실제 테스트 베드를 제공한다.
  • 이 연구는 NLP 기법과 SE의 필요 사이의 지속적인 정렬을 강조하며, 열린 GitHub 자원을 통한 통합적 관점과 지속적인 업데이트를 요구한다.

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

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

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

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