주 콘텐츠로 건너뛰기

자연 시뮬레이션

Olivia Lanes의 양자 컴퓨터를 이용한 자연 시뮬레이션 영상을 시청하거나, YouTube에서 별도 창으로 열어볼 수 있습니다.

이 수업에서는 다음 튜토리얼의 내용을 활용합니다:

확률적 오류 증폭을 이용한 유틸리티 규모 오류 완화 튜토리얼

소개

양자 컴퓨터의 가장 매력적인 응용 분야 중 하나는 자연 현상을 시뮬레이션하는 능력입니다. 이 수업에서는 양자 컴퓨터가 양자 역학 문제, 특히 양자 시스템의 시간 진화를 이해하는 데 어떻게 활용되는지 살펴봅니다.

먼저 이러한 시뮬레이션을 수행하는 일반적인 단계들을 폭넓게 살펴본 다음, IBM이 2023년에 발표한 구체적인 실험 사례—양자 유틸리티 개념을 제시한 실험—를 검토합니다. 이 실험은 실제 양자 하드웨어로 양자 역학 시뮬레이션을 수행하는 실질적인 단계와 함의를 이해하는 데 훌륭한 사례 연구가 됩니다. 수업을 마치면, 연구자들이 이러한 문제에 접근하는 방식과 양자 시뮬레이션이 자연 세계에 대한 이해를 높이는 데 왜 그토록 기대되는지 더 명확하게 파악할 수 있을 것입니다.

리처드 파인만은 1959년 캘텍에서 매우 영향력 있는 강연을 했습니다. 이 강연은 미시적 규모에서의 광활하고 탐험되지 않은 가능성을 유쾌하게 암시하며 "아래에는 공간이 충분하다(There's Plenty of Room at the Bottom)"라는 제목으로 유명해졌습니다. 파인만은 원자 및 아원자 수준의 물리학 대부분이 아직 밝혀지지 않았다고 주장했습니다.

이 강연의 중요성은 기술이 발전한 1980년대에 더욱 커졌습니다. 이 시기에 파인만은 캘텍에서 열린 또 다른 중요한 강연에서 이러한 아이디어를 다시 다루며 "컴퓨터로 자연 시뮬레이션하기(Simulating Nature with Computers)"라는 논문을 발표했습니다. 그는 거기서 대담한 질문을 제기했습니다: 컴퓨터를 사용하여 양자 수준에서 자연의 행동을 복제하는 정확한 시뮬레이션을 수행할 수 있을까? 파인만은 원자 과정을 모델링하기 위한 거친 근사에 의존하는 대신, 양자역학의 법칙 자체를 활용하는 컴퓨터를 사용할 수 있다고 제안했습니다—단순히 자연을 모델링하는 것이 아니라, 자연을 모방하는 방식으로요.

이 수업에서 다룰 물리적 시뮬레이션이 바로 이러한 유형입니다.

이전 에피소드에서 소개된 다음 타임라인 그래픽을 떠올려봅시다. 스펙트럼의 한쪽 끝에는 풀기 쉽고 양자 컴퓨팅의 향상된 속도가 필요하지 않은 문제들이 있습니다.

쉬운 문제부터 어려운 문제까지의 분포를 보여주는 다이어그램으로, 양자 컴퓨터가 필요 없는 경우부터 내결함성 양자 컴퓨터가 필요한 경우까지를 나타내며, 우리가 중간 영역의 문제에 집중하고 있음을 보여줍니다.

반대쪽 끝에는 완전한 내결함성 양자 기계—아직 실현되지 않은 기술—를 필요로 하는 매우 어려운 문제들이 있습니다. 다행히도 많은 시뮬레이션 문제들은 이 타임라인의 중간 어딘가에 해당하는 것으로 여겨지며, 오늘날의 양자 컴퓨터로도 효과적으로 적용할 수 있는 범위 내에 있습니다. 자연 시뮬레이션은 다양하고 유망한 응용 분야의 기반을 이루기 때문에, 이 전망에 흥미롭고 설레는 이유가 많습니다.

다음 내용은 자연 시뮬레이션의 일반적인 워크플로우와 이를 잘 알려진 연구 결과를 재현하는 데 적용한 구체적인 사례를 다룹니다.

일반 워크플로우

누구든 이 흥미로운 영역에 양자 컴퓨팅을 적용하기 전에, 일반적인 시뮬레이션 워크플로우의 기본 단계를 먼저 이해하는 것이 중요합니다:

  1. 시스템 해밀토니안 식별
  2. 해밀토니안 인코딩
  3. 상태 준비
  4. 상태의 시간 진화
  5. Circuit 최적화
  6. Circuit 실행
  7. 후처리

프로세스는 관심 있는 양자 시스템을 식별하는 것으로 시작합니다. 이를 통해 시간 진화를 지배하는 해밀토니안과 초기 특성(즉, 상태)에 대한 의미 있는 설명을 결정할 수 있습니다. 다음으로, 이 상태의 시간 진화를 구현할 적절한 방법을 선택해야 합니다. 이 워크플로우의 처음 네 단계는 모두 Qiskit patterns 프레임워크의 매핑(Mapping) 단계에 해당합니다.

