← 최신 논문
⚛️ quantum physics

KQFuzz: Knowledge-Guided Fuzzing for Quantum Libraries via Large Language Models

QKFuzz는 대규모 언어 모델, 코드베이스 인식 프롬프팅, 그리고 적합도 기반 변이 전략을 활용하여 Qiskit, PennyLane, Cirq와 같은 양자 라이브러리의 테스트 커버리지를 크게 향상시키고 버그를 찾아내는 새로운 지식 가이드형 퍼저입니다.

원저자: Fuyuan Xia, Qixin Zhang, Chenhao Ying, Haojin Zhu, Shuai Wang, Yuan Luo, Pingchuan Ma, Yuxuan Du

게시일 2026-07-29
📖 7 분 읽기🧠 심층 분석

원저자: Fuyuan Xia, Qixin Zhang, Chenhao Ying, Haojin Zhu, Shuai Wang, Yuan Luo, Pingchuan Ma, Yuxuan Du

원본 논문은 CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) 라이선스로 제공됩니다. 이것은 아래 논문에 대한 AI 생성 설명입니다. 저자가 작성하거나 승인한 것이 아닙니다. 기술적 정확성을 위해서는 원본 논문을 참조하세요. 전체 면책 조항 읽기

컴퓨터가 단순히 숫자를 계산하는 것을 넘어, 양자 물리학의 기묘한 규칙을 이용해 현실의 근간과 함께 춤을 추며 오늘날의 슈퍼컴퓨터가 영원히 걸릴 문제를 해결하는 세상을 상상해 보십시오. 이것이 바로 의학에서 금융에 이르기까지 모든 것에 혁명을 일으킬 것으로 약속된 분야인 양자 컴퓨팅의 영역입니다. 하지만 어떤 새로운 기술과 마찬가지로, 이 역시 소프트웨어 라이브러리—양자 하드웨어가 무엇을 해야 할지 알려주는 거대하고 복잡한 지침서—라는 토대 위에 구축되어 있습니다. 이 라이브러리들을 양자 기계를 위한 "운영 체제"라고 생각하십시오. 만약 이 라이브러리의 코드에 결함이 있다면, 결과가 틀릴 수 있으며, 이는 과학자들이 잘못된 결론을 내리거나 귀중하고 희소한 양자 시간을 낭비하게 만들 수 있습니다. 흔들리는 스티어링 휠을 가진 자동차를 신뢰하지 않듯, 우리는 버그가 있는 소프트웨어를 가진 양자 컴퓨터를 신뢰할 수 없습니다.

이 디지털 엔진들이 원활하게 돌아가도록 유지하기 위해, 테스터들은 "퍼징(fuzzing)"이라 불리는 기술을 사용합니다. 로봇이 수천 개의 서로 다른 열쇠를 무작위로 자물쇠에 던져보며, 하나라도 부수거나 메커니즘을 막히게 하는 것을 찾는 장면을 상상해 보십시오. 소프트웨어 테스트에서 이는 프로그램에 수백만 개의 무작위적이고 약간은 이상한 입력값을 주입하여 프로그램이 충돌하거나 이상하게 작동하는지 확인하는 것을 의미합니다. 최근 과학자들은 단순한 무작위 생성기보다 더 나은, 더 창의적인 테스트 케이스를 작성할 수 있기를 기대하며 인공지능(구체적으로는 대규모 언어 모델, LLM)을 이러한 로봇 역할을 하도록 사용하기 시작했습니다. 그러나 까다로운 양자 코드의 세계에 있어서, 이 AI 로봇들은 종종 헤매고 있으며, 양자 하드웨어에 말이 안 되는 명령을 작성하곤 합니다.

