샘플러 옵션 지정
이 페이지의 코드는 다음 요구 사항을 바탕으로 개발되었습니다. 이 버전 이상을 사용하시기를 권장합니다.
qiskit[all]~=2.5.2 qiskit-ibm-runtime~=0.47.0
옵션을 사용하여 샘플러 프리미티브를 사용자 정의할 수 있습니다. 이 섹션에서는 ‘ IBM Quantum ’ 기본 옵션의 지정 방법에 대해 중점적으로 다룹니다. 프라이머리 메서드의 인터페이스는 모든 구현체에서 공통적이지만, 해당 메서드의 run() 옵션은 그렇지 않습니다. 및 qiskit.primitives.BackendSamplerV2 옵션에 qiskit_aer.primitives.SamplerV2 대한 자세한 내용은 해당 API 참조 문서를 참조하십시오.
샘플러 옵션 설정
Sampler를 초기화할 때, 초기화 후, 또는 초기화가 완료된 후에 옵션을 설정하거나 업데이트할 수 있습니다. 이 기술들을 사용하는 방법에 대한 안내는 ‘옵션 소개’ 항목을 참조하십시오.
또한, 다음 섹션에서 설명하는 대로 메서드에서 run() 값을 shots 설정할 수 있습니다.
Run() 메서드
에 전달할 수 있는 값은 run() 인터페이스에 정의된 값들뿐입니다. 즉, shots. 이렇게 하면 현재 실행에 default_shots 대해 설정된 모든 값이 덮어쓰게 됩니다.
from qiskit_ibm_runtime import QiskitRuntimeService
from qiskit_ibm_runtime import SamplerV2 as Sampler
from qiskit.circuit.library import random_iqp
from qiskit.transpiler import generate_preset_pass_manager
service = QiskitRuntimeService()
backend = service.least_busy(operational=True, simulator=False)
circuit1 = random_iqp(3)
circuit1.measure_all()
circuit2 = random_iqp(3)
circuit2.measure_all()
pass_manager = generate_preset_pass_manager(
optimization_level=3, backend=backend
)
transpiled1 = pass_manager.run(circuit1)
transpiled2 = pass_manager.run(circuit2)
sampler = Sampler(mode=backend)
# Default shots to use if not specified in run()
sampler.options.default_shots = 500
# Sample two circuits at 128 shots each.
sampler.run([transpiled1, transpiled2], shots=128)Output:
<RuntimeJobV2('dab7ld3vpcac73ddek50', 'sampler')>
특수 케이스
샷
이 SamplerV2.run 메서드는 두 개의 인수를 받습니다. 하나는 PUB 목록으로, 각 PUB는 shots에 대해 PUB 전용 값을 지정할 수 있으며, 다른 하나는 shots 키워드 인수입니다. 이러한 샷 값은 샘플러 실행 인터페이스의 일부이며, 런타임 샘플러의 옵션과는 별개입니다. 이는 Sampler 추상화를 준수하기 위해 옵션으로 지정된 모든 값보다 우선합니다.
그러나 PUB 이나 run 키워드 인자에서 가 명시되지 않은 shots 경우(또는 모두 인 None경우), options의 shots 값이 사용되며, 특히 default_shots가 적용됩니다.
요약하자면, 특정 PUB 에 대해 샘플러에서 샷을 지정할 때의 우선순위는 다음과 같습니다:
- PUB 에 촬영 횟수가 지정되어 있다면 해당 값을 사용하십시오.
- 에서 키워드
shots인수가run지정된 경우, 해당 값을 사용합니다. - 이 기능이 활성화되어
twirling있으면, 로 지정된shots_per_randomization와num_randomizations의 곱이 사용됩니다.twirling옵션 - 가 지정된
sampler.options.default_shots경우, 해당 값을 사용합니다.
따라서 모든 가능한 위치에 샷이 지정된 경우, 우선순위가 가장 높은 샷( PUB 에 지정된 샷)이 사용됩니다.
PUB 및 에 run 명시된 샷이 우선순위가 더 높지만, 가 활성화되어 있고 와 shots_per_randomization 의 num_randomizations 곱이 값보다 shots 작을 경우 twirling 작업이 실패합니다. num_randomizations이 시나리오에서는 지정된 대상들 사이에 발사체를 배분할 수 없습니다. SamplerV2
예:
from qiskit_ibm_runtime import QiskitRuntimeService
from qiskit_ibm_runtime import SamplerV2 as Sampler
from qiskit.circuit.library import random_iqp
from qiskit.transpiler import generate_preset_pass_manager
service = QiskitRuntimeService()
backend = service.least_busy(operational=True, simulator=False)
circuit1 = random_iqp(3)
circuit1.measure_all()
circuit2 = random_iqp(3)
circuit2.measure_all()
pass_manager = generate_preset_pass_manager(
optimization_level=3, backend=backend
)
transpiled1 = pass_manager.run(circuit1)
transpiled2 = pass_manager.run(circuit2)
# Setting shots during primitive initialization
sampler = Sampler(mode=backend, options={"default_shots": 4096})
# Setting options after primitive initialization
# This uses auto-complete.
sampler.options.default_shots = 2000
# This does bulk update. The value for default_shots is overridden
# if you specify shots with run() or in the PUB.
sampler.options.update(
default_shots=1024, dynamical_decoupling={"sequence_type": "XpXm"}
)
# Sample two circuits at 128 shots each.
sampler.run([transpiled1, transpiled2], shots=128)Output:
<RuntimeJobV2('dab7lf3vpcac73ddek8g', 'sampler')>
사용 가능 옵션
다음 표는 최신 버전의 qiskit-ibm-runtime.에 포함된 옵션을 정리한 것입니다. 이전 버전의 옵션을 확인하려면 API 참조 qiskit-ibm-runtime 문서를 방문하여 이전 버전을 선택하세요.
동적 분리 오류 완화 설정을 제어합니다.
선택 사항 :
True,False기본값 :
False선택 사항 :
middle,edges기본값 :
middle선택 사항:
asap,alap기본값:alap선택 사항:
XX,XpXm,XY4기본값:XX선택 사항:
True,False기본값:False
태그 목록.
선택 사항 : 없음
기본값 : 없음
선택 항목 : DEBUG, INFO, WARNING, ERROR, CRITICAL
기본값 : 경고
선택 사항 :
True,False기본값 :
False
각 실행마다 큐비트를 기저 상태로 초기화할지 여부.
선택 사항 :
True,False기본값 :
True측정과 그 이후의 양자 회로 사이의 시간 간격.
선택 사항 : 다음 범위 내의 값
backend.rep_delay_range기본값 : 다음에서 지정됨
backend.default_rep_delay선택 사항 :
classified,kerneled,avg_kerneled기본값 :
classified
작업이 실행될 수 있는 최대 시간을 초 단위로 제한합니다. 자세한 내용은 최대 실행 시간 가이드를 참조하십시오.
선택 사항 : [1] 에서 10800 사이의 초 단위 정수
기본값 : 10800 (3시간)
백엔드 시뮬레이션 시 전달할 옵션
선택 사항 : 언롤할 기본 게이트 이름 목록
기본값 : Qiskit Aer 시뮬레이터 에서 지원하는 모든 기본 게이트 집합
선택 사항 : 방향성 2-큐비트 상호작용 목록
기본값 : 없음. 이는 연결성 제약 조건이 없음을 의미합니다(완전한 연결성).
선택 사항 : Qiskit Aer NoiseModel 또는 이에 상응하는 모델
기본값 : 없음
선택 항목 : 정수
기본값 : 없음
회전 옵션
선택지 : 참, 거짓
기본값 : False
선택지 : 참, 거짓
기본값 : False
선택 사항 :
auto, 정수 >= 1기본값 :
auto선택 사항 :
auto, 정수 >= 1기본값 :
auto선택 사항 :
active,active-circuit,active-accum,all기본값 :
active-accum
가능한 경우 실험적 옵션.
기능 호환성
특정 런타임 기능은 하나의 작업 내에서 함께 사용할 수 없습니다. 선택한 기능과 호환되지 않는 기능 목록을 보려면 해당 탭을 클릭하세요:
호환되지 않는 항목:
- 동적 분리
기타 참고 사항:
- 게이트 회전 연산은 동적 회로에 적용할 수 있지만, 조건부 블록 내에 있는 게이트에는 적용할 수 없습니다. 측정 회전 기능은 단자 측정에만 적용할 수 있습니다.
- v0.42.0 이상을
qiskit-ibm-runtime사용할 경우 분수 게이트와 호환됩니다.
호환되지 않는 항목:
- 동적 회로
호환되지 않는 항목:
- 문 돌리기
v0.42.0 이상을
qiskit-ibm-runtime사용할 경우 동적 회로와 호환됩니다.호환되지 않는 항목:
- 분수 게이트
- 스트레칭
기타 참고 사항:
- 게이트 회전 연산은 동적 회로에 적용할 수 있지만, 조건부 블록 내에 있지 않은 게이트에만 적용할 수 있습니다.
- 측정 회전 기능은 단자 측정에만 적용할 수 있습니다.
- 측정 값을 뒤집는 것은 해당
store지침과 상충됩니다. - 클리포드 얽힘이 아닌 얽힘에서는 작동하지 않습니다.
다음 단계
- ‘옵션 개요’ 가이드를 확인해 보세요.
- Sampler API 참조 문서에서 해당
SamplerV2메서드에 대한 자세한 내용을 확인하세요. - 작업 실행 모드를 결정하십시오.
- Sampler를 통해 소음 관리 에 대해 알아보세요.