Amazon Braket PennyLane 와 함께 사용 - Amazon Braket

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

Amazon Braket PennyLane 와 함께 사용

하이브리드 알고리즘은 클래식 및 양자 명령을 모두 포함하는 알고리즘입니다. 클래식 지침은 클래식 하드웨어(인EC2스턴스 또는 노트북)에서 실행되고 양자 지침은 시뮬레이터 또는 양자 컴퓨터에서 실행됩니다. 하이브리드 작업 기능을 사용하여 하이브리드 알고리즘을 실행하는 것이 좋습니다. 자세한 내용은 Amazon Braket 작업 사용 시기를 참조하세요.

Amazon Braket를 사용하면 Amazon Amazon Braket PennyLane 플러그인 의 지원 또는 Amazon Amazon Braket Python SDK 및 예제 노트북 리포지토리를 사용하여 하이브리드 양자 알고리즘을 설정하고 실행할 수 있습니다. Amazon Braket 예제 노트북을 SDK사용하면 PennyLane 플러그인 없이도 특정 하이브리드 알고리즘을 설정하고 실행할 수 있습니다. 그러나 더 풍부한 경험을 제공하기 PennyLane 때문에 권장합니다.

하이브리드 양자 알고리즘 정보

하이브리드 양자 알고리즘은 현대 양자 컴퓨팅 디바이스가 일반적으로 노이즈와 오류를 발생시키므로 오늘날 업계에 중요합니다. 계산에 추가된 모든 양자 게이트는 노이즈를 추가할 가능성을 높입니다. 따라서 오래 실행되는 알고리즘은 노이즈로 인해 압도될 수 있으므로 계산에 결함이 발생할 수 있습니다.

Shor’s(Quantum Phase Estimation 예제) 또는 Grover’s(Grover 예제)와 같은 순수 양자 알고리즘에는 수천 또는 수백만 개의 작업이 필요합니다. 이러한 이유로 기존 양자 디바이스에서는 실용적이지 않을 수 있습니다. 일반적으로 노이즈가 많은 중간 규모 양자(NISQ) 디바이스라고 합니다.

하이브리드 양자 알고리즘에서 양자 처리 단위(QPUs)는 특히 클래식 알고리즘의 특정 계산 속도를 높이기 위해 클래식 CPUs의 공동 프로세서로 작동합니다. 회로 실행은 오늘날 디바이스의 기능 범위 내에서 훨씬 짧아집니다.

Amazon Braket 및 PennyLane

Amazon Braket은 양자 차별화 프로그래밍 개념을 기반으로 구축PennyLane된 오픈 소스 소프트웨어 프레임워크인 에 대한 지원을 제공합니다. 이 프레임워크를 사용하여 신경망을 훈련시키는 것과 동일한 방식으로 양자 회로를 훈련시켜 양자 화학, 양자 기계 학습 및 최적화의 컴퓨팅 문제에 대한 솔루션을 찾을 수 있습니다.

PennyLane 라이브러리는 및 를 포함한 PyTorch 익숙한 기계 학습 도구 TensorFlow에 인터페이스를 제공하여 훈련 양자 회로를 빠르고 직관적으로 만듭니다.

  • PennyLane 라이브러리 -- PennyLane 는 에 사전 설치되어 있습니다.Amazon Braket 노트북. 에 액세스하려면 Amazon 에서 디바이스를 브레이크하고 PennyLane노트북을 열고 다음 명령을 사용하여 PennyLane 라이브러리를 가져옵니다.

import pennylane as qml

자습서 노트북을 사용하면 빠르게 시작할 수 있습니다. 또는 PennyLane 에서 를 사용할 수 있습니다.Amazon 선택한 IDE 의 브레이크입니다.

  • 는 Amazon 브레이크트 PennyLane 플러그인 - 자체 IDE를 사용하려면 Amazon 브레이크트 PennyLane 플러그인을 수동으로. 플러그인은 Amazon Braket Python SDK PennyLane 과 연결되어 에서 에서 회로를 실행할 수 PennyLane 있습니다.Amazon 브레이크트 디바이스. PennyLane 플러그인을 설치하려면 다음 명령을 사용합니다.

pip install amazon-braket-pennylane-plugin

다음 예제에서는 에 대한 액세스를 설정하는 방법을 보여줍니다.Amazon 의 브레이크 장치 PennyLane:

# to use SV1 import pennylane as qml sv1 = qml.device("braket.aws.qubit", device_arn="arn:aws:braket:::device/quantum-simulator/amazon/sv1", wires=2) # to run a circuit: @qml.qnode(sv1) def circuit(x): qml.RZ(x, wires=0) qml.CNOT(wires=[0,1]) qml.RY(x, wires=1) return qml.expval(qml.PauliZ(1)) result = circuit(0.543) #To use the local sim: local = qml.device("braket.local.qubit", wires=2)

에 대한 자습서 예제 및 자세한 내용은 Amazon Braket 예제 리포지토리를 PennyLane참조하세요.