여기서 새로운 연구팀이 KQFuzz라는 영리한 솔루션으로 등장합니다. 그들은 AI가 코드를 작성하는 데는 뛰어나지만, 규칙이 빠르게 변하는 상황에서는 길을 잃기 쉽다는 점을 깨달았습니다. 그리고 양자 세계에서는 이러한 변화가 끊임없이 일어납니다. 이를 해결하기 위해 그들은 AI를 위한 "지식 가이드"를 구축했습니다. AI가 추측하게 두는 대신, KQFuzz는 라이브러리의 현재 규칙, 관계 및 이력을 담은 상세한 지도를 제공합니다. 이는 로봇에게 열쇠를 던지기 전에 GPS와 규칙 책을 주는 것과 같습니다. 이 지도를 스마트한 시스템과 결합하여, 어떤 테스트 케이스가 가장 흥미로운지 확인하고 이를 더욱 기이한 변형으로 만드는 "변이(mutation)" 과정을 거침으로써, KQFuzz는 세 가지 주요 양자 라이브러리(Qiskit, PennyLane, Cirq)에서 13개의 새로운 버그를 성공적으로 찾아냈습니다. 개발자들은 이들을 모두 확인했으며, 그중 12개는 이미 수정되었습니다.

문제점: AI가 양자의 미로에서 길을 잃을 때

양자 라이브러리는 거의 매일 형태를 바꾸는 살아있는 유기체와 같습니다. 새로운 하드웨어가 등장하면 소프트웨어는 그에 맞춰 다시 작성되어야 합니다. 이는 표준 테스트 도구들에게 악몽을 선사합니다.

첫째, 기존의 "회로 수준(circuit-level)" 퍼저들이 있습니다. 이들은 단순한 레고 구조물만 만들 줄 아는 로봇과 같습니다. 이들은 유효한 회로를 만들기 위해 엄격하게 미리 작성된 규칙을 따릅니다. 구조적 균열을 찾는 데는 유용하지만, 매우 경직되어 있습니다. 현대 양자 소프트웨어의 고차원적인 기능들을 다룰 수 없는데, 그들의 규칙 책이 구식이 되었기 때문입니다. 이들은 마치 토스트 만드는 법만 아는 요리사와 같습니다. 재료가 바로 앞에 있어도 미식 요리를 할 수는 없습니다.

다음은 AI 기반 퍼저들입니다. 이들은 에세이나 코드를 작성하는 것과 같은 종류의 기술인 대규모 언어 모델(LLM)을 사용하여 테스트 케이스를 생성합니다. 아이디어는 AI가 수백만 개의 코드 예시를 읽었으므로 완벽한 양자 프로그램을 작성할 수 있어야 한다는 것입니다. 하지만 문제는 양자 세계가 너무 빠르게 움직인다는 점입니다. AI의 학습 데이터는 종종 구식입니다. 새로운 버전의 라이브러리에 대한 코드를 작성하라는 요청을 받으면, AI는 "환각(hallucination)"을 일으키기 시작합니다. 존재하지 않는 명령을 만들어내거나 삭제된 오래된 명령을 사용합니다. 저자들의 연구에 따르면, AI에게 양자 라이브러리 코드를 작성하도록 요청했을 때 실제 작동한 시도는 **35%에서 46%**에 불과했습니다. AI가 64%에서 86%의 성공률을 보이는 일반적인 파이썬 라이브러리와 같은 고전적 소프트웨어와 비교해 보십시오. AI는 본질적으로 어둠 속에서 추측하고 있으며, 그 추측의 대부분은 틀렸습니다.

해결책: 지식 넘치는 가이드, KQFuzz

저자들은 추측하는 것을 멈추기로 했습니다. 그들은 AI를 위한 지식 넘치는 투어 가이드 역할을 하는 시스템인 KQFuzz를 구축했습니다. AI가 눈을 감고 헤매게 두는 대신, KQFff는 테스트 중인 라이브러리의 소스 코드에서 직접 추출한 "코퍼스(corpus, 말뭉치)" 즉, 지식의 집합체를 제공합니다.