시간 진화 Circuit을 설정한 후, 이후 단계들은 실제 실험을 수행하는 것을 포함합니다. 일반적으로 시간 진화 알고리즘을 구현하는 양자 Circuit 최적화, 양자 하드웨어에서 Circuit 실행, 그리고 결과 후처리가 포함됩니다. 이는 Qiskit patterns 프레임워크의 마지막 세 단계와 동일합니다.

다음으로, 코딩으로 넘어가기 전에 이러한 단계들이 무엇을 의미하는지 설명합니다.

1. 시스템 해밀토니안 식별

시뮬레이션 실험을 수행하는 첫 번째 필수 단계는 시스템을 설명하는 해밀토니안을 식별하는 것입니다. 많은 경우 해밀토니안은 이미 잘 확립되어 있습니다. 그러나 우리는 종종 시스템의 더 작은 부분들의 에너지 기여를 합산하여 구성합니다. 이는 일반적으로 다음과 같은 항의 합으로 표현됩니다:

H=iNHiH=\sum_i^N {H_i}

여기서 각 항 HiH_i는 전체 해밀토니안 HHNN개 국소 부분 시스템(단일 입자 또는 소규모 입자 그룹과 같은) 중 하나에 작용합니다. 구별 불가능한 기본 입자의 경우, 시스템이 페르미온인지 보존인지 판단하는 것이 중요합니다. 페르미온은 파울리 배타 원리를 따르며, 이는 전자와 같이 동일한 두 페르미온이 같은 양자 상태를 점유할 수 없음을 의미합니다. 페르미온과 달리, 여러 보존은 동일한 양자 상태에 존재할 수 있으며, 이 차이는 시스템의 통계와 모델링 방식에 영향을 미칩니다.

실제로, 사람들은 종종 원소들이 잘 분리되어 있거나 레이블이 붙어 있어 격자 위의 스핀처럼 구별 가능하다고 가정하는 물리적 시스템에 관심을 가집니다.

스핀이 있는 격자와 페르미온인 전자를 통해 결합된 분자.

이 시스템은 격자 위에 배열된 자기 쌍극자 스핀으로 구성되며, 주소를 계산하여 구별 가능한 입자로 처리됩니다. 이 시스템은 횡자기장 이징 모델(Transverse-Field Ising Model)로 설명되며, 해밀토니안은 두 부분의 합으로 구성됩니다:

H=iNHi=J<i,j>ZiZj+hi=0NXiH = \sum_i^N {H_i} = J \sum_{<i,j>}Z_iZ_j + h\sum_{i=0}^N X_i

여기서 첫 번째 항은 인접한 스핀 사이의 상호작용 에너지를 나타냅니다. <i,j><i,j>는 격자에서 직접 연결된 모든 스핀 쌍에 대해 합산함을 나타내고, ZiZ_iZjZ_j는 사이트 iijj에서 스핀의 상태를 나타내는 파울리-Z 행렬이며, JJ는 이 상호작용의 강도를 정의하는 결합 상수입니다. 두 번째 항은 전체 시스템에 걸쳐 가해지는 외부 자기장의 영향을 나타냅니다. 여기서 XiX_i는 사이트 ii의 개별 스핀에 작용하는 파울리-X 행렬이고, hh는 이 외부 자기장의 강도를 나타냅니다.

2. 해밀토니안 인코딩

다음 단계는 해밀토니안을 양자 컴퓨터가 처리할 수 있는 형태로 변환하는 것으로, 이를 인코딩이라고 합니다. 이 인코딩 과정은 시스템 내 입자의 유형(구별 가능 또는 구별 불가능, 그리고 구별 불가능한 경우 페르미온 또는 보존)에 따라 크게 달라집니다.

보존, 페르미온, 격자 위의 스핀과 같은 구별 가능한 입자 등 다양한 시스템 유형에 대한 잠재적 매핑 유형을 보여주는 순서도.

격자에 고정된 1/21/2 스핀과 같이 구별 가능한 입자를 가진 시스템의 경우, 위에서 간단히 살펴보았듯이, 해밀토니안은 종종 이미 Qubit과 호환되는 언어로 작성되어 있습니다. 예를 들어 파울리-Z 연산자는 자연스럽게 스핀의 위 또는 아래 방향을 설명하며, 특별한 인코딩이 필요하지 않습니다.