는 Amazon Braket PennyLane 플러그인을 사용하면 Amazon 단일 코드 줄 PennyLane 을 사용하여 의 Braket QPU 및 임베디드 시뮬레이터 디바이스. 두 가지를 제공합니다.Amazon 작업할 Braket 양자 디바이스 PennyLane:

  • braket.aws.qubit 에서 실행 Amazon QPUs 및 시뮬레이터를 포함한 Braket 서비스의 양자 디바이스

  • braket.local.qubit 에서 실행 Amazon BraketSDK의 로컬 시뮬레이터

는 Amazon Braket PennyLane 플러그인은 오픈 소스입니다. PennyLane 플러그인 GitHub 리포지토리 에서 설치할 수 있습니다.

에 대한 자세한 내용은 PennyLane 웹 사이트의 설명서를 PennyLane참조하세요.

Amazon Braket 예제 노트북의 하이브리드 알고리즘

Amazon Braket은 하이브리드 알고리즘 실행을 위해 PennyLane 플러그인에 의존하지 않는 다양한 예제 노트북을 제공합니다. Quantum Approximate Optimization Algorithm(QAOA) 또는 Variational Quantum Eigensolver()와 같은 변형 방법을 설명하는 이러한 Amazon Braket 하이브리드 예제 노트북을 시작할 수 있습니다VQE.

Amazon Braket 예제 노트북은 Amazon Braket Python SDK에 의존합니다. 는 다음을 통해 양자 컴퓨팅 하드웨어 디바이스와 상호 작용하는 프레임워크를 SDK 제공합니다.Amazon Braket. 하이브리드 워크플로의 양자 부분을 지원하도록 설계된 오픈 소스 라이브러리입니다.

탐색할 수 있습니다.Amazon 예제 노트북 을 사용하여 더 많은 브레이크를 겁니다.

시뮬레이터가 내장된 하이브리드 알고리즘 PennyLane

Amazon Braket 하이브리드 작업에는 이제 의 고성능 CPU및 GPU기반 임베디드 시뮬레이터가 제공됩니다PennyLane. 이 임베디드 시뮬레이터 제품군은 하이브리드 작업 컨테이너 내에 직접 내장할 수 있으며 빠른 상태 벡터 lightning.qubit 시뮬레이터, lightning.gpu NVIDIA의 cuQuantum 라이브러리를 사용하여 가속화된 시뮬레이터 등을 포함합니다. 이러한 임베디드 시뮬레이터는 결합 차별화 방법 과 같은 고급 방법을 활용할 수 있는 양자 기계 학습과 같은 변형 알고리즘에 적합합니다. 하나 이상의 CPU GPU 인스턴스에서 이러한 임베디드 시뮬레이터를 실행할 수 있습니다.

Hybrid Jobs를 사용하면 이제 클래식 공동 프로세서와 , QPU Amazon 다음과 같은 Braket 온디맨드 시뮬레이터 SV1또는 의 임베디드 시뮬레이터를 직접 사용합니다 PennyLane.

임베디드 시뮬레이터는 하이브리드 작업 컨테이너에서 이미 사용할 수 있으므로 기본 Python 함수를 데코레이터로 @hybrid_job 데코레이션하기만 하면 됩니다. 시뮬레이터를 PennyLane lightning.gpu 사용하려면 다음 코드 조각과 InstanceConfig 같이 에서 GPU 인스턴스를 지정해야 합니다.

import pennylane as qml from braket.jobs import hybird_job from braket.jobs.config import InstanceConfig @hybrid_job(device="local:pennylane/lightning.gpu", instance_config=InstanceConfig(instanceType="ml.p3.8xlarge")) def function(wires): dev = qml.device("lightning.gpu", wires=wires) ...

하이브리드 작업에서 PennyLane 임베디드 시뮬레이터 사용을 시작하려면 예제 노트북을 참조하세요.

Amazon Braket 시뮬레이터를 PennyLane 사용한 의 연결 그라데이션

를 사용하여 PennyLane Amazon Braket, 로컬 상태 벡터 시뮬레이터 또는 에서 실행할 때 연결 차별화 방법을 사용하여 그라데이션을 계산할 수 있습니다SV1.

참고: 결합 차별화 방법을 사용하려면 가 qnode 아닌diff_method='device'에 지정해야 합니다diff_method='adjoint'. 다음 예를 참조하세요.

device_arn = "arn:aws:braket:::device/quantum-simulator/amazon/sv1" dev = qml.device("braket.aws.qubit", wires=wires, shots=0, device_arn=device_arn) @qml.qnode(dev, diff_method="device") def cost_function(params): circuit(params) return qml.expval(cost_h) gradient = qml.grad(circuit) initial_gradient = gradient(params0)
참고

현재 PennyLane 는 QAOA Hamiltonian의 그룹화 인덱스를 계산하고 이를 사용하여 Hamiltonian을 여러 예상 값으로 분할합니다. QAOA 에서 실행할 때 SV1의 연결 차별화 기능을 사용하려는 경우 PennyLane다음과 같이 그룹화 인덱스를 제거하여 Hamiltonian 비용을 재구성해야 합니다. cost_h, mixer_h = qml.qaoa.max_clique(g, constrained=False) cost_h = qml.Hamiltonian(cost_h.coeffs, cost_h.ops)