이렇게 생각해 보십시오. 특정 도시에 대한 이야기를 쓰고 싶다면, 단순히 기억(그것은 틀릴 수도 있습니다)에만 의존하는 것이 아니라, 지도를 보고 거리 이름을 확인하며 건물들이 어떻게 연결되어 있는지 살펴볼 것입니다. KQFuzz는 양자 코드에 대해 정확히 그렇게 수행합니다. 다음과 같은 데이터베이스를 구축합니다:

  1. 정적 메타데이터: 라이브러리에 있는 모든 도구(API)의 정확한 이름과 위치.
  2. 관계: 서로 다른 도구들이 어떻게 소통하는지 (예: "도구 A는 보통 도구 B 다음에 온다").
  3. 의미론적 모델: 강력한 AI 모델이 코드를 읽어 작성한 각 도구가 실제로 무엇을 하는지에 대한 요약.
  4. 진화 지표: 도구들이 시간이 지남에 따라 어떻게 변해왔는지에 대한 이력, 특히 어떤 도구가 불안정하거나 자주 업데이트되는지를 강조함.

이 지도를 손에 쥐고, KQFFuzz는 퍼징 AI가 실제로 유효한 테스트 케이스를 생성하도록 안내합니다. 단순히 AI에게 "코드를 써라"라고 말하는 것이 아니라, "여기에 현재 지도가 있다. 까다롭다고 알려진 이 특정 도구들을 사용하고, 이들이 이런 방식으로 연결되도록 해라"라고 말합니다. 이 접근 방식은 생성된 코드의 유효성을 크게 높여, 실패하기 쉬운 과정을 신뢰할 수 있는 과정으로 바꾸어 놓았습니다.

전략: 2단계 변이와 적합도 검사

KQFuzz는 유효한 시작점( "시드(seed)" 프로그램)을 확보한 후, 거기서 멈추지 않습니다. 복잡한 상호작용 속에 깊이 숨겨진 버그를 찾아내야 하기 때문입니다. 이를 위해 두 단계 전략을 사용합니다.

1. 적합도 함수 (심판):
모든 테스트 케이스가 똑같이 가치 있는 것은 아닙니다. 어떤 것은 지루하고 단순하며, 어떤 것은 복잡하고 혼란스럽습니다. KQFuzz는 각 테스트 케이스를 채점하기 위해 "적합도 함수"를 사용합니다. 다음 항목들을 살핍니다:

  • 게이트 다양성(Gate Diversity): 얼마나 다양한 유형의 양자 연산이 사용되고 있는가?
  • 얽힌 큐비트(Entangled Qubits): 양자 비트들이 얼마나 복잡하게 상호작용하고 있는가?
  • API 다양성: 라이브러리의 서로 다른 부분들이 함께 테스트되고 있는가?
  • 호출 깊이(Call Depth): 명령의 사슬이 얼마나 깊게 이어지는가?

테스트 케이스가 이러한 지표에서 높은 점수를 받으면 "적합하다"고 간주되어 다음 라운드로 넘어갑니다. 이를 통해 시스템은 버그가 숨어있을 가능성이 높은 가장 유망하고 복잡한 시나리오에 에너지를 집중합니다.

2. 2단계 변이 (변신술사):
가장 좋은 테스트 케이스를 선별한 후, KQFuzz는 작고 영리한 변화를 주어 이들을 망가뜨리려 시도합니다. 두 가지 방식으로 진행됩니다:

  • 파라미터 수준 변이: 숫자를 미세하게 조정합니다. 양자 게이트는 종종 각도(예: 0, 1, 또는 π\pi)를 사용합니다. KQFuzz는 이 숫자들을 시스템을 혼란스럽게 할 수 있는 "코너 케이스(corner cases)"—즉, 기이하고 극단적인 값들—로 교체합니다.
  • 게이트 수준 구조적 변이: 회로의 구조를 변경합니다. 한 유형의 양자 게이트를 유사하게 동작하지만 내부 로직이 다른 다른 게이트로 교체합니다. 이는 자동차 섀시가 견딜 수 있는지 확인하기 위해 엔진을 다른 모델로 바꿔 끼우는 것과 같습니다.

