양자 컴퓨팅 이해
양자 컴퓨팅은 환경, 농업, 건강, 에너지, 기후, 재료 과학 등 지구의 가장 큰 과제 중 일부를 해결할 것을 약속합니다. 이러한 문제 중 일부에서는 시스템 크기가 증가하면서 일반 컴퓨팅이 점점 어려워지고 있습니다. 크기를 조정하도록 설계된 양자 시스템에는 오늘날 가장 강력한 슈퍼컴퓨터의 기능을 초과할 가능성이 높습니다. 양자 연구원, 과학자, 엔지니어 및 비즈니스 리더의 글로벌 커뮤니티가 협력하여 양자 생태계를 발전시키면서 모든 산업에서 양자 영향이 가속화될 것으로 기대합니다.
이제 Azure Quantum은 클래식 및 양자 계산을 혼합하고 새로운 세대의 하이브리드 알고리즘을 잠금 해제하여 현재 세대의 양자 컴퓨터와 연구 및 실험을 새롭고 흥미로운 단계로 끌어올릴 수 있습니다. 통합 하이브리드 모델을 사용하면 양자 프로그램을 작성하여 큐비트가 활성 상태로 유지되는 동안 중간 회로 측정값을 기반으로 실시간 결정을 내릴 수 있습니다. 자세한 내용은 하이브리드 양자 컴퓨팅을 참조하세요.
양자 컴퓨팅의 시작 및 동기에 대한 자세한 내용은 양자 컴퓨팅의 역사 및 배경을 참조하세요.
Azure Quantum은 오늘날의 다양한 양자 하드웨어에서 양자 컴퓨팅 솔루션을 빌드할 수 있는 개방형 에코시스템이며 Cirq, Qiskit 및 Q#을 지원하므로 선호하는 개발 도구를 유연하게 사용할 수 있습니다. 친숙하고 신뢰할 수 있는 Azure 플랫폼을 사용하여 양자 알고리즘을 개발하는 방법과 여러 공급자의 실제 하드웨어에서 양자 알고리즘을 프로그래밍하고 실행하는 방법을 알아볼 수 있습니다.
실제 양자 하드웨어에서 Azure Quantum 작업 영역을 만들고 양자 프로그램을 제출하는 방법을 알아보세요. 처음 사용자는 작업 영역을 만들 때 참여하는 각 양자 하드웨어 공급자(각각 500 USD)와 함께 사용할 수 있는 무료 Azure Quantum 크레딧을 자동으로 받습니다. 크레딧이 더 필요하면 Azure Quantum 크레딧 프로그램에 신청할 수 있습니다.
팁
무료 평가판. Azure 구독이 없는 경우 Azure 체험 계정을 만들 수 있습니다(학생용 무료 Azure 계정 확인).
양자 컴퓨팅과 Azure Quantum은 어디에 사용할 수 있나요?
양자 컴퓨터는 모든 작업을 더 빠르게 수행할 수 있는 슈퍼컴퓨터는 아닙니다. 사실 양자 컴퓨팅 연구의 목표 중 하나는 양자 컴퓨터가 클래식 컴퓨터보다 더 빠르게 해결할 수 있는 문제와 속도 향상이 얼마나 큰지 연구하는 것입니다.
양자 컴퓨터는 수많은 조합을 계산해야 하는 문제 처리에 매우 적합합니다. 이러한 유형의 문제는 양자 시뮬레이션, 암호화, 양자 기계 학습, 검색 문제와 같은 여러 영역에서 볼 수 있습니다.
Microsoft의 양자 컴퓨팅 연구에 대한 최신 정보는 Microsoft Research Quantum Computing 페이지를 참조하세요.
리소스 예측
현재 사용할 수 있는 양자 컴퓨터는 흥미로운 실험과 연구를 가능하게 하지만 실제 문제를 해결하는 데 필요한 계산을 가속화할 수는 없습니다. 업계는 하드웨어 발전을 기다리고 있지만 양자 소프트웨어 혁신가들은 진전을 이루고 양자 미래를 준비하기를 열망합니다. 내일의 내결함성 스케일링된 양자 컴퓨터에서 실행되는 오늘 알고리즘을 만드는 것은 어려운 작업입니다. 이러한 혁신가들은 필요한 하드웨어 리소스와 같은 질문에 직면합니다. 필요한 물리적 및 논리적 큐비트 수와 유형은 무엇인가요? 런타임은 얼마인가요?
Azure Quantum 리소스 예측 도구를 사용하여 이러한 질문에 답변할 수 있습니다. 따라서 알고리즘을 구체화하고 스케일링된 양자 컴퓨터를 사용할 수 있게 되면 활용하는 솔루션을 빌드할 수 있습니다.
시작하려면 첫 번째 리소스 예상 실행 을 참조하세요.
arXiv:2211.07629에서 Azure Quantum Resource Estimator를 사용하여 실제 양자 이점을 확장하기 위한 요구 사항을 평가하는 방법에 대해 자세히 알아봅니다.
양자 시뮬레이션
양자 역학은 우주의 기본 ‘운영 체제’입니다. 자연의 기본 구성 요소가 어떻게 작동하는지를 알려주죠. 화학 반응, 생물학적 반응, 물질 형성과 같은 자연의 행태에는 다체 양자 상호 작용이 관여하고 있는 경우가 많습니다. 분자와 같은 본질적으로 양자 기계 시스템을 시뮬레이션하는 경우 큐비트 (양자 비트)를 사용하여 문제의 자연 상태를 나타낼 수 있기 때문에 양자 컴퓨팅은 유망합니다. 우리가 모델링할 수 있는 양자 시스템의 예로는 광합성, 초전도 및 복합 분자 형성이 있습니다.
QDK(QDK Quantum Development Kit )는 양자 컴퓨터 에서 전자 구조 문제 및 양자 역학을 시뮬레이션하는 양자 화학 라이브러리와 함께 제공됩니다. 이러한 시뮬레이션의 예로는 분자 지상 상태의 간단한 분자 에너지 추정이 있습니다. 이 예제와 더 많은 QDK 및 Azure Quantum 샘플은 코드 샘플에서 찾을 수 있습니다.
양자 가속
양자 컴퓨팅 연구의 목표는 기존 컴퓨터를 사용할 때보다 양자 컴퓨터를 사용할 때 더 빠르게 해결할 수 있는 문제와 가속 수준을 연구하는 것입니다. 잘 알려진 두 가지 예는 Grover 알고리즘과 Shor 알고리즘으로, 고전적 알고리즘에 비해 각각 다항식 및 기하급수적 속도 향상이 가능합니다.
양자 컴퓨터에서 실행되는 Shor 알고리즘은 데이터를 안전하게 전송하기 위해 전자상거래에서 널리 사용되는 RSA(Rivest–Shamir–Adleman) 체계와 같은 기존 암호화 체계를 뚫을 수 있습니다. 이 체계는 기존 알고리즘을 사용하여 소수 인수 분해의 실질적 어려움을 기반으로 합니다. 양자 암호화를 이용하면 복잡성 추정이 아닌 기본 물리학을 사용하여 정보 보안을 보장할 수 있습니다.
Shor의 팩터링 알고리즘과 마찬가지로, 숨겨진 시프트 문제는 양자 컴퓨터가 가장 잘 알려진 클래식 알고리즘보다 기하급수적으로 성능 우위를 점하는 근본적인 이유입니다. 이는 결국 디콘볼루션 문제를 해결하는 데 도움이 될 수 있으며 복잡한 데이터 세트 속에 숨겨진 패턴을 효율적으로 찾을 수 있습니다. 양자 컴퓨터는 원칙적으로 콘볼루션을 고속으로 계산할 수 있으며, 이는 푸리에 변환을 매우 빠르게 컴퓨팅하는 양자 컴퓨터의 기능을 기반으로 합니다. Azure Quantum 작업 영역의 샘플 갤러리에서 숨겨진 시프트 Jupyter Notebook 샘플을 찾을 수 있습니다(Azure 계정 필요).
Grover 알고리즘은 비정형 데이터를 검색하는 솔루션의 속도를 획기적으로 높여 그 어떤 클래식 알고리즘보다도 빠르게 검색을 실행합니다. 사실, 특정 값 $x$가 유효한 해("예 또는 아니요 문제")인지 확인할 수 있는 문제는 검색 문제의 측면에서 작성할 수 있습니다. 예는 다음과 같습니다.
- 부울 충족 가능성 문제: 부울 값 집합 $x$가 지정된 부울 수식을 충족하는 해석(변수에 대한 값 할당)인가?
- 외판원 문제: $x$가 모든 도시를 연결하는 가능한 최단 루프를 설명하는가?
- 데이터베이스 검색 문제: 데이터베이스 테이블에 레코드 $x$가 포함되어 있는가?
- 정수 소인수분해 문제: 고정소수점 수 $N$를 수 $x$로 나눌 수 있는가?
수학 문제를 해결하기 위한 Grover 알고리즘의 실제 구현 방법은 Azure Quantum 작업 영역의 샘플 갤러리에서 Grover의 검색 Jupyter Notebook을 살펴보거나(Azure 계정 필요) 이 Grover 검색 알고리즘 구현 자습서를 참조하세요.
더 많은 양자 알고리즘 샘플은 코드 샘플을 참조하세요.
Quantum machine learning
클래식 컴퓨터의 기계 학습은 과학과 비즈니스의 세계를 혁신적으로 변화시키고 있습니다. 그러나 모델 학습에 들어가는 높은 계산 비용은 이 분야의 개발 및 범위를 넓히는 데 방해가 됩니다. 양자 기계 학습 영역은 클래식 컴퓨터보다 더 빠르게 실행되는 기계 학습을 가능하게 하는 양자 소프트웨어를 고안하고 구현하는 방법을 검색합니다.
QDK()는 Quantum Development Kit 하이브리드 양자-클래식 기계 학습 실험을 실행할 수 있는 기능을 제공하는 양자 기계 학습 라이브러리와 함께 제공됩니다. 이 라이브러리는 샘플과 자습서를 포함하고 있으며, 감독된 분류 문제를 해결하기 위해 새 하이브리드 양자 클래식 알고리즘인 회로 중심 양자 분류자를 구현하는 데 필요한 도구를 제공합니다.
양자 컴퓨팅은 문제를 어떻게 해결하나요?
양자 컴퓨터는 양자 물리학의 속성을 활용하여 계산을 수행하는 제어 가능한 양자 역학 장치입니다. 일부 계산 작업의 경우 양자 컴퓨팅이 기하급수적인 속도 향상을 제공합니다. 이러한 속도 향상은 양자 역학의 세 가지 현상인 중첩, 간섭 및 얽힘 덕분에 가능합니다.
중첩
거실에서 운동하고 있다고 상상해 보세요. 왼쪽으로 완전히 돈 다음, 오른쪽으로 완전히 돕니다. 이제 왼쪽 및 오른쪽으로 동시에 돌아 보세요. 이렇게 돌 수는 없습니다(적어도 자신을 둘로 쪼개지 않는 한). 분명히 두 상태에 동시에 있을 수 없습니다. 즉 왼쪽 및 오른쪽으로 동시에 향할 수는 없습니다.
그러나 양자 입자인 경우 중첩(또는 결집이라고도 함)이라는 현상으로 인해 좌향 및 우향에 대한 특정 확률이 있을 수 있습니다.
비트가 클래식 컴퓨팅의 기본 정보 단위인 것처럼 큐비트는 양자 컴퓨팅의 기본 정보 단위입니다. 비트 또는 이진수는 0 또는 1을 값으로 가질 수 있지만 큐비트는 0, 1 또는 0 및 1의 양자 중첩을 값으로 가질 수 있습니다.
클래식 입자와 달리 $A$ 및 $B$의 두 상태가 양자 입자의 유효한 양자 상태인 경우 상태의 선형 조합도 유효한 양자 상태 $\text{qubit state}=\alpha A + \beta B$입니다. $A$ 및 $B$ 양자 상태의 이 선형 조합을 중첩이라고 합니다. 여기서 $\alpha$ 및 $\beta$는 각각 $A$ 및 $B$의 확률 진폭으로 $|\alpha|^{2} + |\beta|^{2} = 1$입니다.
이온, 전자 또는 초전도 회로와 같은 양자 시스템만 양자 컴퓨팅을 사용할 수 있는 중첩 상태에서 존재할 수 있습니다. 전자와 같은 양자 입자에는 자체 "왼쪽 또는 오른쪽을 향한" 속성이 있습니다(예: 스핀이라고 함). 따라서 전자의 양자 상태는 "스핀업" 및 "스핀다운"의 중첩입니다.
일반적으로 양자 시스템이 두 개의 양자 상태에 있을 수 있는 경우 기존 이진 컴퓨팅과 더 관련성이 높도록 하기 위해 이러한 상태를 0 상태 및 1 상태라고 합니다.
큐비트 및 확률
클래식 컴퓨터는 정보를 비트 단위로 저장하고 처리합니다. 이 비트의 상태는 1 또는 0일 수 있지만 둘 다일 수는 없습니다. 양자 컴퓨팅에서의 해당 항목은 큐비트입니다. 큐비트는 양자 상태 0과 1의 중첩에 있을 수 있는 모든 양자 시스템입니다. 가능한 각 양자 상태에는 연결된 확률 진폭이 있습니다. 큐비트를 측정한 후에만 해당 상태가 연결된 확률에 따라 0 상태 또는 1 상태로 축소되므로 가능한 상태 중 하나가 특정 확률로 획득됩니다.
큐비트가 한쪽 방향 또는 다른 방향으로 붕괴될 확률은 양자 간섭에 의해 결정됩니다. 양자 간섭은 측정하는 동안 특정 결과의 확률에 영향을 주기 위해 큐비트의 상태에 영향을 주며, 이 확률 상태는 양자 컴퓨팅의 뛰어난 기능이 됩니다.
예를 들어 클래식 컴퓨터에서 두 개의 비트를 사용하면 각 비트에서 1 또는 0을 저장할 수 있으므로 네 개의 가능한 값(00, 01, 10 및 11)을 저장할 수 있지만 한 번에 하나의 값만 저장할 수 있습니다. 그러나 중첩 상태의 두 개의 큐비트를 사용하면 각 큐비트가 1, 0 또는 둘 다일 수 있으므로 동일한 네 개의 값을 동시에 나타낼 수 있습니다. 세 개의 큐비트를 사용하면 8개의 값, 네 개의 큐비트를 사용하면 16개의 값 등을 나타낼 수 있습니다.
자세한 정보는 양자 컴퓨팅의 큐비트를 참조하세요.
얽힘
양자 역학의 가장 흥미로운 현상은 둘 이상의 양자 시스템이 서로 얽히는 능력입니다. 얽힘은 양자 시스템 간의 양자 상관 관계입니다. 큐비트가 얽히면 개별 하위 시스템의 양자 상태를 독립적으로 설명할 수 없도록 전역 시스템을 형성합니다. 전역 시스템의 상태를 하위 시스템의 상태 조합으로 작성할 수 없는 경우 두 시스템이 얽혀 있습니다. 특히 전역 시스템의 상태를 하위 시스템 상태의 텐서 곱 으로 작성할 수 없는 경우 두 시스템이 얽혀 있습니다. 제품 상태에 상관 관계가 없습니다.
얽힌 양자 시스템은 먼 거리에서 분리된 경우에도 이러한 상관 관계를 유지합니다. 즉, 한 하위 시스템에 적용하는 작업 또는 프로세스가 다른 하위 시스템과도 관련이 있습니다. 얽힌 큐비트 간에 상관 관계가 있으므로 한 큐비트의 상태를 측정하면 다른 큐비트의 상태에 대한 정보가 제공됩니다. 이 특정 속성은 양자 컴퓨팅에 매우 유용합니다.
참고
두 큐비트 간의 모든 상관 관계가 두 큐비트의 얽힘을 의미하는 것은 아닙니다. 양자 상관 관계 외에도 클래식 상관 관계도 있습니다. 클래식 상관 관계와 양자 상관 관계의 차이는 미묘하지만 양자 컴퓨터에서 제공하는 속도 향상에 필수적입니다. 자세한 내용은 클래식 상관 관계 이해를 참조하세요.
자세한 내용은 Q# 및 Azure Quantum으로 양자 얽힘 살펴보기 자습서를 참조하세요.
양자 컴퓨터와 양자 시뮬레이터의 비교
양자 컴퓨터는 기존 컴퓨팅과 양자 컴퓨팅의 성능을 결합하는 컴퓨터입니다. 현재 양자 컴퓨터는 하이브리드 모델, 즉, 양자 프로세서를 제어하는 기존 컴퓨터에 해당합니다.
양자 컴퓨터 개발은 아직 초기 단계입니다. 양자 하드웨어는 가격이 비싸고 대부분의 시스템은 대학과 연구소에 있습니다. 클래식 컴퓨터는 익숙한 실리콘 기반 칩을 사용하지만, 양자 컴퓨터는 원자, 이온, 광자 또는 전자와 같은 양자 시스템을 사용합니다. 그러나 이 기술은 발전하고 있으며 양자 시스템에 제한적인 퍼블릭 클라우드 액세스가 가능합니다.
Azure Quantum은 특정 시스템에 대해 동일한 알고리즘을 튜닝할 수 있는 유연성을 유지하면서도 한 번에 여러 플랫폼에 대한 양자 알고리즘을 만들 수 있습니다. Qiskit, Cirq 및 Q#과 같은 여러 프로그래밍 언어 중에 선택하고 여러 양자 시스템에서 알고리즘을 실행할 수 있습니다. Azure Quantum에서는 오늘날의 양자 시스템을 탐색하는 동시에 미래의 확장된 양자 시스템에 대비할 수 있습니다.
팁
처음 사용자는 참여하는 각 양자 하드웨어 공급자와 함께 사용할 수 있는 무료 $500(USD)Azure Quantum 크레딧 을 자동으로 받습니다. 크레딧을 모두 사용했는데 더 필요한 경우 Azure Quantum Credits 프로그램에 신청할 수 있습니다.
Azure Quantum 하드웨어
양자 컴퓨터는 크게 다음과 같은 세 부분으로 구성됩니다.
- 큐비트를 보관하는 디바이스
- 큐비트에서 양자 연산(양자 게이트라고도 함)을 수행하고 측정하는 방법
- 프로그램을 실행하고 지침을 보내는 클래식 컴퓨터
큐비트는 쉽게 손상되고 환경 간섭에 매우 민감합니다. 큐비트를 저장하는 일부 방법의 경우 큐비트를 저장하는 장치는 결집을 최대화하기 위해 절대 0(영)도 바로 위의 온도로 유지됩니다. 다른 유형의 큐비트 저장에서는 진동을 최소화하고 큐비트를 안정화하는 데 도움이 되는 진공 챔버를 사용합니다.
큐비트 유형에 따라 극초단파, 레이저, 전압 등의 다양한 방법으로 연산을 수행할 수 있습니다.
양자 컴퓨터는 올바르게 작동하기 위한 많은 과제를 마주하고 있습니다. 양자 컴퓨터의 오류 수정은 중요한 문제이며, 확장(더 많은 큐비트 추가)은 오류 비율을 높입니다. 이러한 제한으로 인해 데스크톱용 양자 PC는 아직 멀지만 상업적으로 실행 가능한 랩 기반 양자 컴퓨터는 가까이 있습니다.
Microsoft는 양자 하드웨어에 대한 클라우드 액세스를 제공하기 위해 양자 하드웨어 회사와 파트너 관계를 맺고 있습니다. Azure Quantum 플랫폼과 QDK가 있으면 다양한 양자 하드웨어에서 양자 프로그램을 살펴보고 실행할 수 있습니다. 다음은 현재 사용 가능한 양자입니다.targets
- Quantinuum: 충실도가 높고 완전히 연결된 큐비트와 중간 회로 측정을 수행 능력을 갖춘 트랩 이온 시스템입니다.
- IonQ: 최대 23개의 완전히 연결된 큐비트에 대해 동적으로 재구성할 수 있는 트랩된 이온 양자 컴퓨터로, 모든 쌍 간에 2큐비트 게이트를 실행할 수 있습니다.
- Rigetti: 대기 시간이 짧고 병렬 실행을 가능하게 하는 QIR(게이트 기반 초전도 프로세서 Quantum Intermediate Representation ) 입니다.
자세한 내용은 전체 양자 컴퓨팅 target 목록을 참조하세요.
Azure Quantum 시뮬레이터
지금은 리소스 및 예산으로 인해 실제 양자 하드웨어의 사용이 제한적입니다. 양자 시뮬레이터는 양자 알고리즘을 실행하여 알고리즘을 쉽게 테스트 및 디버그하고, 결과가 예상과 일치한다는 확신이 들면 실제 하드웨어에서 양자 알고리즘을 실행합니다.
양자 시뮬레이터는 클래식 컴퓨터에서 실행되며 큐비트가 서로 다른 연산에 어떻게 반응하는지 예측하는 환경에서 양자 프로그램을 실행하고 테스트할 수 있는 소프트웨어 프로그램으로, 알고리즘을 쉽게 테스트 및 디버그한 후 결과가 예상과 일치할 것이라는 확신이 생기면 실제 하드웨어에서 알고리즘을 실행할 수 있습니다.
Quantum Development Kit QDK(QDK)에는 대형 시스템을 시뮬레이션하기 위한 스파스 시뮬레이터, 노이즈가 있는 양자 알고리즘을 시뮬레이션하기 위한 노이즈 시뮬레이터 등 동일한 양자 알고리즘을 시뮬레이션하는 다양한 방법을 나타내는 다양한 양자 시뮬레이터 클래스가 포함되어 있습니다. 자세한 내용은 양자 시뮬레이터를 참조하세요.
또한 Microsoft의 각 양자 하드웨어 파트너는 양자 시뮬레이터를 으로 target제공합니다.
Azure 계정이 있는 경우 Azure Quantum 작업 영역의 샘플 갤러리에서 양자 시뮬레이터를 사용하는 여러 가지 Jupyter Notebook 샘플을 찾을 수 있습니다. Q# 및 Azure Quantum Notebook을 시작하는 방법을 참조하세요.