Conceitos Básicos
LLM 기반 지속적 학습 프레임워크를 통해 개별 코드 저장소의 고유하고 진화하는 오류에 적응하여 소프트웨어 이슈에서 결함 코드 재현율을 향상시킬 수 있습니다.
Resumo
LLM을 지속적 학습자로 활용: 소프트웨어 이슈에서 결함 코드 재현 개선
이 연구 논문에서는 LLM을 활용한 새로운 코드 재현 방법인 EvoCoder를 제안합니다. EvoCoder는 기존 방법들이 공통적이고 광범위한 오류 해결에 집중하여 개별 코드 저장소의 고유하고 진화하는 오류에 대한 적응력이 부족하다는 점을 지적하며, 이를 해결하기 위해 지속적 학습 프레임워크를 도입합니다.
본 연구는 LLM 에이전트가 이전에 발생했던 이슈들을 통해 경험을 축적하고, 새로운 문제에 직면했을 때 저장된 경험을 지속적으로 업데이트하고 최적화하는 능력을 향상시키는 것을 목표로 합니다.
EvoCoder는 세 가지 주요 구성 요소로 이루어져 있습니다.
액터 LLM: 주어진 지침과 이전 경험을 바탕으로 이슈 코드를 재현합니다. 액터는 멀티턴 대화 방식으로 시스템과 상호 작용하며, 이전 이슈 해결 과정에서 얻은 경험을 활용하여 코드를 생성하고 디버깅합니다.
리플렉션 LLM: 액터의 코드 재현 과정을 분석하여 경험을 추출하고 경험 풀을 지속적으로 업데이트합니다. 리플렉션 LLM은 새로운 경험을 추가하거나, 기존 경험을 수정하거나, 효과적이지 않은 경험을 제거하는 등의 작업을 수행합니다.
계층적 경험 풀: 모든 저장소에서 공유되는 일반적인 경험을 저장하는 일반 풀과 개별 저장소에 특화된 경험을 저장하는 저장소별 풀로 구성됩니다. 이러한 계층적 구조는 모델이 공통 및 저장소별 경험을 효과적으로 구분하고 활용할 수 있도록 합니다.