페르미온이나 보존과 같은 구별 불가능한 입자를 시뮬레이션할 때는 인코딩 변환을 적용해야 합니다. 이 입자들은 2차 양자화(second quantization)라고 불리는 특별한 수학적 프레임워크 내에서 설명되며, 생성 연산자 a^i\hat{a}_i^\dagger가 상태 ii에 하나의 입자를 추가하고 소멸 연산자 a^i\hat{a}_i가 상태 ii에서 하나의 입자를 제거하는 방식으로 각 양자 상태의 점유 수를 추적합니다. 이 2차 양자화 프레임워크를 기반으로, 페르미온은 브라비-키타에프(Bravyi-Kitaev) 변환과 조던-위그너(Jordan-Wigner) 변환을 통해 변환될 수 있습니다. 조던-위그너 변환은 페르미온 생성 연산자 f^j=(k<j(Zk))(Xj+iYj2)\hat{f}_j^\dagger = \Bigl( \prod\limits_{k \lt j}{(-Z_k)} \Bigr)\Bigl( \frac{X_j + i Y_j}{2} \Bigr)를 정의하며, 이는 jj번째 양자 상태에 페르미온을 채우고, 페르미온 소멸 연산자 f^j=(k<j(Zk))(XjiYj2)\hat{f}_j= \Bigl( \prod\limits_{k \lt j}{(-Z_k)} \Bigr)\Bigl( \frac{X_j - i Y_j}{2} \Bigr)jj번째 상태에서 페르미온을 제거합니다. 이 조던-위그너 변환에 대한 자세한 내용은 양자 컴퓨팅 실습, 에피소드 5 - 매핑에서 확인할 수 있습니다. 마찬가지로, 보존도 Qubit으로 표현하기 위해 홀스타인-프리마코프(Holstein-Primakoff) 변환과 같은 고유한 인코딩 방법이 필요합니다.

결국, 경로가 직접적이든 변환이 필요하든, 목표는 동일합니다: 양자 컴퓨터가 이해하고 실행할 수 있는 파울리 스핀 연산자 형태로 시스템의 해밀토니안을 표현하는 것입니다.

3. 상태 준비

원하는 해밀토니안을 양자 컴퓨터의 Gate 집합으로 인코딩한 후, 다음으로 중요한 단계는 시뮬레이션을 시작할 적절한 초기 양자 상태를 선택하는 것입니다. 초기 상태의 선택은 변분 양자 고유값 분해기(VQE)와 같은 변분 알고리즘의 수렴뿐만 아니라 시간 진화 및 샘플링의 정확도와 효율성에도 영향을 미칩니다. 본질적으로, 초기 상태는 계산의 시작점으로 작용하며 모델링되는 양자 시스템에서 유용한 관측값을 추출하기 위한 토대를 마련합니다. 이상적으로, 이 상태는 연구 중인 시스템의 물리적으로 의미 있는 구성을 나타내야 합니다.

많은 양자 화학 시뮬레이션에서 하트리-폭(Hartree-Fock) 상태가 좋은 출발점이 될 수 있습니다. 2차 양자화의 언어로, 하트리-폭 상태(ϕHF|\phi\rangle_{HF})는 전자가 없는 상태인 진공 상태(vac=01...0k...0N=0N|vac\rangle = |0_1 ... 0_k ... 0_N\rangle = |0\rangle ^{\otimes N})에 각각의 최저 에너지 오비탈에 대한 생성 연산자(a^i\hat{a}_i^\dagger)를 적용하여 생성됩니다.

ϕHF=i=1ka^i0N=a^1...a^k01...0k...0N|\phi\rangle_{HF} = \prod\limits_{i=1}^k \hat{a}_i^\dagger |0\rangle ^{\otimes N} = \hat{a}_1^\dagger ... \hat{a}_k^\dagger |0_1 ... 0_k ... 0_N\rangle

추가적으로, 진정한 바닥 상태와 상당한 겹침을 가지는 쉽게 준비할 수 있는 안사츠(ansatz)는 바닥 상태 에너지를 찾는 것과 같은 화학 문제에 대한 좋은 초기 상태로 사용될 수 있습니다.

더 일반적으로, 임의의 nn-Qubit 상태를 정규화 조건을 만족하는 계수 aia_i를 가진 계산 기저 상태 ci∣c_i\rangle의 중첩으로 쓸 수 있습니다. 이러한 상태를 준비하는 것은 일반적으로 특정 연산자 O^\hat{O}를 초기 상태에 적용함으로써 접근할 수 있으며, 관례적으로 초기 상태는 모두 0인 표준 기저 상태입니다.

ψ=i=02n1aici=O^0nwithi=02n1ai2=1|\psi\rangle = \sum_{i=0}^{2^n-1}{a_i |c_i\rangle}=\hat{O}|0\rangle^{\otimes n}\\ \text{with} \qquad \sum_{i=0}^{2^n-1}{|a_i^2|}=1

그러나 이 과정에는 종종 지수적인 수의 CNOT Gate가 필요하여 일반적으로 많은 자원이 소요됩니다. 우리는 종종 구현 자원 요구가 더 적은 초기 상태를 준비하는 데 집중합니다. 이러한 이유로, 덜 복잡한 초기 상태를 준비하는 데 집중합니다. 일반적이고 실용적인 선택은 Qubit이 얽히지 않는 곱 상태(product state)로, 단일 Qubit 연산만을 사용하여 준비할 수 있어 상태 준비의 자원 요구와 복잡성을 크게 줄입니다. 4. 상태의 시간 진화

이제 초기 상태가 설정되었으므로, 마침내 시뮬레이션 자체를 시작할 수 있습니다—시스템의 상태 ϕ(t=0)|\phi(t=0)\rangle이 어떤 시간 tt 후에 ϕ(t)|\phi(t)\rangle로 어떻게 변했는지 살펴봅니다. 양자역학에서 이 진화는 시간 진화 연산자라고 불리는 단일 수학적 연산으로 설명됩니다:

U(t)=eiHtU(t) = e^{-iHt}

여기서 관례적으로 =1\hbar=1로 설정했습니다. 이 연산자를 초기 상태에 적용하면 최종 상태를 얻습니다: ϕ(t)=eiHtϕ(t=0)|\phi(t)\rangle = e^{-iHt}|\phi(t=0)\rangle

그러나 해밀토니안이 서로 다른 부분들의 합인 경우, 전체 연산자 eiHte^{-iHt}를 직접 구현하는 양자 Circuit을 구성하는 것은 일반적으로 불가능합니다. 따라서 트로터화(Trotterization)가 필요합니다.

간단히 말해서, 트로터화는 행렬(여기서는 해밀토니안 HH)의 지수를 근사하는 기법으로, 특히 지수에 비가환 연산자([HA,HB]0[H_A, H_B] \neq 0)가 포함될 때 유용합니다. 종종 해밀토니안 HH는 가환하지 않는 여러 연산자들로 구성됩니다. 이 경우, 그들의 지수를 분리할 수 없습니다:

ei(HA+HB)teiHAteiHBte^{-i(H_A + H_B)t} \neq e^{-iH_A t}e^{-iH_B t}

유용한 접근법은 작은 시간 구간 t/nt/n 동안 그들의 시간 진화 지수를 번갈아 총 nn번 적용하는 것입니다. 이 두 비가환 기여의 경우, 다음과 같이 쓸 수 있습니다

eiHt(eiHAt/neiHBt/n)ne^{−i H t}\approx \left(e^{−i H_A t/n}e^{−i H_B t/n}\right)^n

트로터화된 시간 진화 연산자를 보여주는 양자 Circuit: 연산자를 작은 조각으로 분할.

이 근사로 인해 발생하는 오류를 트로터 오류라고 합니다. nn을 늘려 이 오류를 줄일 수 있지만, 비용이 따릅니다. 더 고급의 고차 공식(2차 및 기타 변형)도 존재합니다. 예를 들어, 2차 공식은 단계를 대칭 패턴으로 적용함으로써 더 나은 정확도를 제공합니다.

1차:eiHt(jeiHit/n)n2차:eiHt(j=1NeiHjt/2n)n(k=N1eiHkt/2n)n\begin{aligned} \text{1차:} & \qquad e^{-iHt}\approx \left(\prod_j{e^{-iH_i t/n}}\right)^n\\ \text{2차:} & \qquad e^{-iHt}\approx \left(\prod_{j=1}^N{e^{-iH_j t/2n}}\right)^n\left(\prod_{k=N}^1{e^{-iH_k t/2n}}\right)^n \end{aligned}

여기서 NN은 이 방식으로 분리될 해밀토니안의 비가환 항 HjH_j의 수이고, nn은 이 진화가 분할되는 작은 시간 단계의 수입니다. 2차 처리에서 두 번째 곱의 연산자 순서가 역순임에 주목하세요.

자세한 내용은 양자 대각화 알고리즘 과정의 트로터화 섹션을 참조하세요. 5. Circuit 최적화

트로터화된 Circuit을 생성한 후, 매핑 단계가 완료되고 Circuit 최적화로 진행할 수 있습니다. 이 과정에는 여러 가지 주요 작업이 포함됩니다:

  • Qubit 레이아웃 수립: Circuit의 추상적인 Qubit을 하드웨어의 물리적 Qubit에 매핑합니다. 하드웨어 아키텍처는 종종 특정 연결 제약이 있는 반면, 양자 Circuit 설계는 일반적으로 임의의 Qubit이 다른 Qubit과 상호작용할 수 있다고 가정하기 때문에 이 단계가 필요합니다.
  • 스왑 Gate 삽입: 장치에서 직접 연결되지 않은 Qubit 간의 상호작용을 가능하게 하기 위해 필요에 따라 삽입합니다.
  • __Circuit의 Gate를 하드웨어가 직접 실행할 수 있는 명령어 집합 아키텍처(ISA) 명령어로 변환__합니다.
  • Circuit 최적화 수행: Circuit 깊이와 Gate 수를 줄입니다. 이 최적화는 Qubit이 특정 하드웨어 연결에 할당되기 전의 가상 Circuit에 더 일찍 적용될 수도 있습니다.

이 최적화 과정의 대부분은 Qiskit의 도구들에 의해 자동으로 처리된다는 점을 주목해야 합니다. 이것이 어떻게 작동하는지는 이 수업의 후반부에서 자세히 살펴보겠습니다.

6. Circuit 실행

최적화 단계를 완료한 후, 프리미티브를 사용하여 Circuit을 실행할 준비가 됩니다. 우리는 특정 시스템 속성이 시간에 따라 어떻게 변하는지 이해하는 것이 목표인 시뮬레이션 실험을 고려하고 있습니다. 이 목적을 위해, Estimator 프리미티브가 가장 적합한 선택으로, 이러한 속성에 해당하는 관측값의 기댓값을 측정할 수 있게 해줍니다.

