입력 축소로 강화된 LLM 기반 프로그램 자동수정

입력 축소로 강화된 LLM 기반 프로그램 자동수정
안내: 본 포스트의 한글 요약 및 분석 리포트는 AI 기술을 통해 자동 생성되었습니다. 정보의 정확성을 위해 하단의 [원본 논문 뷰어] 또는 ArXiv 원문을 반드시 참조하시기 바랍니다.

초록

본 논문은 대규모 언어 모델(LLM)을 활용한 자동 프로그램 수정을 위해, 길이가 큰 실패 유발 테스트 입력을 자동으로 축소하는 ReduceFix 프레임워크를 제안한다. 1 MB 평균 크기의 테스트 데이터를 89 % 이상 압축하고, 기존 LLM 기반 APR 시스템의 성공률을 최대 53.8 % 향상시킨다.

상세 분석

ReduceFix는 세 단계 파이프라인으로 구성된다. 첫 번째 단계에서는 “one‑shot” 프롬프트를 이용해 LLM에게 ddmin 알고리즘을 기반으로 한 맞춤형 입력 축소 스크립트를 생성하도록 요청한다. 이때 문제 설명, 기존 예시 리듀서 코드, 현재 과제의 I/O 샘플을 함께 제공함으로써 LLM이 다양한 포맷(텍스트, JSON, 맞춤 인코딩 등)에 적용 가능한 파이썬 리듀서를 자동 생성한다. 두 번째 단계에서는 생성된 리듀서를 제한된 시간(60 초) 내에 실행해 원본 실패 입력을 최소한의 크기로 압축한다. 압축률 ρ=1−|i*|/|i₀|가 0.89에 달하며, 95 % 이상의 사례에서 축소된 입력이 여전히 참조 구현과 버그 코드 사이의 출력 차이를 유지한다는 점이 핵심이다. 세 번째 단계에서는 축소된 입력 i와 버그 코드, 문제 설명을 하나의 프롬프트에 결합해 LLM에게 패치를 생성하도록 한다. 컨텍스트 길이 제한을 고려해 i가 여전히 큰 경우 앞·뒤 절반을 유지하고 중간을 생략하는 트렁케이션 전략을 적용한다. 후보 패치는 최대 10개까지 생성·컴파일·전체 테스트 스위트 검증을 거쳐 최초 통과 패치가 반환된다. 실험에서는 Qwen2.5‑Plus, GLM‑4‑9B‑chat 등 네 종류 LLM에 적용했으며, 원본 테스트를 그대로 포함했을 때보다 pass@10이 평균 53.8 % 상승했다. 또한, 기존 APR 도구인 ChatRepair와 CREF에 ReduceFix의 리듀서만 삽입해도 각각 21.3 %와 2.6 %의 성능 향상이 관찰되었다. 이는 입력 길이가 LLM의 주의 집중을 방해하는 “lost‑in‑the‑middle” 현상을 효과적으로 완화함을 의미한다. 추가 실험으로 OSS‑Fuzz 크래시 사례에 적용했을 때도 마이크로 평균 pass@10이 16.7 %에서 41.7 %로 크게 개선되었다. Ablation 연구에서는 입력 길이 자체가 성능에 가장 큰 영향을 미치며, 압축된 실패 정보만을 제공하는 것이 가장 큰 이득을 준다는 결론을 도출한다. 전체적으로 ReduceFix는 인간 개입 없이 다양한 포맷의 대용량 테스트 입력을 자동으로 축소하고, 이를 통해 LLM 기반 APR의 확장성과 효율성을 크게 높이는 실용적인 솔루션이다.


댓글 및 학술 토론

Loading comments...

의견 남기기