Algorithmiq 텐서 네트워크 오류 완화 API 참조
Qiskit Functions — 파트너 기관들이 개발한 사전 구축형 도구 — 소프트웨어 개발 워크플로의 일부를 추상화하여, 대규모 알고리즘 탐색 및 애플리케이션 개발을 간소화하고 가속화합니다. 이 Qiskit 함수에 대한 가이드를 보려면 클릭하세요.
Algorithmiq TEM Qiskit 함수 가이드
입력
현재 TEM에는 다음과 같은 제한 사항이 있습니다:
- 매개변수화된 회로는 지원되지 않습니다. 정밀도가 지정된 경우
Noneparameters 인수는 로 설정해야 합니다. 이 제한 사항은 향후 버전에서 해제될 예정입니다. - 루프가 없는 회로만 지원됩니다. 이 제한 사항은 향후 버전에서 해제될 예정입니다.
- 리셋, 측정 및 모든 형태의 제어 흐름과 같은 비단일 게이트는 지원되지 않습니다. 리셋 기능은 향후 업데이트에서 추가될 예정입니다.
매개변수
pubs
유형: Iterable[EstimatorPubLike]
PUB 와 유사한(기본 통합 블록) 객체(예: 튜플 (circuit, observables) 또는 (circuit, observables, parameters, precision))의 반복 가능 객체. 자세한 내용은 PUB 개요를 참조하십시오. ISA가 아닌 회로가 통과되면, 최적의 설정으로 트랜스파일링됩니다. ISA 회로가 통과되면 트랜스파일링되지 않으며, 이 경우 관측 가능 변수는 전체 QPU에서 정의되어야 합니다.
- 필수: Yes
- 예:
(circuit, observables)
backend_name
유형: str
기본값: Least busy backend
쿼리를 실행할 백엔드 이름
- 필수: 아니오
- 예:
"ibm_fez"
옵션
유형: dict
이 함수의 입력 옵션은 중첩된 사전 형태로 지정됩니다. 옵션의 전체 목록과 기본값을 확인하세요.
- 필수: 아니오
- 예:
{"max_bond_dimension": 100}
TEM의 고급 설정이 포함된 설명서. 사전에는 다음 목록에 있는 키들이 포함될 수 있습니다. 해당 옵션 중 하나라도 지정되지 않은 경우, 목록에 나열된 기본값이 사용됩니다. 기본값은 TEM의 일반적인 사용에 적합합니다.
옵션 목록
tem_max_bond_dimension
유형: int
기본값: 500
텐서 네트워크에 사용될 본드 크기의 최대값.
tem_compression_cutoff
유형: float
기본값: 1e-16
텐서 네트워크에 사용할 임계값.
compute_shadows_bias_from_observable
유형: bool
기본값: False
고전적 그림자 측정 프로토콜의 편향을 ‘ PUB ’ 관측량에 맞춰 조정해야 하는지 여부를 나타내는 부울 플래그입니다. False인 경우, 고전적 섀도우 프로토콜(Z, X, Y를 관측할 확률이 동일함)이 사용됩니다.
shadows_bias
유형: np.ndarray
기본값: np.array([1 / 3, 1 / 3, 1 / 3])
무작위 고전적 섀도우 측정 프로토콜에 사용될 바이어스로, 크기가 3인 정사각형 배열( 1d ) 또는 모양이 (num_qubits, 3)인 배열( 2d )입니다. 순서는 ZXY입니다.
max_execution_time
유형: int or None
기본값: None
QPU에서 허용되는 최대 실행 시간(초). 실행 시간이 이 값을 초과하면 작업이 취소됩니다. 이 경우 None, IBM Quantum Compute Service에서 설정한 기본 제한이 적용됩니다.
num_randomizations
유형: int
기본값: 32
노이즈 학습 및 게이트 트위링에 사용될 무작위화 횟수.
max_layers_to_learn
유형: int
기본값: True
학습할 고유 레이어의 최대 개수.
mitigate_readout_error
유형: bool
기본값: True
읽기 오류 완화 처리를 수행할지 여부를 나타내는 부울 플래그입니다.
num_readout_calibration_shots
유형: int
기본값: 10000
판독 오차 완화를 위해 사용할 샷 수.
default_precision
유형: float
기본값: 0.02
정밀도가 명시되지 않은 PUB에 대해 사용되는 기본 정밀도입니다.
seed
유형: int or None
기본값: None
재현성을 위해 난수 생성기의 시드 값을 설정합니다. 만약 None그렇다면, 시드 값을 설정하지 마십시오.
shots_per_randomization
유형: int
기본값: 128
무작위 학습 회로당 사용할 총 샷 수.
layer_pair_depths
유형: list[int]
기본값: [0, 1, 2, 4, 16, 32]
학습 실험에 사용할 회로 깊이(쌍 수로 측정).
layer_noise_model
유형: NoiseLearnerResult, Sequence[LayerError], or None
기본값: None
이전에 실행된 실행에서 산출된 사전 계산된 노이즈 학습 결과입니다.
private
유형: bool
기본값: False
QPU 작업들을 비공개로 설정해야 하는지 여부. 이 값을 True로 설정하면 이후 실험 데이터 다운로드가 차단되므로, 기밀이 필요한 작업의 경우 이 설정을 권장합니다.
tem_enforce_linear_circuit
유형: bool
기본값: False
회로를 선형 토폴로지로 구성할지 여부.
정밀도
결과에 대한 정확도는 세 가지 방법으로 요청할 수 있습니다. 정밀도는 PUB에 전달할 수 있으며, 이는 해당 PUB에만 적용됩니다. 그렇지 않은 경우, 위에서 명시한 대로 옵션을 통해 a를 전달할 default_precision 수 있습니다. 마지막으로, 고급 사용자를 위해 옵션에 PUB당 구체적인 샷 수를 default_shots``로 전달할 수 있으며, 이 경우 다른 모든 정밀도 옵션보다 우선 적용됩니다.
or default_precision 또는 per- PUB 값이 전달되면, 원하는 정밀도를 달성하기 위해 촬영 횟수가 추정됩니다. 이는 다음과 같이 선택된 QPU 매개변수와 오차율을 바탕으로 수행됩니다:
- 2-큐비트 게이트의 각 층에서 발생하는 노이즈를 정량화하는 지표인 층별 게이트 오차(EPLG)를 계산한다. 백엔드 속성이 제공되는 경우 해당 정확도를 추출하고, 그렇지 않은 경우 기본값을 사용합니다.
- 회로 내의 2-큐비트 게이트 수를 세어봅니다. 이는 일반적으로 노이즈의 주요 원인이 되기 때문입니다.
- 2-큐비트 게이트의 수와 EPLG를 기반으로 노이즈 계수를 계산한다.
- 요청된 정밀도를 사용하여, 노이즈 계수와 정밀도의 제곱의 역수를 곱해 필요한 촬영 횟수를 추정합니다.
이러한 접근 방식은 회로 구조와 백엔드의 노이즈 특성을 모두 고려하여, 원하는 정밀도를 달성하기에 충분한 샷 수를 확보합니다.
출력
TEM 효과가 완화된 결과를 포함하는 PrimitiveResults Qiskit. 각 PUB 에 대한 결과는 다음 필드를 포함하는 PubResult 객체로 반환됩니다:
데이터
유형: Databin
TEM 보정이 적용된 관측량과 그 표준 오차를 포함하는 DataBin Qiskit 객체. DataBin 에는 다음과 같은 필드가 있습니다:
evs: TEM 보정이 적용된 관측값.stds: TEM 효과가 제거된 관측량의 표준 오차.
메타데이터
유형: dict
추가 결과가 포함된 사전. 이 사전에는 다음 키들이 포함되어 있습니다:
"evs_non_mitigated": 오차 완화 처리를 적용하지 않은 관측값."stds_non_mitigated": 오차 완화 처리를 적용하지 않은 결과의 표준 오차."evs_mitigated_no_readout_mitigation": 오차 완화 처리가 적용되었으나 판독 오차 완화 처리는 적용되지 않은 관측값."stds_mitigated_no_readout_mitigation": 오차 완화 처리를 적용했으나 판독 오차 완화 처리는 적용하지 않은 결과의 표준 오차."evs_non_mitigated_with_readout_mitigation": 오차 완화 처리는 적용하지 않았으나 판독 오차 완화 처리는 적용한 관측값."stds_non_mitigated_with_readout_mitigation": 오차 완화 처리는 적용하지 않았으나 판독 오차 완화 처리는 적용한 결과의 표준 오차."resource_usage": TEM이 사용하는 시간 리소스를 포함하는 사전.