결과: 버그를 찾아내다

연구팀은 KQFuzz를 가장 인기 있는 세 가지 양자 라이브러리인 Qiskit, PennyLane, Cirq에 대해 테스트했습니다. 그들은 다른 퍼저들과 AI 기반 테스터들을 포함한 기존의 최선 도구들과 비교했습니다.

결과는 인상적이었습니다. KQFuzz는 단순히 더 많은 버그를 찾은 것이 아니라, 다른 도구들이 완전히 놓친 코드 영역을 탐색했습니다.

  • Qiskit에서 KQFuzz는 코드의 **63.31%**를 커버한 반면, 차순위 도구는 **53.00%**에 그쳤습니다.
  • PennyLane에서는 **58.71%**의 커버리지를 달성하여, 경쟁 도구의 **45.44%**를 앞섰습니다.
  • Cirq에서는 무려 **73.79%**의 커버리지를 기록하며, 경쟁자들의 **55.35%**를 멀리 따돌렸습니다.

13개의 고유한 버그를 발견했습니다. 발견된 모든 버그는 라이브러리 개발자들에 의해 확인되었으며, 그중 12개는 이미 수정되었습니다. 이들은 단순한 오타가 아니라 "경계 위반(boundary violations, 극단적인 입력값으로 인해 소프트웨어가 충돌하는 현상)", "상태 발산(state divergence, 내부 메모리가 동기화되지 않는 현상)", "의미론적 위반(semantic violations, 코드가 문서에 명시된 것과 다르게 동작하는 현상)"과 같은 심각한 문제들이었습니다.

Qiskit에서 발견된 한 가지 구체적인 버그는 루프가 소프트웨어 스스로의 파라미터를 놓치게 만들어, 수년간 눈에 띄지 않았을 침묵의 오류를 일으키는 것이었습니다. 개발자들은 이것이 기존의 테스트 방법으로는 잡아낼 수 없었던 오래된 문제였음을 인정했습니다.

이것이 왜 중요한가

이 논문은 양자 컴퓨팅의 미래가 신뢰할 수 있는 소프트웨어에 달려 있다고 시사합니다. 이러한 라이브러리들이 급격히 진화함에 따라, 수동 테스트는 충분하지 않으며 단순한 무작위 테스트는 너무 눈이 멀어 있습니다. KQFuzz는 AI의 창의적인 힘과 엄격한 지식 기반 가이드를 결합함으로써, 유연하면서도 정확한 테스트 시스템을 구축할 수 있음을 보여줍니다. 이는 우리가 "스마트한" AI와 "안전한" 테스트 중 하나를 선택할 필요가 없음을 증명합니다. 둘 다 가질 수 있습니다.

저자들은 그들의 방법이 다양한 AI 모델에 걸쳐 견고하다는 점을 강조합니다. 더 작고 덜 강력한 AI 모델을 사용했을 때도 KQFuzz는 경쟁 도구들을 능가했는데, 이는 "지식 가이드"가 단순히 AI 뇌의 크기가 아닌 핵심 비결임을 시사합니다.

결국, KQFuzz는 양자 컴퓨팅이라는 거칠고 빠른 세계에서 버그를 찾는 가장 좋은 방법은 규칙을 스스로보다 더 잘 아는 것이라는 사실을 상기시켜 줍니다. AI에게 지도를 제공함으로써, 연구자들은 버그 없는 양자 미래를 향한 여정이 조금은 덜 흔들리도록 보장했습니다.

연구 분야의 논문에 파묻히고 계신가요?

연구 키워드에 맞는 최신 논문의 일일 다이제스트를 받아보세요 — 기술 요약 포함, 당신의 언어로.

Digest 사용해 보기 →