다음으로, 오류 억제 및 완화 기법을 포함한 옵션을 사용하여 Estimator의 정확도를 향상시킵니다. 마지막으로 실험을 실행하여 결과를 수집합니다.

7. 후처리

마지막 단계는 수집된 데이터를 후처리하는 것입니다. 이 작업은 측정된 기댓값을 추출하거나, Sampler 프리미티브가 사용된 경우 계산 기저에서의 샘플링된 확률 분포를 추출하는 것을 포함합니다. 관련 관측값의 기댓값만 필요한 경우, 이는 Estimator 프리미티브에서 직접 얻을 수 있으며, 원시 결과와 오류 완화가 적용된 결과 모두 사용 가능합니다. 종종, 이러한 측정된 기댓값은 다른 관심 있는 양에 대한 추가 계산의 출발점으로 사용됩니다. 이러한 추가 계산은 일반적으로 양자 계산을 필요로 하지 않으며 고전 컴퓨터에서 효율적으로 수행될 수 있습니다.

"유틸리티" 논문 재현하기

참고

이 부분은 확률적 오류 증폭을 이용한 유틸리티 규모 오류 완화 튜토리얼의 개괄적인 안내이며, 내결함성 이전 양자 컴퓨팅 유틸리티의 증거 논문의 결과를 재현합니다. 이 세션과 함께 참조된 튜토리얼을 열어 두실 것을 강력히 권장합니다.

이제 IBM이 2023년에 발표한 매우 영향력 있는 논문, 흔히 "유틸리티 논문"으로 불리는 내결함성 이전 양자 컴퓨팅 유틸리티의 증거의 구체적인 사례를 살펴보겠습니다.

Nature 저널에 게재된 유틸리티 논문이라 불리는 논문의 표지 이미지.

이 연구는 발표 직후 양자 컴퓨팅 커뮤니티에서 획기적인 연구로 빠르게 자리매김했습니다. 핵심 주장은, 127개의 Qubit과 2,880개의 Gate를 사용하는 잡음이 있는 양자 컴퓨터가 동일한 Circuit을 정확히 시뮬레이션하려는 무차별 대입 방식의 고전적 시뮬레이션 방법으로는 처리하기 어려운 양자 Circuit에 대해 정확한 기댓값을 계산할 수 있다는 것입니다.

이 연구는 양자 컴퓨터를 텐서 네트워크 알고리즘과 같은 근사적 고전 시뮬레이션 방법의 결과를 검증하거나 비교하는 데 활용할 수 있음을 보여주었다는 점에서 특히 중요합니다. 이는 정확한 해가 미리 알려져 있지 않은 상황에서도 유효합니다.

이 연구의 또 다른 주목할 만한 점은 광범위하게 재현되었다는 것입니다. 연구자와 사용자들은 IBM의 클라우드를 통해 접근 가능한 양자 시스템과 Qiskit 소프트웨어 프레임워크를 활용하여 실험을 재현하고 검증할 수 있습니다. 이어지는 내용에서 IBM 튜토리얼을 단계별로 검토하며 이 재현을 직접 수행하는 방법을 안내합니다.

이 레슨에서는 양자 장치가 처리할 수 있는 입력으로 문제를 변환하는 데 필요한 구체적인 단계를 다룹니다. 외부 자기장 하에 격자 위에 배열된 자기 쌍극자 스핀 시스템에서 전체 자화량의 동역학을 시뮬레이션하는 데 초점을 맞춥니다. 이 시스템은 횡자기장 이징 모델로 설명할 수 있습니다. 스핀-스핀(ZZZZ) 상호작용의 조절 가능한 값과 외부 횡자기장의 세기(BxB_x, XX를 사용하여 매개변수화)에 해당하는 매개변수를 가진 파라미터화된 양자 Circuit으로 표현합니다.

위 또는 아래를 가리키는 격자 위의 스핀들.

이 시리즈가 "실전 양자 컴퓨팅"이라는 제목인 만큼, 결과의 품질을 향상시키기 위해 사용된 실험 기법들의 추가적인 세부 사항을 다룰 것입니다. 한 가지 중요한 절차는 게이트 충실도가 낮거나 결어긋남 시간이 짧아 실험 결과에 큰 영향을 미칠 수 있는 "불량" Qubit를 식별하고 제거하는 것입니다. 이러한 문제가 있는 Qubit는 잘못된 교정이나 이준위 시스템(TLS)과의 상호작용으로 인해 발생할 수 있습니다. 이 Qubit들을 제거하면 하드웨어의 고유 토폴로지가 변경되어, 시스템이 시뮬레이션되는 격자 구조가 실질적으로 바뀝니다.

또한 Trotterization을 사용하여 시스템의 시간 진화를 구현하는 파라미터화된 양자 Circuit을 구성하는 방법에 대해서도 살펴볼 것입니다. 이 과정에서 핵심적인 부분은 Circuit 내의 얽힘 레이어를 식별하는 것으로, 이는 주요 오류 완화 기법에서 중요한 역할을 합니다.

Qiskit 패턴 1단계: 매핑

