샘플러 빠른 시작
샘플러의 핵심 임무는 하나 이상의 양자 회로 실행 결과로 생성된 출력 레지스터를 샘플링하는 것입니다. 동적 회로 와 매개변수화 회로를 입력으로 제출할 수 있습니다(매개변수화 회로를 제출할 경우, 매개변수 값도 함께 제공해야 합니다). Sampler는 오류 억제를 위한 내장형 동적 분리 및 트위링 기능도 지원합니다.
이 주제의 단계에서는 Sampler를 설정하는 방법, 구성에 사용할 수 있는 옵션을 살펴보는 방법, 그리고 프로그램에서 Sampler를 호출하는 방법을 설명합니다.
이 페이지의 코드는 다음 요구 사항을 바탕으로 개발되었습니다. 이 버전 이상을 사용하시기를 권장합니다.
qiskit[all]~=2.5.2 qiskit-ibm-runtime~=0.47.0
샘플러 프리미티브 사용 방법
1. 계정 초기화
먼저 계정을 초기화해야 합니다. 그런 다음 기대값을 계산하는 데 사용할 QPU를 선택할 수 있습니다.
아직 계 정을 만들지 않으셨다면, ‘ IBM Cloud 계정 설정’ 항목의 단계를 따르세요.
새로 지원되는 분할 게이트 를 사용하려면, QiskitRuntimeService 인스턴스에서 백엔드를 요청할 때 를 use_fractional_gates=True 설정하십시오. 예를 들어,
service = QiskitRuntimeService()
fractional_gate_backend = service.least_busy(use_fractional_gates=True)이 기능은 실험적인 기능이며, 향후 변경될 수 있습니다.
from qiskit_ibm_runtime import QiskitRuntimeService
service = QiskitRuntimeService()
backend = service.least_busy(
operational=True, simulator=False, min_num_qubits=127
)2. 회로 만들기
샘플러 프리미티브의 입력으로 최소한 하나의 회로가 필요합니다.
import numpy as np
from qiskit.circuit.library import efficient_su2
circuit = efficient_su2(127, entanglement="linear")
circuit.measure_all()
# The circuit is parametrized, so we will define the parameter values for execution
param_values = np.random.rand(circuit.num_parameters)회로와 관측량은 QPU에서 지원하는 명령어만 사용하도록 변환되어야 합니다(이를 명령어 집합 아키텍처(ISA) 회로라고 합니다). 이를 위해 트랜스파일러를 사용하세요.
from qiskit.transpiler import generate_preset_pass_manager
pm = generate_preset_pass_manager(optimization_level=1, backend=backend)
isa_circuit = pm.run(circuit)
print(f">>> Circuit ops (ISA): {isa_circuit.count_ops()}")Output:
>>> Circuit ops (ISA): OrderedDict([('rz', 3036), ('sx', 1769), ('cz', 378), ('measure', 127), ('barrier', 1)])
3. IBM Quantum 샘플러 초기화
Sampler를 초기화할 때, 매개변수를 mode 사용하여 실행할 모드를 지정하십시오. 가능한 값은 각각 배치, 세션, 작업 실행 모드에 해당하는 batch, session, 또는 객체입니다 backend . 자세한 내용은 ‘ IBM Quantum Compute Service 실행 모드 개요’를 참조하십시오. Open Plan 사용자는 세션 작업을 제출할 수 없으므로 유의하시기 바랍니다.
from qiskit_ibm_runtime import SamplerV2 as Sampler
sampler = Sampler(mode=backend)4. Sampler를 호출하고 결과를 확인합니다
다음으로, run() 메서드를 호출하여 출력을 생성합니다. 회로 및 선택적 매개변수 값 집합은 기본 통합 블록 ( PUB ) 튜플 형태로 입력됩니다.
job = sampler.run([(isa_circuit, param_values)])
print(f">>> Job ID: {job.job_id()}")
print(f">>> Job Status: {job.status()}")Output:
>>> Job ID: dab7lb6rrl7c7386gjgg
>>> Job Status: QUEUED
result = job.result()
# Get results for the first (and only) PUB
pub_result = result[0]
print(
f"First ten results for the 'meas' output register: "
f"{pub_result.data.meas.get_bitstrings()[:10]}"
)Output:
First ten results for the 'meas' output register: ['1110001000100100100111011000001001000101010000001100010010110011001100110111100000000110001000011001101000110100101110101010011', '1110101100010101010001010111111011000110011010100101001100110101010010101010101110001010100100000000011110101101011000100000100', '1100110011101000110000000100110111101010110001100010111100001101100001010100111001101010101110000101010001001101010101001000100', '1011001001011000000101010111111010011101001111010100001011110011000101110101011001100110011011110011101010000111001111110110011', '1110111011011111101011110101110101010110011001100110101111100100011101100011011100101100101001001111110101111010101110111111011', '0101001110001110010001010100010111011001000000011110000000000001110000010010101101011001000100000001011011101111010010110111110', '1101101001000100010000110001000101010010101011000011000011001010000111100110010101010110100110011010101100001011100110001111011', '1000110011111111100010101010101111001001100001110111101001100111010101010111110110011000110011010010010000100000100010010010101', '0101010100110011110011010000000100011001111100101100101100101111101110100001101101111010100011011000010011111010001100110000010', '0010000111011100000000110000001110001100010011000100101110111111100011001100011001101010011111111100000000011100101101111010100']
다음 단계
- 양자 컴퓨터에서 실행하기 전에 로컬 환경에서 테스트하는 방법을 알아보세요.
- 자세한 예시를 살펴보세요.
- IBM Quantum Learning 의 ‘Cost’ 함수 강의를 따라가며 기본형(primitives)을 연습해 보세요.
- ‘트랜스파일’ 섹션에서 로컬 환경에서 트랜스파일하는 방법을 알아보세요.
- ‘트랜스파일러 설정 비교’ 가이드를 확인해 보세요.
- 기본 옵션 사용법을 알아보세요.
- 샘플러 옵션에 대한 API를 확인하세요.