KQFuzz: 대규모 언어 모델(LLM)을 통한 양자 라이브러리용 지식 가이드 퍼징 (Knowledge-Guided Fuzzing)
요약
KQFuzz는 LLM을 활용하여 양자 라이브러리의 버그를 탐색하는 새로운 지식 가이드 퍼징 기법을 제안합니다. 코드베이스 지식과 2단계 변이 전략을 통해 Qiskit, PennyLane 등 주요 라이브러리에서 높은 코드 커버리지와 버그 발견 성능을 입증했습니다.
핵심 포인트
- LLM 기반의 지식 가이드 퍼징 기법인 KQFuzz 제안
- 양자 프로그램 맞춤형 프롬프팅 스킴 도입
- 적합도 가이드 평가 및 2단계 변이 전략 활용
- 기존 방식 대비 코드 커버리지 최대 18.44% 향상
- 실제 양자 라이브러리에서 13개의 버그 발견
양자 컴퓨팅 (Quantum Computing)이 지속적으로 발전함에 따라, 양자 라이브러리 (Quantum Libraries)의 신뢰성과 정확성을 보장하는 것이 점점 더 중요해지고 있습니다. 이를 위해 잠재적인 버그를 발견하기 위해 양자 라이브러리를 대상으로 하는 많은 LLM 기반 퍼징 (Fuzzing) 접근 방식들이 제안되어 왔습니다. 그러나 이러한 방법들은 여전히 불충분한 유연성과 낮은 효율성 같은 한계점을 가지고 있으며, 이는 양자 컴퓨팅 분야의 발전을 저해합니다. 이러한 과제를 해결하기 위해, 우리는 양자 라이브러리를 위한 새로운 지식 가이드 퍼저 (Knowledge-guided fuzzer)인 KQFuzz를 제안합니다. KQFuzz는 포괄적인 코드베이스 지식을 활용하여 LLM 기반 테스트 생성을 뒷받침하며, 이를 적합도 가이드 평가 (Fitness-guided evaluation) 및 2단계 변이 (Two-level mutations)와 시너지 효과를 내어 복잡한 실행 경로를 탐색하고 잠재적인 버그를 유발합니다. 첫째, KQFuzz는 양자 프로그램에 맞춤화된 새로운 프롬프팅 스킴 (Prompting scheme)을 도입하여, 코드베이스의 지식을 전략적으로 통합함으로써 고품질의 양자 시드 프로그램 (Quantum seed programs)을 효율적으로 생성합니다. 또한, 생성된 시드 프로그램을 처리하기 위한 평가 및 변이 전략을 개발하여, 효율적인 퍼징 실행을 촉진하는 동시에 결과 테스트 케이스의 다양성을 더욱 풍부하게 합니다. 우리는 KQFuzz를 구현하고 Qiskit, PennyLane, Cirq를 포함한 세 가지 인기 있는 양자 라이브러리에 대해 퍼징을 수행했습니다. 실험 결과, 우리의 접근 방식은 커버리지 (Coverage)를 최대 18.44% 향상시키며 다른 최신 기술 (State-of-the-art) 방법들을 크게 능가함을 입증했습니다. KQFuzz를 개발하는 동안 우리는 13개의 버그를 발견했으며, 이 중 모두가 확인되었고 12개는 이미 개발자들에 의해 수정되었습니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 arXiv Codex (cs.SE)의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기