주 콘텐츠로 건너뛰기
이 프로젝트는 베타 단계입니다. 버그를 발견하셨나요? GitHub 이슈 만들기. 질문이나 아이디어가 있으신가요? Discussions에서 질문하기 — 피드백을 기다립니다!
이 페이지의 번역 품질은 어떻습니까?

Estimator로 노이즈 관리 구성

패키지 버전

이 페이지의 코드는 다음 요구 사항을 사용하여 개발되었습니다. 이 버전 이상을 사용하는 것을 권장합니다.

qiskit-ibm-runtime~=0.47.0

노이즈를 관리하는 방법에는 여러 가지가 있으며, 일반적으로 오류가 발생하기 전에 방지하기 위해 다양한 오류 완화 및 오류 억제 기법을 사용합니다. 이러한 기법은 보통 전처리 오버헤드를 유발합니다. 따라서 결과를 완벽히 하는 것과 Job이 적절한 시간 내에 완료되도록 하는 것 사이의 균형을 달성하는 것이 중요합니다.

Estimator는 다음과 같은 노이즈 관리 기법을 지원해요. 각 기법에 대한 설명은 오류 완화 및 억제 기법을 참조하세요. 이러한 기법을 활성화하는 예시는 사용자 지정 노이즈 관리 설정 섹션을 참조하세요.

동적 디커플링

활성화 방법: options.dynamical_decoupling.enable = True

API 참조: DynamicalDecouplingOptions

주요 옵션: sequence_type

Pauli 트월링

활성화 방법: options.twirling.enable_gates = True

API 참조: TwirlingOptions

주요 옵션: num_randomizations, shots_per_randomization

TREX

활성화 방법: options.resilience.measure_mitigation = True

API 참조: MeasureNoiseLearningOptions

주요 옵션:

ZNE

활성화 방법: options.resilience.zne_mitigation = True

API 참조: ZneOptions

주요 옵션: noise_factors, extrapolator

PEA

활성화 방법: (ZNE도 함께 활성화해야 함) options.resilience.zne_mitigation = True 및 options.resilience.zne.amplifier = "pea"

API 참조: ZneOptions

주요 옵션: noise_factors, extrapolator

PEC

활성화 방법: options.resilience.pec_mitigation = True

API 참조: PecOptions

주요 옵션: max_overhead

복원력 수준​

resilience_level은 오류에 대한 복원력을 얼마나 구축할지를 지정합니다. 높은 수준은 더 긴 처리 시간을 대가로 더 정확한 결과를 생성합니다. 복원력 수준은 Primitive 쿼리에 노이즈 관리를 적용할 때 비용/정확도 트레이드오프를 구성하는 데 사용할 수 있습니다. 노이즈 관리는 관련 Circuit 모음 또는 앙상블의 출력을 처리하여 결과의 오류(편향)를 줄입니다. 오류 감소 정도는 적용된 방법에 따라 다릅니다. 복원력 수준은 사용자가 자신의 애플리케이션에 적합한 비용/정확도 트레이드를 추론할 수 있도록 노이즈 관리 방법의 세부적인 선택을 추상화합니다.

이를 감안하면, 각 수준은 다양한 시간-정확도 트레이드오프를 실험할 수 있도록 양자 샘플링 오버헤드 수준이 증가하는 방법 또는 방법들에 해당합니다. 다음 표는 각 Primitive에 대해 어떤 수준과 해당 방법이 사용 가능한지 보여줍니다.

복원력 수준설명기법
0완화 없음없음
1 [기본값]최소 완화 비용: 읽기 오류와 관련된 오류 완화트월된 읽기 오류 소거 (TREX) 측정 트월링
2중간 완화 비용. 일반적으로 Estimator의 편향을 줄이지만 제로 편향이 보장되지는 않습니다.수준 1 + 제로 노이즈 외삽 (ZNE) 및 게이트 트월링
주의

복원력 수준은 현재 베타 상태이므로 샘플링 오버헤드와 솔루션 품질은 Circuit마다 다를 수 있습니다. 새로운 기능, 고급 옵션 및 관리 도구는 순차적으로 출시될 예정입니다. 특정 노이즈 관리 방법이 각 복원력 수준에서 적용된다는 보장이 없습니다.

복원력 수준으로 Estimator 구성​

복원력 수준을 사용하여 노이즈 관리 기법을 지정하거나, 사용자 정의 노이즈 관리 설정에 설명된 대로 기법을 개별적으로 설정할 수 있어요.

중요

복원력 수준에 추가하여 수동으로 지정하는 옵션은 복원력 수준에 의해 정의된 기본 옵션 세트에 추가로 적용됩니다. 따라서 원칙적으로 복원력 수준을 1로 설정하고 측정 완화를 끌 수 있지만, 이는 권장하지 않습니다.

예를 들어, 복원력 수준을 0으로 설정하면 zne_mitigation이 꺼지지만, estimator.options.resilience.zne_mitigation = True는 해당 값을 재정의합니다.

예제​

다음 코드는 resilience_level 2를 설정하여 ZNE, TREX 및 게이트 트월링을 활성화합니다.

# Added by doQumentation — installs the packages this notebook needs if they are missing
import importlib.util

_needed = {"qiskit_ibm_runtime": "qiskit-ibm-runtime"}
_missing = [pip for module, pip in _needed.items()
if importlib.util.find_spec(module) is None]
# One at a time, so a package that fails to install does not block the others
for _pip in _missing:
%pip install -q {_pip}
if not _missing:
print("\u2713 All required packages are installed")
from qiskit_ibm_runtime import QiskitRuntimeService

# Legacy server-side primitive before qiskit-ibm-runtime 0.50.0
# from qiskit_ibm_runtime import Estimator

# Client-side primitive introduced in qiskit-ibm-runtime 0.50.0
from qiskit_ibm_runtime.executor_estimator import Estimator

service = QiskitRuntimeService()
backend = service.least_busy(operational=True, simulator=False)

# Setting options during primitive initialization
estimator = Estimator(backend, options={"resilience_level": 2})

사용자 정의 노이즈 관리 설정​

Estimator 옵션을 사용하여 개별 노이즈 관리 방법을 켜고 끌 수 있습니다.

참고

여러 옵션을 사용하는 전체 예제​

from qiskit_ibm_runtime import QiskitRuntimeService

# Legacy server-side primitive before qiskit-ibm-runtime 0.50.0
# from qiskit_ibm_runtime import Estimator

# Client-side primitive introduced in qiskit-ibm-runtime 0.50.0
from qiskit_ibm_runtime.executor_estimator import Estimator

service = QiskitRuntimeService()
backend = service.least_busy(operational=True, simulator=False)

estimator = Estimator(backend)
options = estimator.options
# Turn on gate twirling.
options.twirling.enable_gates = True
# Turn on measurement error mitigation.
options.resilience.measure_mitigation = True

print(
f">>> gate twirling is turned on: {estimator.options.twirling.enable_gates}"
)
print(
f">>> measurement error mitigation is turned on: "
f"{estimator.options.twirling.enable_gates}"
)
>>> gate twirling is turned on: True
>>> measurement error mitigation is turned on: True

모든 오류 완화 끄기​

모든 오류 완화를 끄는 방법은 Estimator 옵션 가이드의 모든 오류 억제 및 완화 끄기 섹션을 참조하세요.

다음 단계​

권장 사항