실제 저장소에서의 신뢰할 수 있는 런타임 오류 복구: 벤치마크 및 가드레일
요약
본 논문은 LLM 기반의 런타임 오류 복구 기술을 실제 저장소 환경에 적용하는 것을 목표로 합니다. 이를 위해 265개의 실제 오류를 모은 HealBench 벤치마크와, 안전성을 검증하는 HealGuard 프레임워크를 구축했습니다. 실험 결과, 기존 에이전트들이 상당한 수준의 충돌 복구 능력을 보였으나, HealGuard는 높은 오탐률을 기록하며 안전성 확보에 어려움이 있음을 보여주었습니다.
핵심 포인트
- HealBench: 실제 저장소 기반 265개 런타임 오류를 모은 새로운 벤치마크 제공
- LLM 에이전트가 파일 간 컨텍스트와 라이브 상태로 복구 시도 가능함을 입증
- HealGuard는 안전성 검증을 위해 설계되었으나, 높은 오탐률(68.42%)을 보임
- 최적의 설정은 38.11%에서 실행 재개 및 28.68% 테스트 통과율 달성
런타임 오류 복구(Runtime error healing)는 충돌한 프로그램이 현재의 실행 시간 상태를 복구하는 코드를 생성하여 계속 진행하도록 합니다. 최근 연구에 따르면 LLM이 이러한 복구 코드를 생성할 수 있다는 것이 밝혀졌지만, 이는 작은 경쟁 프로그래밍 문제에서만 평가되었으며, 라이브 프로세스 내부에서 LLM이 생성한 코드를 실행하는 것은 여전히 해결되지 않은 안전성 문제를 야기합니다. 본 논문에서는 LLM 기반의 런타임 복구를 실제 저장소에서의 활용을 목표로 합니다. 먼저, 18개의 실제 저장소에서 가져온 265개의 런타임 오류를 모은 벤치마크인 HealBench를 구축했습니다. 각 오류는 패치된 버전에 대한 참조 실행과 쌍을 이룹니다. 또한 HealBench는 LLM 에이전트가 파일 간 컨텍스트(cross-file context)와 라이브 런타임 상태를 가지고 복구할 수 있도록 하는 통합 프레임워크도 제공합니다. 다음으로, 우리는 복구 코드가 분석 가능한 Python의 부분집합인 HealCore로 작성되도록 요구하고, 정적 및 동적 오염 분석(static and dynamic taint analysis)을 사용하여 복구에 의해 변경된 상태가 개발자가 보호하는 연산에 도달하는지 확인하는 HealGuard를 설계했습니다. 우리는 전용 복구 방법과 세 가지 일반적인 코딩 에이전트를 세 개의 백본 LLM과 함께 평가했습니다. 가장 좋은 설정은 38.11%의 인스턴스에서 실행을 재개하고 목표 테스트를 28.68% 통과하여, 기존 에이전트들이 이미 의미 있는 수준의 실제 저장소 레벨 충돌을 복구할 수 있음을 보여주었습니다. 하지만, 통과한 실행 중에서도 HealGuard는 복구로 변경된 상태가 보호 연산에 도달할 수 있는 경우를 17.4% 플래그 지정했습니다. 684개의 제어 사례에서 HealGuard는 모든 안전하지 않은 경우를 감지했지만, 그 대가로 68.42%의 오탐률(false positive rate)을 보였습니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 arXiv Codex (cs.SE)의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기