NISQ란 무엇인가
NISQ는 noisy intermediate-scale quantum의 약자입니다. 핵심은 “실제 양자장비는 존재하지만, 긴 회로를 안정적으로 돌릴 만큼 오류정정이 충분하지 않다”는 뜻입니다. 따라서 NISQ 실험은 보통 아래 질문에서 시작합니다.
- 내 회로가 너무 깊지 않은가?
- 2큐비트 게이트가 너무 많지 않은가?
- 측정 오류가 결과 분포를 얼마나 바꾸는가?
- 같은 회로를 여러 번 실행했을 때 통계적으로 의미 있는 차이가 보이는가?
오류 종류
| 오류 | 의미 | 실무 영향 |
|---|---|---|
| readout error | 측정값 0/1이 잘못 읽힘 | 최종 bitstring 분포가 섞임 |
| 1Q gate error | 단일 큐비트 회전이 이상적으로 안 됨 | 작지만 많이 쌓이면 결과가 흐려짐 |
| 2Q gate error | CX/CZ 같은 얽힘 게이트 오류 | NISQ 회로의 주된 병목 |
| decoherence | 시간이 지나며 상태가 환경과 얽혀 정보 손실 | 긴 회로, idle time에 취약 |
| crosstalk | 한 큐비트 조작이 다른 큐비트에 영향 | 병렬 실행과 배치에 따라 결과 변동 |
Depth가 커지면 생기는 문제
회로 depth는 병렬 실행을 고려한 시간 단계 수입니다. depth가 커진다는 것은 큐비트가 더 오래 coherence를 유지해야 하고, 더 많은 gate error와 idle error를 견뎌야 한다는 뜻입니다.
특히 NISQ에서는 “수학적으로 같은 유니터리”라도 짧은 회로와 긴 회로의 결과가 다릅니다. 긴 회로는 아래 문제가 함께 커집니다.
- 게이트 수 증가로 오류가 누적됩니다.
- 큐비트가 대기하는 idle time이 늘어납니다.
- routing SWAP이 추가되어 2큐비트 게이트가 늘어납니다.
- decoherence 시간 T_1,T_2에 가까워지면 상태 정보가 흐려집니다.
- 긴 실행 중 calibration drift가 결과에 영향을 줄 수 있습니다.
따라서 NISQ 실험에서 회로 최적화는 미적 취향이 아니라 생존 조건입니다. depth를 줄이는 것은 단순히 빠르게 실행한다는 뜻이 아니라, 양자상태가 망가지기 전에 계산을 끝낸다는 뜻입니다.
간단한 오류 모델
게이트마다 독립적으로 작은 오류율 p_g가 있다고 아주 거칠게 보면 성공확률은 아래처럼 줄어듭니다.
$$
P_{\mathrm{success}}\approx \prod_g(1-p_g)\approx e^{-\sum_g p_g}
$$이 식은 실제 장비를 정확히 설명하지는 않지만, 왜 gate count와 depth를 줄여야 하는지 감각을 줍니다. 오류율이 0.1%라도 게이트가 수천 개면 전체 결과는 크게 망가질 수 있습니다.
대표 noise channel
오류를 수학적으로 볼 때는 noise channel을 사용합니다. 실제 하드웨어 noise는 더 복잡하지만, 아래 모델들은 문제 지점을 이해하는 기본 언어입니다.
| 모델 | 간단한 의미 | 문제 지점 | 완화 감각 |
|---|---|---|---|
| bit flip | |0\rangle\leftrightarrow |1\rangle 뒤집힘 | 계산기저 결과가 반대로 읽힘 | 반복 측정, readout mitigation, bit-flip code, 오류정정 |
| phase flip | |1\rangle 성분에 부호 변화 | 측정 전 간섭 패턴이 망가짐 | echo, dynamical decoupling, phase calibration, phase-flip code |
| depolarizing | 상태가 무작위 Pauli 오류와 섞임 | Bloch vector가 원점 쪽으로 줄어듦 | gate 수 감소, noise-aware transpilation, error mitigation |
| T_1 | 에너지 이완, excited state가 ground로 내려감 | |1\rangle 정보가 시간에 따라 사라짐 | 회로 시간 단축, reset/calibration, 좋은 큐비트 선택 |
| T_2 | 위상 coherence 손실 | 중첩의 상대위상이 흐려짐 | echo, dynamical decoupling, idle time 감소 |
Bit flip과 phase flip
bit flip은 Pauli X 오류로 볼 수 있습니다.
$$
X(\alpha|0\rangle+\beta|1\rangle)
=
\beta|0\rangle+\alpha|1\rangle
$$이 오류는 계산기저 측정에서 비교적 직관적입니다. 0이어야 할 결과가 1로, 1이어야 할 결과가 0으로 나옵니다. 완화는 readout calibration, 반복 측정, majority vote, 오류정정 code로 접근합니다.
phase flip은 Pauli Z 오류입니다.
$$
Z(\alpha|0\rangle+\beta|1\rangle)
=
\alpha|0\rangle-\beta|1\rangle
$$계산기저로 바로 측정하면 phase flip이 안 보일 수 있습니다. 하지만 Hadamard 뒤 간섭을 이용하는 알고리즘에서는 치명적입니다. Deutsch-Jozsa, Bernstein-Vazirani, Grover 같은 알고리즘은 부호와 위상 간섭을 쓰므로 phase error가 곧 정답 진폭을 흐리는 원인이 됩니다.
Depolarizing noise
depolarizing noise는 상태가 일정 확률로 완전히 섞인 상태 쪽으로 이동하는 모델입니다.
$$
\mathcal{E}(\rho)
=(1-p)\rho+p{I\over2}
$$다중 큐비트에서는 Pauli 오류가 무작위로 섞인 형태로 생각할 수 있습니다. 이 모델은 실제 장비의 모든 세부를 설명하지는 않지만, 회로가 길어질수록 결과가 “특정 답”이 아니라 “균등분포” 쪽으로 밀리는 현상을 이해하는 데 유용합니다.
완화는 특정 마법 한 방이 아니라 회로 단축, 좋은 layout 선택, 2큐비트 게이트 감소, noise model 기반 simulator 비교, readout mitigation과 ZNE를 함께 쓰는 식으로 접근합니다.
T1과 T2
T_1은 에너지 이완 시간입니다. 큐비트가 |1\rangle 같은 높은 에너지 상태에 있다가 환경으로 에너지를 잃고 |0\rangle 쪽으로 내려가는 시간척도입니다.
T_2는 위상 coherence가 유지되는 시간입니다. 상태가 (|0\rangle+|1\rangle)/\sqrt2처럼 중첩에 있을 때, 두 성분의 상대위상이 얼마나 오래 의미를 갖는지를 나타냅니다.
$$
{1\over T_2}\approx {1\over 2T_1}+{1\over T_\phi}
$$여기서 T_\phi는 순수 dephasing 성분입니다. 실무적으로는 회로 실행 시간이 T_1,T_2에 비해 충분히 짧아야 합니다. 완화는 idle time 감소, dynamical decoupling, echo pulse, 더 짧은 transpiled circuit, coherence가 좋은 큐비트 선택입니다.
측정 보정
readout error는 calibration matrix로 보정하는 방식이 기본입니다. 한 큐비트에서 실제 상태와 측정 결과 사이를 아래 행렬로 근사합니다.
$$
M=
\begin{bmatrix}
P(0|0)&P(0|1)\\
P(1|0)&P(1|1)
\end{bmatrix}
$$관측된 분포 p_{\mathrm{obs}}가 있으면 이상적인 분포를 대략 M^{-1}p_{\mathrm{obs}}로 되돌립니다. 큐비트 수가 많아지면 전체 calibration matrix가 커지므로, 독립 readout 가정이나 local mitigation을 사용합니다.
ZNE
Zero-noise extrapolation은 같은 회로를 일부러 더 noisy하게 실행한 뒤 noise가 0일 때의 값을 외삽합니다.
- 원래 회로를 실행해 기대값 E(\lambda)를 얻습니다.
- gate folding 등으로 noise scale을 \lambda=1,3,5처럼 키웁니다.
- 값들을 fitting해 \lambda=0을 추정합니다.
단점은 shots가 더 필요하고, noise가 scale된다는 가정이 맞아야 한다는 점입니다.
PEC
Probabilistic error cancellation은 noisy operation을 이상적 operation들의 quasi-probability 조합으로 보정하는 생각입니다. 이론적으로 강하지만 sampling overhead가 커질 수 있습니다.
$$
\mathcal{U}\approx \sum_i q_i\mathcal{N}_i,
\qquad \sum_i |q_i|>1
$$계수의 절댓값 합이 커질수록 필요한 shots가 늘어납니다. 그래서 작은 회로와 잘 characterizing된 noise에서 더 현실적입니다.
현시점 하드웨어 접근들
양자컴퓨터를 만드는 방식은 하나가 아닙니다. 아래는 실사용 문맥에서 알아두면 좋은 대표 접근입니다. 이 표는 투자나 성능 순위가 아니라, 오류와 보정 전략이 왜 플랫폼마다 달라지는지 이해하기 위한 개요입니다.
| 접근 | 대표 플레이어 | 핵심 아이디어 | 주요 과제 |
|---|---|---|---|
| 초전도 큐비트 | Google Quantum AI, IBM Quantum, Rigetti 등 | 극저온 회로에서 인공 원자처럼 동작하는 큐비트를 만들고 빠른 microwave gate를 사용 | coherence, crosstalk, 배선/냉각, surface code 기반 오류정정 overhead |
| 트랩 이온 | IonQ, Quantinuum 등 | 진공 속 이온의 내부 상태를 큐비트로 쓰고 레이저로 제어 | 게이트 속도, 레이저/광학 제어, 많은 이온을 확장하는 architecture |
| 중성 원자 | QuEra, Pasqal 등 | 광 tweezer로 원자를 배열하고 Rydberg 상호작용으로 얽힘 생성 | 개별 제어, readout, 오류정정 회로화, gate fidelity |
| 광자 | Xanadu 등 | 빛의 모드와 측정을 이용해 계산 | loss, deterministic entangling gate, 대규모 feed-forward |
| 양자 어닐링 | D-Wave 등 | 게이트 모델이 아니라 Ising/QUBO 최적화 문제를 물리계 에너지 최소화로 풂 | 범용 게이트 모델과 다름, embedding overhead, 문제 적합성 |
Google과 IBM 같은 초전도 계열은 surface code류 오류정정을 통해 물리 큐비트 여러 개로 logical qubit을 만드는 방향을 강하게 밀고 있습니다. 사용자가 말한 “오차를 역방향으로 상쇄”한다는 감각은 error mitigation에서는 ZNE/PEC처럼 관측값을 보정하는 방향이고, fault-tolerant quantum computing에서는 오류 syndrome을 측정해 logical information을 보호하는 방향으로 이해하면 됩니다.
IonQ와 Quantinuum 같은 trapped-ion 계열은 긴 coherence와 높은 연결성을 장점으로 내세웁니다. 대신 레이저 제어, 이온 이동, 모듈화 같은 확장 문제가 중요합니다. 플랫폼마다 강점과 병목이 다르기 때문에, 같은 회로라도 어떤 하드웨어에서 실행하느냐에 따라 좋은 설계가 달라집니다.
실험 워크플로우
- 먼저 simulator에서 이상적 결과를 확인한다.
- transpilation 후 depth, 2Q count, layout을 기록한다.
- hardware 또는 noise model에서 raw result를 얻는다.
- readout mitigation을 적용한다.
- 가능하면 ZNE 등으로 기대값 보정을 시도한다.
- raw와 mitigated 결과를 둘 다 보관한다.