컴파일러 기반 추론 적응으로 GPT5의 Idris 프로그래밍 성능 극대화
초록
본 연구는 최신 대형 언어 모델 GPT5가 저자원 함수형 언어인 Idris에서 어떻게 학습되지 않은 상태에서도 높은 문제 해결률을 달성할 수 있는지를 조사한다. 제로샷 베이스라인은 56문제 중 22문제만 해결했지만, 컴파일러 오류를 직접 피드백으로 활용한 20회 반복 적응 루프를 적용하면 54문제(96%)를 해결한다. 이는 언어 모델이 컴파일러 수준의 정형 피드백을 통해 저자원 언어에 빠르게 적응할 수 있음을 시사한다.
상세 분석
본 논문은 크게 네 가지 연구 질문(RQ1‑RQ2)과 네 단계의 실험 설계로 구성된다. 첫 번째 단계에서는 GPT5를 Idris 문제집(Exercism) 56개에 제로샷 프롬프트만 적용했을 때 22문제(39%)만 해결되는 저성능을 확인한다. 이는 Idris가 GitHub 등 공개 저장소에 거의 2천 개 정도만 존재하는 저자원 언어이며, 모델이 학습 데이터에서 충분한 노출을 받지 못했기 때문으로 해석된다.
두 번째 단계에서는 네 가지 점진적 개선 전략을 비교한다.
- Exercism 오류 메시지 활용: 플랫폼이 반환하는 테스트 실패 메시지를 그대로 프롬프트에 삽입해 재생성하도록 유도한다. 단일 혹은 최대 5회 반복을 적용했지만, 오류 유형이 다양하고 메시지가 비구조적이라 큰 향상을 보이지 못한다.
- 오류 회피 매뉴얼: 초기 오류를 분류하고 자체 생성한 ‘오류 회피 매뉴얼’을 벡터스토어에 저장해, 각 문제 해결 시 검색된 조언을 컨텍스트에 추가한다. 이 방법은 반복적인 문법 오류와 타입 오류를 어느 정도 감소시키지만, 여전히 Idris 고유의 종속 타입 제약을 완전히 파악하지 못한다.
- 공식 Idris 레퍼런스 매뉴얼: 외부 PDF 형태의 공식 문서를 동일하게 벡터스토어에 삽입한다. 문서 검색을 통해 정확한 문법·표현식 정보를 제공하지만, 실제 컴파일 오류와의 매핑이 부족해 실질적인 코드 수정에 한계가 있다.
- 로컬 컴파일·테스트 피드백 루프: 가장 중요한 단계다. 모델이 생성한 코드를 로컬 Idris 컴파일러로 즉시 빌드하고, 발생한 타입 오류, 패턴 매칭 실패, 총체성 위반 등 정형화된 오류 메시지를 그대로 프롬프트에 포함한다. 이후 모델은 구체적인 오류 위치와 원인을 인식하고 코드를 재작성한다. 이 과정을 최대 20회 반복하거나 오류가 사라질 때까지 진행한다.
실험 결과, 네 번째 방법이 압도적인 성능을 보인다. 로컬 컴파일 피드백을 적용했을 때 54문제(96%)를 해결했으며, 이는 다른 세 방법이 각각 30~38% 수준에 머물렀던 것과 큰 격차다. 특히, 종속 타입 언어에서 발생하는 ‘totality violation’이나 ‘unfilled holes’ 같은 정형 오류는 컴파일러가 제공하는 구체적 메시지를 통해 모델이 빠르게 학습한다는 점이 핵심이다.
또한, 오류 유형별 성공률 분석을 통해 컴파일러 피드백이 ‘syntax/typo’ 오류뿐 아니라 ‘type mismatch’, ‘pattern match incompleteness’까지 포괄적으로 커버함을 확인했다. 이는 기존 연구에서 강조된 ‘self‑debugging’이나 ‘execution trace 기반 피드백’보다 정형 오류가 더 강력한 학습 신호임을 실증한다.
한계점으로는 (1) 실험이 Idris 한 언어와 Exercism 플랫폼에 국한돼 일반화 가능성을 검증하기 어렵다, (2) 컴파일러 피드백을 활용하려면 로컬 빌드 환경이 필요해 클라우드 기반 자동화에 제약이 있다, (3) 20회 반복 제한이 실제 개발자 워크플로우와 일치하는지 여부가 불명확하다. 향후 연구에서는 다중 저자원 언어(Agda, Forth 등)와 다양한 IDE/CI 파이프라인에 적용해 확장성을 검증하고, 컴파일러 오류를 자동 요약·정규화하는 프리프로세싱 모듈을 개발해 프롬프트 효율성을 높이는 방안을 모색할 필요가 있다.
댓글 및 학술 토론
Loading comments...
의견 남기기