튜토리얼은 위에서 설명한 일반적인 접근 방식과 유사하게 매핑 단계를 수행합니다. 이 문제에 특화된 튜토리얼의 작업은 다음과 같습니다:

  • 파라미터화된 이징 모델 Circuit 생성
  • 얽힘 레이어 생성 및 불량 Qubit 제거
  • Circuit의 Trotterized 버전 생성

튜토리얼에서는 노트북 초반에 일련의 도우미 함수들을 먼저 생성합니다. 이 함수들은 진행하면서 작업을 단순화하기 위해 설계되었습니다. 이는 절차의 필수적인 부분은 아니지만, 유사한 실험을 진행할 때 좋은 관행입니다: 문제를 관리 가능한 구성 요소로 분해하는 것입니다. 함수들은 다음을 포함합니다:

  • Qubit 결합 제거
  • Qubit 결합 정의
  • 레이어 결합 구성
  • 얽힘 레이어 구성
  • Trotterized Circuit 정의

여기서 이러한 함수들과 관련된 주제들을 좀 더 자세히 살펴보겠습니다.

레이어 결합

레이어 결합은 시뮬레이션 중 Qubit들이 이웃과 어떻게 상호작용하는지를 정의합니다. 양자 장치는 Qubit를 연결하는 독특한 패턴인 헤비-헥사고날 레이아웃을 활용합니다. 이 레이아웃 내에서 Qubit 간의 연결인 "엣지"는 세 개의 서로 다른 집합으로 나눌 수 있습니다. 중요한 점은 같은 집합 내의 두 연결이 Qubit를 공유하지 않는다는 것입니다. 이 구성은 실제 양자 컴퓨터에서 Qubit는 어느 시점에서든 하나의 2-Qubit Gate에만 참여할 수 있다는 핵심 하드웨어 제약을 해결합니다.

레이어 결합의 색상 코드 지도. 특정 Qubit에서 하나의 2-Qubit Gate만 동시에 실행될 수 있음에도 불구하고, 2-Qubit Gate가 양자 컴퓨터 전체에 걸쳐 실행될 수 있음을 강조합니다.

모든 연결을 세 개의 별도 레이어로 구조화함으로써, 2-Qubit Gate를 세 번의 연속적인 라운드로 전체 장치에 적용할 수 있습니다. 이렇게 하면 어떤 Qubit도 레이어당 하나 이상의 Gate에 관여하지 않습니다. 이 Gate들은 이징 모델의 ZZ 상호작용을 구현하며, 시뮬레이션의 각 시간 단계(각 Trotter 단계)마다 반복됩니다.

또한, Twirling이라는 기법이 장치의 잡음 특성을 변환하기 위해 사용됩니다. Twirling은 단순한 잡음 모델조차 물리적 오류를 더 정확하게 표현할 수 있도록 잡음을 변환합니다. 이 정제 과정을 통해 잡음을 더 정밀하게 특성화할 수 있으며, 이는 오류 완화 전략을 개선하는 데 활용될 수 있습니다.

"불량" Qubit 제거

다음 단계는 실험에 사용할 물리적 Qubit 목록에서 "불량" Qubit를 제거하는 것입니다. Qubit는 다양한 이유로 "불량"이 될 수 있습니다. 때로는 단순히 잘못된 교정 문제로, 재교정을 통해 해결할 수 있습니다. 다른 경우에는 이준위 시스템(TLS) 결함으로 알려진 더 복잡한 문제가 관련됩니다. 이 TLS 결함은 Qubit 매개변수와 이완에 변동을 유발합니다. 이를 해결하려면 전체 시스템을 온도를 높인 후 다시 냉각하는 과정이 필요한 경우가 많은데, 이는 시간이 걸리며 클라우드를 통해 원격으로 양자 하드웨어에 접근할 때는 실용적이지 않습니다.

현재로서는 이러한 문제 있는 Qubit들을 실험에 사용될 물리적 Qubit 풀에서 제외하는 것이 가장 간단한 방법입니다. IBM Quantum Platform®은 QPU에서 어떤 Qubit들이 성능이 저하되어 있는지 쉽게 식별할 수 있게 해줍니다. 플랫폼에서 QPU를 열어 특성을 직접 시각화하거나, 플랫폼에서 데이터를 CSV 파일로 다운로드할 수 있습니다. 그런 다음, 제외할 Qubit 목록을 만들고 장치의 전체 물리적 Qubit 집합에서 제거합니다.

양자 컴퓨터의 레이아웃에서 성능이 낮은 Qubit가 분홍색으로 표시된 모습.

신뢰할 수 없는 Qubit를 제거하면 시스템 동작이 더 예측 가능해져 실험의 정확도가 향상됩니다. 또한 효과적인 오류 완화 전략을 구현하는 데 필수적인 잡음 모델링을 개선할 수 있습니다.

Trotterized Circuit

이제 Trotterized Circuit을 구성할 시간입니다. 앞서 논의한 것처럼, Trotterization은 시간 진화를 이산적인 단계로 분해하므로 몇 단계를 사용할지 선택해야 합니다. 이 예제에서는 6단계를 선택합니다. 일반적으로 이 접근 방식은 알고리즘이 도입하는 근사 오류인 Trotter 오류와 결어긋남으로 인한 오류 사이의 균형을 맞추는 것을 포함합니다. Trotter 단계 수를 늘리면 근사 오류가 줄어들지만, 더 깊은 양자 Circuit이 필요하게 되어 결어긋남 잡음에 더 취약해집니다.

