Qiskit Paulice
qiskit-paulice는 시공간 스태빌라이저 코드를 사용해 임의의 큐비트 연결 구조를 가진 임의의 Clifford 회로에 하드웨어 효율적인 Pauli 검사를 삽입하는 패키지입니다. 이 검사는 회로 실행 중 논리 오류를 감지하는 데 사용할 수 있습니다. 오류가 감지되지 않은 샘플만 사후 선택하면 일부 보조 큐비트와 샘플링 오버헤드 증가를 감수하는 대신 양자 프로세서로 샘플링한 상태의 충실도를 높일 수 있습니다. 이 방법은 내결함성 양자 컴퓨팅에 비해 큐비트와 게이트 오버헤드가 훨씬 작고, ZNE나 PEC 같은 오류 완화 방법보다 샘플링 오버헤드가 더 좋기 때문에 가까운 미래의 하드웨어에 특히 적합합니다 [1].
시공간 Pauli 검사는 독립적인 오류 감지 루틴을 구현하는 데 사용할 수 있지만, 오류 완화와 오류 정정의 맥락에서도 의미가 있습니다. 오류 감지는 게이트와 측정에 영향을 주는 노이즈 일부를 포착함으로써 확률적 오류 상쇄(PEC) 같은 오류 완화 기법을 보완할 수 있으며, 역변환해야 할 노이즈 채널의 영향을 줄여 샘플링 오버헤드를 낮춥니다. 또한 데이터 큐비트를 논리 오류로부터 보호하기 위해 스태빌라이저 코드를 구현하는 것이 전통적인 오류 정정의 핵심 개념이므로, 실용적인 내결함성으로 가는 초기 단계로 볼 수도 있습니다. 이 방법은 양자 상태에 대한 단일 샷 접근을 제공하므로, 샘플링 기반 워크플로와 기댓값 기반 워크플로 모두에서 사용할 수 있습니다.
시작하기
이 패키지를 빠르게 시작하는 데 도움이 되는 간단한 가이드는 빠른 시작 가이드에서 볼 수 있습니다.
활용 사례 예시
이 기법은 물리 큐비트 97개를 사용해 논리 큐비트 70개에 걸친 논리 얽힘 게이트 2415개를 인코딩한, Clifford 중심 회로의 샘플 충실도를 향상시키는 데 사용되었습니다 [2].
기술 설명
좋은 시공간 Pauli 검사 집합 찾기
각 검사가 유효하고, 가중치가 낮으며, 효과적이면 시공간 Pauli 검사 집합은 "좋은" 집합입니다.
검사는 회로의 일부 와이어 에 놓인 여러 제어 Pauli 회전 로 구성됩니다: . 주어진 검사에서 제어는 단일 보조 큐비트에 있고, 회전은 단일 타깃 큐비트의 와이어에서 일어납니다. Clifford 회로에서는 역전파된 곱이 이상적인 회로가 준비하는 상태의 스태빌라이저이면 검사가 유효합니다: . 여기서 는 에서 회로의 시작까지 의 역전파 연산자이고, 는 회로의 모든 스태빌라이저의 집합입니다.
구현에 얽힘 게이트가 적게 필요하면 검사의 가중치가 낮습니다. 검사 선택 알고리즘은 가중치가 낮고 가장 효과적인 오류 감지를 제공하는 검사를 선호합니다.
검사가 도입하는 오류보다 훨씬 많은 오류를 포착하면 그 검사는 효과적입니다. Pauli 검사는 여러 얽힘 게이트로 구성되므로 계산에 약간의 추가 게이트 노이즈를 도입합니다. 추가되는 검사마다 오류 감지 능력이 더해지는지 확인하는 것이 중요합니다. 검사 집합의 효과는 검사가 밝혀내는 Pauli 오류를 사후 선택된 노이즈 채널로 합성하고 그 영향을 계산하여 근사할 수 있습니다. 밝혀지지 않은 역노이즈 채널을 구현하는 샘플링 오버헤드를 최소화하는 것은 검사가 감지하지 못하는 오류의 양을 알려 주므로 좋은 검사를 선택하기 위한 견고한 휴리스틱입니다. 더 느리지만 더 현실적인 접근법은 노이즈가 있는 상태에서 몬테카를로 샘플링을 수행하고 사후 선택된 분포의 논리 오류율을 경험적으로 계산하는 것입니다. 두 접근법 모두 qiskit_paulice.add_pauli_checks 함수에 내장 비용 함수로 제공됩니다.
신드롬 데이터를 기반으로 샘플 사후 선택하기
이 패키지에서 검사는 보조 큐비트 하나와 타깃 큐비트 하나 사이의 얽힘 게이트를 사용해 구현됩니다. 각 보조 큐비트는 에서 시작하므로 가 입력 상태를 안정화합니다. 보조 큐비트의 시작부터 검사가 추가된 회로 전체를 거쳐 를 순방향 전파하면 출력에 Pauli 연산자가 나오며, 이 연산자는 가중치가 더 높고 페이로드 회로까지 확장될 수 있습니다. 이 출력 연산자가 항등이 아닌 항을 갖는 큐비트 인덱스를 검사의 지지집합(support)이라고 하며, 검사의 지지집합에 있는 비트 의 패리티가 짝수이면 검사를 통과합니다: . 모든 검사가 패리티 검사에서 을 내면 샘플을 유지합니다.
소프트웨어 기능
-
백엔드 벤치마크 데이터로부터 노이즈 모델 자동 생성
-
Rust로 가속된 검사 탐색
-
검사 탐색을 위한 내장 알고리즘 3개
-
RZ 게이트 도핑 지원
-
오류 감지와 오류 완화의 결합 지원
알려진 문제
-
유휴 노이즈는
NoiseModel.get_backend를 통해 제공되지 않으며 검사 선택 중에는 무시됩니다 -
알고리즘의 많은 확률적 단계는 랜덤 시드로 제어할 수 있지만, 일부 기능은 시드로 제어할 수 없는 무작위성을 가집니다. 구체적으로
add_pauli_checks의 다음 kwargs 값은 비결정적 검사 선택을 일으킵니다:cost="LER",method="genetic",method="windowed_genetic". 결정적 동작이 필요하면 기본값인add_pauli_checks(..., cost="gamma", method="windowed")를 사용하세요.
향후 작업
-
검사를 선택할 때 유휴 노이즈 처리
-
논리 오류율 비용 함수와 유전 탐색 알고리즘을 위한 제어 가능한 무작위성
기여하기
소스 코드는 GitHub에서 볼 수 있습니다.
개발자 가이드는 이 프로젝트 저장소의 루트에 있는 CONTRIBUTING.md에 있습니다. 참여하시는 분은 Qiskit의 행동 강령을 지켜야 합니다.
이 패키지 인용하기
연구에서 이 패키지를 사용한다면, 이 프로젝트 저장소의 CITATION.bib 파일을 사용해 적절한 참고 문헌을 인용하세요.
라이선스
지원 중단 정책
저희는 시맨틱 버전 관리를 따릅니다. 사용자 경험을 개선하기 위해 가끔 호환되지 않는 변경을 할 수 있습니다. 가능한 경우 새 인터페이스와 공존할 수 있는 한 기존 인터페이스를 유지하고 지원 중단(deprecated)으로 표시합니다. 모든 주요 개선, 호환되지 않는 변경, 지원 중단은 릴리스 노트에 기록됩니다.
참고 문헌
-
Simon Martiel, Ali Javadi-Abhari, Low-overhead error detection with spacetime codes, arXiv:2504.15725 [quant-ph].
-
Simon Martiel, et al., Sampling hard circuits with verifiably high fidelity, arXiv:2607.25941 [quant-ph].