코드 수정을 위한 LLM 구축
·2024.04.03 06:26
핵심 내용
Replit은 IDE 환경과 직접 상호작용하며 코드 오류를 자동으로 수정하는 Replit-native LLM을 구축하고 있다.
1 / 2
자세히 보기
현재의 프로그래밍 특화 LLM은 소스 코드와 자연어 데이터로 학습되지만, 개발 환경과 직접 상호작용하거나 도구를 사용하는 능력은 제한적이다. Replit은 이러한 한계를 극복하기 위해 개발 환경에 내장된 Replit-native 모델을 구축하여 더 강력한 AI 도구를 만들고자 한다.
첫 번째 목표는 LSP(Language Server Protocol) 진단 데이터를 활용한 코드 수정(Code Repair) 모델이다. LSP는 코드의 오류를 식별하지만, 모든 경우에 해결책을 제공하지는 못한다. Replit은 풍부한 LSP 진단 데이터를 학습 데이터로 활용한다.
데이터 구축을 위해 **Operational Transformations(OTs)**를 활용하여 코드의 모든 수정 이력을 추적하고, 이를 세션 이벤트와 결합해 타임라인을 구성한다. 이 타임라인에는 LSP 진단뿐만 아니라 코드 편집, 패키지 설치, 쉘 명령 등 다양한 이벤트가 포함된다.
데이터 파이프라인은 다음과 같은 과정을 거친다:
- 진단 시점의 파일 시스템을 재구성한다.
- LLM을 사용하여 합성 디프(synthetic diffs)를 생성하고 검증한다.
- 결과적으로 (코드, 진단) 쌍의 데이터셋을 생성한다.
학습 데이터에서 결정론적인 해결책을 제공하는 CodeAction이나 스타일 관련 규칙, Python 이외의 프로젝트는 제외하여 모델의 학습 효율을 높인다.
이 한국어 요약은 AI가 자동으로 만들었습니다. 원문의 주장과 맥락은 원문에서 확인해 주세요. 저작권은 원저작자에게 있습니다.