Główne pojęcia
대규모 언어 모델은 소프트웨어 공학 과제에서 코드 생성, 코드 요약, 취약점 탐지 등 다양한 방면에서 활용될 수 있지만, 아직 과제별 성능 편차가 크고 개선의 여지가 있다.
Streszczenie
이 논문은 대규모 언어 모델(LLM)과 소프트웨어 공학의 접점에 대해 종합적으로 조사하고 정리하였다.
먼저 LLM의 배경 지식을 소개하였다. LLM은 트랜스포머 모델 기반으로 대규모 텍스트 데이터를 학습하여 뛰어난 언어 이해 및 생성 능력을 보인다. 이러한 LLM의 성능이 소프트웨어 공학 과제에 적용될 수 있다는 점에 주목하고 있다.
이어서 LLM과 소프트웨어 공학의 접점에 대한 연구 동향을 7가지 카테고리로 정리하였다:
- 코드 생성: LLM이 사용자 요구사항을 바탕으로 코드를 자동 생성할 수 있다. 다만 생성된 코드의 정확성과 안전성 등이 과제로 남아있다.
- 코드 요약: LLM이 코드를 이해하고 자연어로 요약할 수 있어 개발자의 코드 이해를 돕는다.
- 코드 번역: LLM이 프로그래밍 언어 간 코드 변환을 수행할 수 있다. 하지만 정확성과 신뢰성 확보가 중요한 과제이다.
- 취약점 탐지 및 수정: LLM이 코드의 취약점을 식별하고 수정할 수 있다. 다만 논리적 오류 및 보안 문제 해결이 여전히 과제로 남아있다.
- 코드 평가: LLM이 코드의 품질, 신뢰성, 기능성 등을 평가할 수 있다. 특히 테스트 케이스 생성 등에 활용되고 있다.
- 코드 관리: LLM이 버전 관리, 협업 관리 등 코드 관리 업무를 지원할 수 있다.
- 질의응답 상호작용: LLM이 개발자와의 질의응답, 프롬프트 엔지니어링 등을 통해 소프트웨어 개발을 지원할 수 있다.
마지막으로 LLM의 소프트웨어 공학 과제 수행 성능을 분석하였다. 전반적으로 LLM은 구문 이해 과제에서 강점을 보이지만, 의미 이해 과제에서는 상대적으로 약점을 보인다. 예를 들어 코드 생성 및 취약점 탐지 등에서는 성능이 다소 미흡한 편이다. 그러나 LLM 모델의 지속적인 발전으로 향후 이러한 과제에서도 성능 향상이 기대된다.
Statystyki
LLM은 구문 이해 과제에서 강점을 보이지만, 의미 이해 과제에서는 상대적으로 약점을 보인다.
LLM의 코드 생성 및 취약점 탐지 성능은 아직 미흡한 편이다.
LLM 모델의 지속적인 발전으로 향후 이러한 과제에서도 성능 향상이 기대된다.
Cytaty
"LLMs have demonstrated remarkable language comprehension and generation capabilities, able to perform well on a variety of natural language processing tasks, such as text summarization."
"LLMs have great potential to solve the above problems due to their excellent performance on complex tasks such as text generation."
"Currently, as more and more LLMs designed for software engineering tasks are deployed, many research works focused on the application of LLMs in the software engineering domain."