옵션 소개
옵션을 사용하여 IBM Quantum 의 기본 요소를 필요에 맞게 사용자 정의할 수 있습니다.
구조
기본 함수를 호출할 때, 옵션 클래스나 딕셔너리를 사용하여 옵션을 전달할 수 있습니다. 와 같은 자주 사용되는 옵션들은 resilience_level 첫 번째 단계에 있습니다. 다른 옵션들은 다음과 같은 범주로 분류되어 execution 있습니다. 옵션을 다음 형식으로 지정하십시오: options.option.sub-option.sub-sub-option = choice. 예를 들어, options.dynamical_decoupling.enable = True입니다.
기본값
옵션에 값을 지정하지 않으면 Unset 이라는 특수 값이 지정되고 서버 기본값이 사용됩니다. 따라서 기본값은 코드 버전에 관계없이 동일합니다.
각 기본 요소의 “옵션” 가이드에 있는 “옵션 클래스 요약” 섹션의 표에는 기본값이 나열되어 있습니다.
설정 옵션
옵션은 프라이머리 객체가 생성되기 전에 정의할 수 있으며, 옵션 클래스의 인스턴스나 딕셔너리 형태로 해당 프라이머리 객체에 전달할 수 있습니다. 이 프라이머리 객체는 해당 객체들의 복사본을 생성하므로, 원본 사전이나 옵션 인스턴스를 변경하더라도 프라이머리 객체가 소유한 옵션에는 영향을 미치지 않습니다.
또한, 기본 도형이 생성된 후에도 옵션을 변경할 수 있습니다. 사용 중인 애플리케이션에 가장 적합한 워크플로를 사용하십시오.
- 기본 객체 초기화 중이나 초기화 후에 사용 가능한 옵션을 확인할 수 있습니다.
- 옵션에 값을 지정하지 않으면, 해당 옵션에는 특수 값이
Unset할당되며 서버의 기본값이 사용됩니다. - 이
options속성은Python유형입니다dataclass. 내장asdict메서드를 사용하여 이를 딕셔너리로 변환할 수 있습니다.
options 클래스
기본 클래스의 인스턴스를 생성할 때, 해당 options 클래스의 인스턴스를 전달할 수 있습니다. 이러한 옵션들은 을 사용하여 run() 계산을 수행할 때 적용됩니다. 옵션을 다음 형식으로 지정하십시오: options.option.sub-option.sub-sub-option = choice. 예를 들어, options.dynamical_decoupling.enable = True입니다.
수업에 대한 자세한 내용은 또는 EstimatorOptions 을 참조하십시오 SamplerOptions .
다음 예제에서는 Estimator 프리미티브를 사용하지만, 다른 프리미티브의 구문도 이와 유사합니다.
from qiskit_ibm_runtime import QiskitRuntimeService
from qiskit_ibm_runtime import EstimatorV2 as Estimator
from qiskit_ibm_runtime.options import EstimatorOptions
service = QiskitRuntimeService()
backend = service.least_busy(operational=True, simulator=False)
options = EstimatorOptions(
resilience_level=2,
resilience={"zne_mitigation": True, "zne": {"noise_factors": [1, 3, 5]}},
)
# or...
options = EstimatorOptions()
options.resilience_level = 2
options.resilience.zne_mitigation = True
options.resilience.zne.noise_factors = [1, 3, 5]
estimator = Estimator(mode=backend, options=options)사전
기본형을 초기화할 때 옵션을 사전 형태로 지정할 수 있습니다.
다음 예제에서는 Estimator 프리미티브를 사용하지만, 다른 프리미티브의 구문도 이와 유사합니다.
from qiskit_ibm_runtime import QiskitRuntimeService
from qiskit_ibm_runtime import EstimatorV2 as Estimator
service = QiskitRuntimeService()
backend = service.least_busy(operational=True, simulator=False)
# Setting options during initialization
estimator = Estimator(
backend,
options={
"resilience_level": 2,
"resilience": {
"zne_mitigation": True,
"zne": {"noise_factors": [1, 3, 5]},
},
},
)초기화 후 옵션 업데이트
자동 완성 기능을 이용하려면 옵션을 다음과 같은 형식으로 지정하거나, _primitive_.options.option.sub-option.sub-sub-option = choice 일괄 업데이트를 수행하려면 메서드를 update() 사용하세요.
프라이머리 객체를 초기화한 후에 옵션을 설정하는 경우, 해당 프라이머리 객체의 옵션 클래스(EstimatorOptions 또는 SamplerOptions)를 인스턴스화할 필요가 없습니다.
다음 예제에서는 Estimator 프리미티브를 사용하지만, 다른 프리미티브의 구문도 이와 유사합니다.
from qiskit_ibm_runtime import QiskitRuntimeService
from qiskit_ibm_runtime import EstimatorV2 as Estimator
service = QiskitRuntimeService()
backend = service.least_busy(operational=True, simulator=False)
estimator = Estimator(mode=backend)
# Setting options after initialization
# This uses auto-complete.
estimator.options.default_precision = 0.01
# This does bulk update.
estimator.options.update(
default_precision=0.02, resilience={"zne_mitigation": True}
)다음 단계
- 오류 억제 및 오류 완화 설정 방법에 대한 자세한 내용을 확인하세요.
- 견적 도구 옵션 에 대해 자세히 알아보기.
- 샘플러 옵션 에 대해 자세히 알아보세요.
- Executor 옵션 에 대해 자세히 알아보기.