Circuit은 외부 자기장 세기를 나타내는 theta 매개변수, 레이어 간의 결합, 단계 수, Qubit 수, 그리고 물론 장치 Backend 선택 등 여러 매개변수를 사용하여 정의됩니다. 시스템의 자화량은 외부 자기장 세기에 따라 달라지므로, 다양한 자기장 값에서 시뮬레이션을 실행하는 것이 유용합니다. 이 변화는 Circuit에서 RX Gate의 서로 다른 회전 각도에 해당합니다.

from qiskit.circuit import Parameter

num_steps = 6 #Trotter steps
theta = Parameter("theta")
circuit = trotter_circuit(
theta, layer_couplings, num_steps, qubits = good_qubits, backend = backend
)
num_params = 12

# 12 parameter values for Rx between [0,p/2].
#Reshape to outer product broadcast with observables

parameter_values = np.linespace(0,np.pi/2,num_params).reshape((num_params,1))
num_params = parameter_values.size

Qiskit 패턴 2단계: 최적화

Circuit을 생성했으므로, 다음 단계는 최적화입니다. 이 과정의 첫 번째 부분은 패스 매니저 정의입니다. Qiskit SDK의 맥락에서 Transpilation은 입력 Circuit을 양자 장치에서 실행하기에 적합한 형태로 변환하는 과정입니다. 이 변환은 Transpiler 패스라고 알려진 일련의 단계를 통해 이루어집니다. 패스 매니저는 이러한 Transpiler 패스 목록을 보관하고 Circuit에 적용할 수 있는 객체입니다. 생성하려면 원하는 Transpiler 패스 목록으로 PassManager를 초기화합니다. 궁극적으로 패스 매니저는 Backend의 명령어 집합 아키텍처(ISA)로 표현된 Circuit인 ISA Circuit을 생성합니다. 이는 Circuit이 Backend 하드웨어에 고유한 Gate를 사용하여 표현되지만, 아직 장치에서 Circuit을 실행하는 데 필요한 타이밍 정보는 포함되지 않음을 의미합니다.

Qiskit 패턴 3단계: Primitive를 사용한 실행

이제 Circuit을 실행할 시간입니다. 목표가 시스템의 전체 자화량을 측정하는 것이므로 이 실험의 주요 도구로 Estimator를 사용합니다. Estimator는 관측량의 기댓값을 추정하도록 특별히 설계되어 있어 여기서 이상적인 선택입니다. 이 단계에서 오류 완화 설정을 구성하는 것도 필수적입니다. 결과의 정확도를 향상시키기 위해 영 잡음 외삽법(ZNE)을 적용합니다. 튜토리얼에서 외삽 모델을 평가할 두 개 이상의 잡음 인수 값을 지정하고, 증폭 방법으로 "확률적 오류 증폭"(PEA)을 선택하는 것을 확인할 수 있습니다. PEA는 다른 옵션들에 비해 훨씬 더 잘 확장되기 때문에 이 실험에 선호되는 방법이며, 이는 100개 이상의 Qubit를 가진 시스템을 다룰 때 매우 중요합니다.

이것이 실험을 실행하는 데 필요한 전부입니다.

오류 완화 간주

후처리로 넘어가기 전에, 영 잡음 외삽법(ZNE)이 무엇을 의미하는지 잠깐 명확히 짚고 넘어가겠습니다. 이전 에피소드에서 이 개념을 언급한 적 있지만 간략히 복습할 가치가 있습니다. ZNE는 양자 Circuit 실행 중 발생하는 알 수 없는 잡음의 영향을 줄이기 위해 설계된 오류 완화 기법으로, 이 잡음이 제어된 방식으로 조절될 수 있다는 전제 하에 작동합니다. 이 방법은 기댓값이 알려진 함수에 따라 잡음과 함께 스케일된다는 가정에 의존합니다:

A(λ)=A(0)+k=0makλk+R,\langle A(\lambda)\rangle = \langle A(0)\rangle + \sum_{k=0}^m {a_k \lambda^k}+R,

여기서 λλ는 의도적으로 증폭될 수 있는 잡음 강도를 나타냅니다.

ZNE 구현 과정은 다음 단계로 구성됩니다:

  1. 다양한 잡음 인수 λ1λ_1, λ2λ_2, …에 대해 Circuit 잡음을 증폭합니다.
  2. 각 잡음 증폭 Circuit을 실행하여 해당 기댓값 A(λ1)\langle A(\lambda_1)\rangle, A(λ2)\langle A(\lambda_2)\rangle, …를 측정합니다.
  3. 이 결과들을 영 잡음 한계 A(λ0)\langle A(\lambda_0)\rangle로 외삽합니다.

기댓값, 잡음이 증폭된 동일한 기댓값, 그리고 영 잡음 경우로 외삽된 값의 플롯.

이 기법을 통해 잡음이 없을 경우의 결과를 추정할 수 있어 양자 계산의 정확도를 향상시킵니다.

ZNE를 효과적으로 구현하는 데 있어 주요 과제는 기댓값에 대한 정확한 잡음 모델을 개발하고 제어되고 잘 이해된 방식으로 잡음을 증폭하는 것입니다. ZNE에서 오류 증폭을 위한 일반적인 기법으로는 교정을 통한 펄스 지속 시간 스케일링, 항등 사이클을 사용한 Gate 반복, 그리고 Pauli 채널 샘플링을 통한 잡음 추가—확률적 오류 증폭(PEA)으로 알려진 방법—가 있습니다.

이 중 PEA는 여러 이유로 종종 선호되는 선택입니다:

  • 펄스 스트레칭은 높은 계산 비용이 발생합니다.
  • 항등 삽입을 사용하는 Gate Folding은 잡음 편향 보존에 대한 강력한 이론적 보증이 없습니다.
  • PEA는 고유 잡음 인수로 실행되는 모든 Circuit에 적용 가능하지만, 사전에 잡음 모델을 학습해야 합니다.

ZNE를 위한 잡음 증폭의 세 가지 방법: 펄스 스트레칭, Gate Folding, 확률적 오류 증폭.

PEA는 확률적 오류 취소(PEC)에서 사용되는 것과 유사한 레이어 기반 잡음 모델을 가정하여 동작합니다. 하지만 PEC와 달리 일반적으로 Circuit 잡음과 함께 지수적으로 증가하는 샘플링 오버헤드를 피합니다. 이 효율성 덕분에 PEA는 ZNE에서의 잡음 증폭을 위한 실용적이고 강건한 접근 방식이 되어, 더 신뢰할 수 있는 양자 오류 완화를 가능하게 합니다.

잡음 모델을 특성화하기 위해, 먼저 Circuit 내의 2-Qubit 연산의 고유한 레이어를 식별해야 합니다. 이 각 레이어에 대해 2-Qubit Gate에 Pauli Twirling 절차를 적용하는데, 이는 잡음이 감쇠 잡음 모델로 정확하게 설명될 수 있도록 보장하는 데 도움이 됩니다. 다음으로, 다양한 깊이에서 항등 레이어 쌍을 반복하고, 마지막으로 충실도 값을 피팅하여 각 잡음 채널의 오류율을 결정합니다.

이 방법을 개념적으로 이해하는 것은 유익하지만, 첨부된 튜토리얼에서 보여주듯이 Qiskit에서 수동으로 구현하는 것은 훨씬 더 간단합니다.

희소 Pauli-Lindblad 잡음 모델 학습의 단계들.

Qiskit 패턴 4단계: 후처리

실험이 완료된 후 후처리를 통해 결과를 확인할 수 있습니다. 플롯된 데이터에서 점선 회색 선은 근사 오류를 낮은 임계값으로 줄인 근사적 고전 방법을 사용하여 얻은 결과를 나타냅니다. 처음에 선택한 다양한 잡음 인수에 대한 원시 데이터 점들은 이 점선에서 명확하게 벗어나 있습니다. 이와 대조적으로, 실선 파란색 선은 ZNE 처리를 적용한 후의 데이터를 보여주며, 결과가 정확한 값에 훨씬 가깝게 수렴하는 것을 볼 수 있습니다. 요약하면, 일반 잡음 조건(잡음 인수 nf=1.0)에서 얻은 값은 정확한 결과와 상당한 편차를 보입니다. 반면, 완화된 값은 정확한 값과 밀접하게 일치하여, PEA 기반 잡음 완화 기법의 효과를 입증합니다.

유틸리티 논문에서 해결된 문제의 정확한 해, 완화되지 않은 해, 완화된 해의 플롯.

요약

지금까지 배운 내용을 간략히 정리하면 다음과 같습니다.

  • 양자 시뮬레이션은 단기 및 중기적으로 가장 유망한 응용 분야 중 하나입니다.
  • 제약, 고에너지 물리학, 재료 과학 등 광범위한 분야에 걸쳐 활용될 수 있습니다.
  • 2023년 IBM이 발표한 Utility 논문은 양자 컴퓨터를 과학적 발견에 활용할 수 있는 방향을 제시했으며, 우리는 해당 논문과 함께 제공되는 튜토리얼을 단계별로 살펴보았습니다.
  • 시뮬레이션 문제를 처음부터 끝까지 해결하는 단계는 비교적 간단하며, 이 영상과 튜토리얼이 더 많은 시뮬레이션 문제를 다루는 데 좋은 지침이 되길 바라요.

수료 후 설문조사

이 과정을 완료하신 것을 축하합니다! 잠시 시간을 내어 다음 간단한 설문조사를 작성해 주시면 과정 개선에 큰 도움이 됩니다. 여러분의 의견은 콘텐츠 품질과 사용자 경험을 향상시키는 데 활용될 예정입니다. 감사합니다!

Note: This survey is provided by IBM Quantum and relates to the original English content. To give feedback on doQumentation's website, translations, or code execution, please open a GitHub issue.