Quantum Elements Orbit API 참조
Qiskit Functions — 파트너 기관들이 개발한 사전 구축형 도구 — 소프트웨어 개발 워크플로우의 일부를 추상화하여, 대규모 알고리즘 탐색 및 애플리케이션 개발을 간소화하고 가속화합니다. 이 Qiskit 함수에 대한 가이드를 보려면 클릭하세요.
‘Quantum Elements’ 궤도 가이드
Quantum Elements Orbit은 선택한 IBM Quantum® 백엔드에 맞춰 양자 회로를 준비하고, 예약된 유휴 시간대에 동적 디커플링(DD)을 삽입하며, 그 결과로 생성된 워크로드를 양자 컴퓨팅( IBM Quantum ) 프리미티브를 통해 실행하는 Qiskit 함수입니다. Orbit은 Sampler 및 Estimator PUB를 수용하며, 최상위 결과와 각 Primitive Unified Bloc( PUB ) 결과에 Orbit 고유의 메타데이터가 첨부된 PrimitiveResult 표준 결과를 반환합니다.
가 생략될 backend_name 경우, Orbit은 IBM Quantum 컴퓨트 서비스에서 사용할 수 있는 적격한 백엔드 중 가장 부하가 적은 IBM Quantum 를 선택합니다. 가 생략되거나 인 options 경우 None, Orbit은 내장된 기본 설정을 사용합니다. 즉, 회로를 트랜스파일하고 스케줄링하며, 기본 DD 전략을 삽입하고, 서비스에 제출한 뒤, 결과물에 DD 삽입 메타데이터를 첨부합니다.
입력
일반적인 호출은 PUB를 제출하고, 프리미티브를 선택하며, 선택적으로 백엔드를 선택하고, 선택적으로 Orbit별 옵션을 전달합니다:
job = orbit.run(
primitive="sampler",
pubs=[pub, pub, pub],
backend_name="ibm_boston",
options={
"pub_options": [
{"mode": "raw"},
{"mode": "orbit"},
{
"mode": "custom",
"dd_strategy": [[{"dd_sequence": "CPMG", "pulse_density": 1.00, "dd_reps": 1}]],
"transpilation_mode": "optimize",
"mem": True,
},
]
},
)
result = job.result()pubs 실행에 필요한 회로와 기본 입력을 제공합니다. primitive IBM Quantum 기본 계약을 선택합니다. backend_name IBM Quantum 백엔드를 선택하거나, 생략하여 Orbit이 가장 사용량이 적은 백엔드를 선택하도록 할 수 있습니다. options Orbit의 DD 삽입, 양자 컴퓨팅 옵션, 미리보기/시뮬레이터 동작 및 메타데이터 기능을 제어합니다. 각 입력 항목에 대한 자세한 내용은 다음과 같습니다.
pubs
유형: Iterable[SamplerPubLike] or Iterable[EstimatorPubLike]
선택한 기본 요소와 일치하는 하나 이상의 PUB.
- 필수: Yes
- 유효한 입력 유형: Sampler PUB 와 유사한 객체의 반복 가능 객체 또는 Estimator PUB 와 유사한 객체의 반복 가능 객체
각 PUB 는 선택된 프리미티브의 입력 계약과 일치해야 합니다.
(circuit, parameter_values, shots)``primitive="sampler"다음과 같이, 각PUB는PUB샘플러 형식을 따릅니다.- 다음과
primitive="estimator"같이, 각 PUB 는 Estimator PUB 형식을 따릅니다. 예를 들어,(circuit, observables, parameter_values, precision). - 기본
options.transpilation_mode="optimize"경로에서 회로가 ISA 회로일 필요는 없습니다. Orbit이 내부적으로 이를 트랜스파일링하고 스케줄링합니다.
primitive
유형: str
Orbit이 실행에 사용할 IBM Quantum 프리미티브를 선택합니다.
- 필수: Yes
- 유효한 입력 유형:
str
프라이머리타입은 각 PUB 가 포함해야 할 내용과 각가 PubResult 반환하는 결과 데이터를 결정합니다.
- 선택 사항:
"sampler"/"estimator" - 샘플링된 비트스트링 데이터에는 를 사용하십시오
"sampler". - 기대값과 표준오차에는 를 사용하십시오
"estimator".
backend_name
유형: str or None
기본값: None
실행할 ‘ IBM Quantum ’ 백엔드의 이름.
-
필수: 아니오
-
기본값:
None -
유효한 입력 유형:
str또는None -
least_busy()``None생략되거나 인 경우, Orbit은 를 사용하여 적합한 비시뮬레이터 백엔드를 결정합니다. -
예:
"ibm_boston"
options
유형: dict or None
기본값: None
Orbit의 실행 동작을 제어하는 기능별 옵션입니다.
- 필수: 아니오
- 기본값:
None - 유효한 입력 유형:
dict또는None
이 옵션들은 트랜스파일링, DD 삽입, 양자 연산 옵션, 미리보기 모드, 시뮬레이터 모드, 백엔드 정보 내보내기 및 측정 오차 완화를 제어합니다.
- 알 수 없는 옵션 키는 거부됩니다.
None모든 기본값을 사용하려면,{}, 또는 생략하십시오options.- 예:
{
"pub_options": [
{"mode": "raw"},
{"mode": "orbit"},
{
"mode": "custom",
"dd_strategy": [[{"dd_sequence": "CPMG", "pulse_density": 1.00, "dd_reps": 1}]],
"transpilation_mode": "optimize",
"mem": True
}
]
}옵션 목록
preview
유형: bool
기본값: False
Orbit이 Quantum Compute 작업을 제출하지 않고도 DD 삽입 보고서를 반환하는지 여부.
-
필수: 아니오
-
기본값:
False -
유효한 입력 유형:
bool -
이
True경우 QPU 시간이 사용되지 않으며, orbit은 단순히 내의pubs회로를 사전 처리한 후 삽입 보고서를 제공합니다. -
False(기본값)일 때, Orbit으로 수정된 회로가 포함된 양자 컴퓨팅 작업이 제출되고 처리됩니다. -
True와simulator가 모두preview인 경우, 미리보기 모드가 우선 적용되며 시뮬레이터 실행은 무시됩니다.
debug_return_circuits
유형: bool
기본값: False
미리보기 모드에 각 PUB 에 대해 준비된 Orbit 후 회로가 메타데이터에 포함되는지 여부.
-
필수: 아니오
-
기본값:
False -
유효한 입력 유형:
bool -
preview=True다음과 같은 경우에만 사용됩니다. -
debugCircuit.circuit각 PUB 보고서에는True,debugCircuit.usedQubits, 및 작업 횟수가 포함됩니다. 또한 Qiskit이 회로를 내보낼 수 있는 경우에는 ‘최선의 노력(best-effortdebugCircuit.qasm)’ 방식도 포함됩니다. -
회로 페이로드의 크기가 클 수 있으므로, 일반적인 실행 시에는 이 기능을 비활성화된 상태로 두십시오.
transpilation_mode
유형: string
기본값: optimize
오빗(Orbit)이 DD 삽입 전에 PUB 회로를 어떻게 준비하는지.
-
필수: 아니오
-
기본값:
"optimize" -
유효한 입력 값:
"optimize","prepare", 또는"validate" -
"optimize"Qiskitoptimization_level=2트랜스파일레이션을 반복적으로 실행하고, 정적 및 동적 회로에 대해 2-큐비트 깊이가 가장 낮은 후보를 선택합니다. -
"prepare"Qiskitoptimization_level=0준비 작업과 ALAP 스케줄링을 수행합니다. 이physical_layout지정되면, Orbit은 먼저 해당 물리적 와이어 인덱스에 회로를 구체화한 다음 Qiskit의 기본 레이아웃 방법을 사용합니다. -
"validate"입력 회로가 이미 물리적으로 준비된 것으로 간주합니다. Orbit은 가능한 경우 백엔드 호환성을 검증하며, DD 삽입 전에 재매핑, 라우팅, 최적화 또는 스케줄 수정을 수행하지 않고, 해당 항목을 경고와 함께 무시합니다physical_layout.
physical_layout
유형: object or null
기본값: None
선택적 논리적 큐비트-물리적 큐비트 매핑.
- 필수: 아니오
- 기본값:
None - 유효한 입력 유형: 키와 값이 0 이상의 정수인 객체, 또는
None
예: {"0": 85, "1": 89} 논리 큐비트 0을 물리적 큐비트 85에, 논리 큐비트 1을 물리적 큐비트 89에 매핑합니다. Python 호출자는 정수 키를 사용할 수 있으며, JSON 객체의 키는 문자열입니다.
- 모드에서는
"optimize"이 값이 초기 레이아웃 시드로 전달되며, 최적화/라우팅 과정에서 최종 매핑이 변경될 수 있습니다. layout_method="trivial"모드에서"prepare"Orbit은 회로를 이러한 물리적 와이어 인덱스에 구체화한 다음, 를 사용하여 level-0 준비 단계를 수행합니다. 명시적 라우팅 SWAP은 실행 중에도 양자 상태를 이동시킬 수 있다.- 모드에서는
"validate"제공된 회로 배선이 우선 적용되므로,physical_layout는 경고와 함께 무시됩니다.
num_transpilation_steps
유형: int
기본값: 300
transpilation_mode="optimize".에서 시도된 확률적 트랜스필레이션 시드 Orbit의 개수.
- 필수: 아니오
- 기본값:
300 - 유효한 입력 유형: 양의 정수
mem
유형: bool or None
기본값: None
Orbit이 M3 를 사용하여 샘플러 전용 측정 오차 완화 기법을 적용하는지 여부.
-
필수: 아니오
-
기본값:
None -
유효한 입력 유형:
bool또는None -
sampler``True가 의 샷에 대해 측정 오차 완화 처리를 적용할 때. -
False이 경우, 샷에 대한 후처리를 수행하지 않습니다. -
None이 경우, 궤도(Orbit) 모드는 실행된 샘플러 PUB에 대해 MEM을 활성화하며, 원시/사용자 정의 모드는 별도로 구성되지 않은 한 MEM을 건너뜁니다. -
simulator=False``primitive="sampler"Explicit은True,preview=False, 및 을 필요로 합니다. -
원본 샘플러 카운트는 유지되며, 조정된 카운트는 Orbit 메타데이터에 첨부됩니다.
-
후처리 과정에서 완화 조치가 실패할 경우, Orbit은 원본 결과를 보존하고 메타데이터에 완화 조치 실패 사실을 기록합니다.
pub_options
유형: list[dict] or None
기본값: None
PUB 의 각 실행 모드 및 재정의에 관하여.
-
필수: 아니오
-
기본값:
None -
유효한 입력 유형:
list[dict]또는None -
항목 하나를 모든 PUB에 방송하고, 그렇지 않은 경우에는 각 PUB 에 대해 항목 하나씩 전달합니다.
-
{"mode": "raw"}정적 또는 동적 회로에 대해 단일 Qiskitoptimization_level=0트랜스파일레이션 및 스케줄링 단계를 사용하며, Orbit 최적화, Orbit DD, 동적 DD 및 MEM 단계는 건너뜁니다. -
{"mode": "orbit"}Orbit의 기본 설정을 사용합니다. -
transpilation_mode``{"mode": "custom"}해당 PUB 에 대해,physical_layout,dd_qubits,dd_strategy,dynamic_dd_seq, 및mem를 재정의할 수 있습니다. -
physical_layout=NoneRaw 모드는 항상 와 함께 사용되며transpilation_mode="prepare", Orbit DD를 건너뛰고 전역 준비 옵션을 무시합니다. -
Orbit 및 사용자 정의 PUB는 PUB 에 따라 해당 설정을 재정의하지 않는 한 전역
transpilation_mode설정과physical_layout를 상속받습니다. -
duplicated PUBs를 사용하여 하나의 Quantum Compute 작업 내에서 원시 결과, Orbit 기본값 및 사용자 지정 DD 전략을 비교할
pub_options수 있습니다. 단순한 CPMG 기준선을 사용하려면 사용자 정의 PUB 의 내부에서{"dd_sequence": "CPMG", "pulse_density": 1.00, "dd_reps": 1}다음을 사용하십시오dd_strategy.
발신자가 준비한 회선의 경우, Orbit이 활성화된 PUB에는 다음을 사용하십시오 transpilation_mode="validate" :
options = {
"pub_options": [
{"mode": "raw"},
{"mode": "orbit", "transpilation_mode": "validate"},
{
"mode": "custom",
"transpilation_mode": "validate",
"dd_qubits": None,
"dd_strategy": [[{"dd_sequence": "CPMG", "pulse_density": 1.00, "dd_reps": 1}]],
"mem": False,
},
]
}dd_strategy
유형: list[list[dict]]
PUB 회로에 적용할 DD 전략을 정렬했습니다.
-
필수: 아니오
-
기본값:
[[{"dd_sequence": "auto", "pulse_density": 0.25, "dd_reps": 1}]] -
유효한 입력 유형:
list[list[dict]] -
선택 사항: 비어 있지 않은 전략 목록들로 구성된 비어 있지 않은 외부 목록.
-
외부 리스트는 PUB 또는 회로를 참조합니다. 전략이 하나만 제공되면, Orbit은 이를 모든 PUB에 브로드캐스트합니다.
-
각 내부 리스트는 같은 회로에 라운드별로 적용됩니다.
-
1``0.25``dd_sequence각 라운드에는 가 필요합니다.pulse_density기본값은 이며,dd_reps기본값은 입니다.
dd_strategy 둥근 들판
유형: str or dict or list
dd_sequence필드: DD 라운드 1회당 삽입할 시퀀스.- 필수: Yes
- 유효한 입력 유형:
str,dict, 또는 사용자 정의 펄스 그룹list [[0.0], ["Y"], ["Xb", 0.5]]``{"name": "ur", "variant": "8"}선택 사항:"auto", 내장된 시퀀스 이름, 와 같은 변형 사전, 또는 와 같은 사용자 정의 펄스 그룹 목록."KDD"``"superEuler"``"XY8"``"superCPMG"``"superHahn"``"CPMG"펄스 슬롯별로 정리된 고정 내장 이름을 다음과 같이 정의합니다. 2슬롯 시퀀스는,"pureY", 및 입니다. 4슬롯 시퀀스는 및 입니다"XY4". 8슬롯 시퀀스는 입니다. 16슬롯 시퀀스는 입니다. 20슬롯 시퀀스는 입니다.- 매개변수화된 내장 패밀리:
"CDD-n"정수n >= 1("CDD-1"는 와 동일하며,"XY4"이 수열은 재귀적으로 증가함);"UR-n"또는"URn"짝수 정수n >= 4(예:"UR-8"또는"URn8"); 그리고"Tn"``"T-n"짝수 정수n >= 2(예:"T-8"또는"Tn8"). - RGA 내장 변형:
"RGA-2x","RGA-4","RGA-4p","RGA-8a","RGA-8c""RGA-16a",,"RGA-16b","RGA-32a","RGA-32c","RGA-64a","RGA-64c", 및"RGA-256a". - 내장 시퀀스 이름은 대소문자를 구분하지 않으며, 하이픈이나 밑줄과 같은 구분 기호를 무시합니다.
"UR8"예를 들어,"RGA-8a"와"rga8a"는 서로 동치이며, 와 도 마찬가지입니다"UR-n-8". - 사용자 정의 수치 입력값은 xy 평면 내에서 파이 회전을 나타내는 파이 단위의 위상입니다.
0.0는 +X이고,0.5는 +Y이다. "Yb"``"X"사용자 정의 문자열 별칭에는,"Y","Xb", 및 가 포함됩니다.
유형: float
pulse_density필드: 이번 라운드의 DD 펄스에 사용할 수 있는 각 유휴 간격의 비율.- 필수: 아니오
- 기본값:
0.25 - 유효한 입력 유형:
float또는int - 선택 사항: 부터
0.0까지 이동1.0 0.0해당 라운드에서는 간격을 채우지 않은 채로 둡니다.1.0시퀀스 타이밍이 허용하는 한도 내에서 펄스를 최대한 조밀하게 집적합니다.
유형: int
기본값: 1
dd_reps필드: 각 적격 유휴 간격 내에서 이번 라운드의 DD 시퀀스가 반복되는 횟수.- 필수: 아니오
- 기본값:
1 - 유효한 입력 유형:
int - 선택 사항: 1 이상의 정수
dynamic_dd_seq
유형: str or dict or list or None
기본값: XY8
Orbit의 동적 회로 피드포워드 DD 삽입에 사용되는 DD 시퀀스.
-
필수: 아니오
-
기본값:
"XY8" -
list유효한 입력 유형:str,dict, 사용자 정의 펄스 그룹, 또는None -
dd_strategy[].dd_sequence선택 사항: 동적 피드포워드 삽입 단계를 비활성화하려면, 또는None와 같은 순서 형태를 사용합니다. -
Orbit이 조건부 논리나 제어 흐름을 감지하고 동적 회로(DD) 파이프라인을 사용할 때 적용됩니다.
-
먼저 일반
dd_strategy패스가 실행되고, 그 다음 Orbit이 레이블이 지정된 동적 피드포워드 영역 전체에 이 시퀀스를 적용합니다.
dd_qubits
유형: list[int] or None
기본값: None
Orbit DD 삽입 대상인 큐비트 인덱스의 글로벌 기본 허용 목록.
-
필수: 아니오
-
기본값:
None -
유효한 입력 유형:
list[int]또는None -
선택 사항:
None또는 0 이상인 정수 목록 -
None활성 상태이거나 터치된 큐비트만을 대상으로 합니다. -
목록에는 유휴 전용 큐비트만 포함될 수 있으며, 목록에 포함되지 않은 큐비트는 제외됩니다.
-
pub_options[i].dd_qubits이 값은 또는customPUB 항목 내에서orbit재정의할 수 있습니다. -
"validate"명시적 허용 목록은 해결된transpilation_mode값이 인 Orbit 지원 PUB에 대해서만 제공될 수 있으므로, 호출자가 물리적 큐비트 인덱스를 소유하고 있어야 합니다.dd_qubitsRaw PUB는 Orbit DD 단계를 건너뛰며.를 허용하지 않습니다.
save_backend_info
유형: bool
기본값: False
Quantum Compute 작업이 실행된 후 Orbit이 백엔드 보정 속성을 저장하는지 여부.
-
필수: 아니오
-
기본값:
False -
유효한 입력 유형:
bool -
선택 사항:
True/False -
/data``service.job(job_id).properties()이 기능이 활성화되면 Orbit은 쿼리를 수행하고, 직렬화된 백엔드 속성을 에 저장하며, 저장된 경로를 Orbit 메타데이터에 기록합니다. -
오류는 경고로 보고되며, 그 외에는 정상적으로 처리된 기본 연산 결과는 유지됩니다.
default_shots
유형: int
기본값: 4096
샷을 명시적으로 지정하지 않은 샘플러 PUB에 사용되는 기본 샷입니다.
-
필수: 아니오
-
기본값:
4096 -
유효한 입력 유형:
int -
선택 사항: 0보다 큰 정수
-
primitive="sampler"다음에만 적용됩니다.
default_precision
유형: float
기본값: 0.015625
정밀도를 명시적으로 지정하지 않은 Estimator PUB에 사용되는 기본 대상 정밀도입니다.
-
필수: 아니오
-
기본값:
0.015625 -
유효한 입력 유형:
float또는int -
선택 사항: Float > 0
-
primitive="estimator"다음에만 적용됩니다.
runtime_options
유형: dict
IBM Quantum 기본 SamplerV2 또는 EstimatorV2 함수에 전달되는 기본 옵션들.
-
필수: 아니오
-
기본값:
{"resilience_level": 0, "dynamical_decoupling": {"enable": false}} -
유효한 입력 유형:
dict -
선택한 기본 요소에 대한 고급 및 실험적 옵션을 포함하여 중첩된 옵션 사전도 허용됩니다.
-
런타임 동적 분리 기능은 기본적으로 비활성화되어 있으므로, 사용자가 직접 활성화하지 않는 한 Orbit의 DD 삽입이 유일한 DD 처리 단계입니다.
예를 들어, 숙련된 Sampler 사용자는 동적 회로 디버깅 필드를 활성화할 수 있습니다:
options = {
"runtime_options": {
"experimental": {
"execution": {
"scheduler_timing": True,
"stretch_values": True,
}
}
}
}- 주의: 따라서 이 값을 변경할 때는 신중을 기해야 하며, DD는 계속 제외하면서 트위를링과 같은 특정 기능을 수동으로 활성화해야 합니다.
resilience_level
유형: int or None
기본값: 0
추정기의 실행 시 복원력 수준.
-
필수: 아니오
-
기본값:
0 -
유효한 입력 유형:
int또는None -
선택 사항:
0/1/2/None -
primitive="estimator"다음에 적용됩니다. -
Runtime 옵션을 설정하지 않으려면 를 사용하십시오
None. -
primitive="sampler"로 설정된 경우, Orbit은 이를 무시하고 Orbit 메타데이터에 경고 메시지를 추가합니다.
dynamical_decoupling
유형: dict
Quantum Compute로 전달된 동적 분리 옵션.
- 필수: 아니오
- 기본값:
{"enable": false} - 유효한 입력 유형:
dict
enable
유형: bool
기본값: False
Orbit DD 삽입 기능 외에도 qiskit-ibm-runtime DD를 활성화할지 여부.
-
필수: 아니오
-
기본값:
False -
유효한 입력 유형:
bool -
선택 사항:
True/False -
이 기능이 활성화되면, 런타임 DD와 Orbit DD를 모두 적용할 경우 예기치 않은 동작이 발생할 수 있으므로 Orbit에서 경고 메시지가 표시됩니다.
sequence_type
유형: str or None
기본값: None
선택적 런타임 DD 시퀀스 유형.
- 필수: 아니오
- 기본값:
None - 유효한 입력 유형:
str또는None
제공된 경우 Quantum Compute로 전달되었습니다.
scheduling_method
유형: str or None
기본값: None
선택적 런타임 DD 스케줄링 방법.
- 필수: 아니오
- 기본값:
None - 유효한 입력 유형:
str또는None
제공된 경우 Quantum Compute로 전달되었습니다.
extra_slack_distribution
유형: str or None
기본값: None
선택적 런타임 DD 추가 여유 공간 할당.
- 필수: 아니오
- 기본값:
None - 유효한 입력 유형:
str또는None
제공된 경우 Quantum Compute로 전달되었습니다.
skip_reset_qubits
유형: bool or None
기본값: None
리셋 큐비트를 건너뛸지 여부를 제어하는 선택적 런타임 DD 설정.
- 필수: 아니오
- 기본값:
None - 유효한 입력 유형:
bool또는None
제공된 경우 Quantum Compute로 전달되었습니다.
max_execution_time
유형: int or None
기본값: None
Quantum Compute 작업의 최대 실행 시간에 대한 소프트 캡.
- 필수: 아니오
- 기본값:
None - 유효한 입력 유형:
int또는None
값은 초 단위로 지정됩니다.
- 선택 사항:
None또는 0보다 큰 정수 None일 경우, 런타임 기본값이 사용됩니다.
simulator
유형: bool
기본값: False
Orbit이 실제 QPU 대신 로컬 Aer 시뮬레이터에서 워크로드를 실행하는지 여부.
- 필수: 아니오
- 기본값:
False - 유효한 입력 유형:
bool
시뮬레이터는 함수 컨테이너 내에서 실행됩니다.
- 선택 사항:
True/False True일 때preview무시됩니다.- Orbit 메타데이터가 첨부된 정상
PrimitiveResult값이 반환됩니다.
simulator_noise
유형: str
기본값: backend
True가 일 때 simulator 사용되는 잡음 모델.
-
필수: 아니오
-
기본값:
"backend" -
유효한 입력 유형:
str -
선택 사항:
"backend"/"ideal" -
"backend"가능할 때마다 사용합니다AerSimulator.from_backend(backend). -
AerSimulator``"ideal"잡음이 없는 일반 파일을 사용합니다.
gate_dur
유형: int or None
기본값: None
하나의 DD 게이트 또는 펄스의 지속 시간.
-
필수: 아니오
-
기본값:
None -
유효한 입력 유형:
int또는None -
경고: 명시적 값은 통제된 테스트에서나, 백엔드별 보정이 필요한 명확한 사유가 있는 경우에만 사용하십시오.
-
이 값은 백엔드에서 지연 시간에 사용하는 것과 동일한 단위를 사용하며, 일반적으로
dt. -
선택 사항:
None또는 0보다 큰 정수 -
None이때, Orbit은 더 긴 보정된 X 또는 sqrt(X) 게이트 지속 시간을 사용하여 백엔드를 고려한 값을 에서backend.target계산합니다.
출력
PrimitiveResult 이 함수는 입력 PUB 하나당 하나씩을 PubResult 포함하는 Qiskit을 반환합니다. quantum_elements_orbitOrbit은 선택된 프리미티브의 노멀 결과 데이터를 보존하고,. 아래에 Orbit 메타데이터를 추가합니다.
유형: PrimitiveResult
Orbit 메타데이터가 첨부된 표준 형식입니다 PrimitiveResult .
primitive="sampler"각PubResult.data에는 클래식 레지스터 비트 배열과 같은 샘플러 결과 데이터가 포함되어 있습니다.primitive="estimator"각PubResult.data에는 기대값 및 표준오차와 같은 추정기 결과 데이터가 포함되어 있습니다.- 미리보기 모드에서는 IBM Quantum 기본 요소가 제출되지 않았기 때문에 각 항목이 비어 있습니다
PubResult.data.
최상위 메타데이터
metadata["quantum_elements_orbit"]
유형: dict[str, Any]
전체 함수 호출에 대한 집계된 Orbit 보고서.
functionVersion
유형: str
해당 결과를 생성한 Orbit 코어 버전.
preview
유형: bool
결과가 미리보기 모드에서 생성되었는지 여부.
simulator
유형: bool
시뮬레이터 모드가 요청되었는지 여부.
simulatorNoise
유형: str
시뮬레이터 소음 모드: "backend" 또는 "ideal".
primitive
유형: str
선택된 기본 요소: "sampler" 또는 "estimator".
ddStrategy
유형: list[list[dict]]
이번 시뮬레이션에 사용된 정규화 DD 전략.
pubOptions
유형: list[dict[str, Any]]
PUB 별 실행 모드 및 재정의 관련 문제가 해결되었습니다. ddStrategy각 항목에는 PUB 의 인덱스, 모드, resolved transpilationMode, physicalLayout, mem, orbitEnabled ddQubits, dynamicDdSeq,, 그리고 해당되는 경우 resolved per- PUB 가 포함됩니다.
dynamicDdSeq
유형: str or dict or list or None
실행에 사용된 동적 회로 피드포워드 DD 시퀀스.
ddQubits
유형: list[int] or None
실행에 사용된 글로벌 DD 큐비트 허용 목록의 기본값. PUB 보고서는 각 PUB 에 대해 확정된 허용 목록을 포함합니다.
runtimeOptions
유형: dict[str, Any]
dynamicalDecouplingOrbit이 적용하려고 시도한 런타임 옵션에는 및 이 포함됩니다 resilienceLevel .
transpilationMode
유형: string
Orbit 지원 PUB에 대해 글로벌 회로 준비 모드가 요청되었습니다.
physicalLayout
유형: dict or None
Orbit이 지원되는 PUB에 대해 전역 논리-물리 레이아웃 매핑이 요청되었습니다.
numTranspilationSteps
유형: int
최적화된 트랜스필레이션을 위해 구성된 확률적 트랜스필레이션 시드 수.
backendInfo
유형: dict[str, Any]
백엔드 보정 내보내기 상태. 여기에는 enabled, saved, 그리고 (사용 가능한 경우) 백엔드 이름, 작업 ID, 저장 경로 및 경고가 포함됩니다.
warnings
유형: list[str]
resilience_level시뮬레이터 모드를 덮어쓰는 미리보기, Orbit DD와 함께 Runtime DD가 활성화된 경우, 또는 Sampler가.를 무시하는 경우와 같은 런 레벨 경고.
pubs
유형: list[dict[str, Any]]
입력된 각 PUB 에 대해 1개의 궤도 진입 보고서가 생성됩니다.
metadata["resource_usage"]
유형: dict[str, dict[str, float]]
하드웨어 최적화, QPU 대기, QPU 실행 및 후처리 항목이 포함된 위상별 리소스 사용량.
RUNNING: POST_PROCESSING``RUNNING: OPTIMIZING_FOR_HARDWARE단계에는,RUNNING: WAITING_FOR_QPU,RUNNING: EXECUTING_QPU, 및 가 포함됩니다.QPU_TIME``RUNNING: EXECUTING_QPU다음이 포함됩니다.
PUB Orbit 메타데이터
각 PubResult.metadata["quantum_elements_orbit"] 항목에는 해당 PUB 에 대한 삽입 보고서가 포함되어 있습니다.
pubIndex
유형: int
제출된 워크로드 내의 ‘ PUB ’ 인덱스.
mode
유형: str
PUB 별 실행 모드에 따라 다음과 같이 해결됨: "raw", "orbit", 또는 "custom".
orbitEnabled
유형: bool
PUB 에서 Orbit DD 삽입 기능이 활성화되었는지 여부.
transpilationMode
유형: string
이 PUB 에 대한 회로 준비 모드가 해결되었습니다.
physicalLayout
유형: dict or None
이 PUB 에 대한 논리적 레이아웃과 물리적 레이아웃 간의 매핑을 해결했습니다. 이 validate 모드에서는 이 값이 무시되며 경고 메시지가 표시됩니다.
mem
유형: bool or None
이 PUB 에 대한 측정 오류 완화 설정을 해결했습니다.
dynamicDdSeq
유형: str or dict or list or None
이 PUB 에 대한 동적 회로 피드포워드 DD 시퀀스가 해결되었습니다.
ddQubits
유형: list[int] or None
이 PUB 에 대한 DD 큐비트 허용 목록을 확정했습니다.
status
유형: str
이 PUB 에 대한 DD 삽입 상태(예: DD가 적용되었는지 또는 건너뛴지 여부 등).
numRounds
유형: int
PUB 에 적용된 DD 전략 라운드 수.
warnings
유형: list[str]
PUB DD 삽입 및 호환성 처리와 관련된 -레벨 경고.
insertionSummary
유형: dict[str, Any]
이 PUB 에 대한 전체 DD 삽입 요약입니다. 여기에는 상태, 시작 갭 수 및 채워진 갭 수, 추가된 DD 시퀀스 수, 추가된 게이트 수, 게이트 지속 시간, 삽입 전후의 회로 깊이 및 크기, 그리고 삽입 경고 사항이 포함됩니다.
perRoundSummaries
유형: list[dict[str, Any]]
라운드별 DD 삽입 요약. 각 항목에는 라운드 인덱스, 순서, 펄스 밀도, 반복 횟수, 갭 횟수, 추가 게이트 횟수, 게이트 지속 시간, 해당 라운드 전후의 회로 깊이와 크기, 그리고 경고 사항이 포함됩니다.
measurementErrorMitigation
유형: dict[str, Any]
하나 이상의 PUB 에 대해 MEM이 활성화되었을 때 발생합니다. M3 완화 조치가 적용되었는지, 부분적으로 적용되었는지, 건너뛰었는지, 아니면 실패했는지를 보고합니다. PUB 항목은 완화되지 않은 카운트를 유지하며, 완화가 성공한 경우에는 완화된 카운트도 포함합니다.
DD는 예약된 유휴 시간대에 실제 펄스와 서브딜레이를 삽입하므로, 보고되는 회로 깊이와 크기는 대개 증가합니다. 이 삽입 작업은 예약된 유휴 창 지속 시간을 유지하지만, 게이트 깊이는 유지하려고 시도하지 않습니다.
출력 미리보기
가 일 options.preview 때 True, Orbit은 메타데이터만 포함된 객체를 반환합니다 PrimitiveResult. 양자 컴퓨팅 작업이 제출되지 않았으며, 샘플러 카운트나 추정기 값이 채워지지 않았고, QPU 사용 시간은.로 보고됩니다 0.0. 하드웨어에서 실행하기 전에 미리보기 모드를 사용하여 DD 삽입 보고서를 확인해 보십시오.
시뮬레이터 출력
False가이고 options.preview``True 가일 때 options.simulator , Orbit은 함수 컨테이너 내부의 로컬 Aer 시뮬레이터를 사용하여 DD 후 워크로드를 실행합니다. PrimitiveResult결과는 여전히 정상이며, Orbit 레코드와 simulator=True 최상위 메타데이터에 선택된 simulatorNoise 모드가 기록됩니다.
측정 오차 완화 결과
해결된 MEM이 하나 이상의 PUB 에 대해 활성화된 경우, Orbit은 메타데이터를 첨부합니다 measurementErrorMitigation . MEM이 성공하면, 샘플러 레지스터의 get_counts() 메서드는 MEM으로 보정된 히스토그램을 반환합니다. measurementErrorMitigation["rawCounts"]완전히 조정되지 않은 런타임 카운트는 다음과 같이 계속 확인할 수 있습니다.
PUB 에 대한 효과적인 완화 조치 항목은 다음과 같습니다:
enabledmethodstatusregisterrawCountsquasiDistributionmitigatedCountsmeasurementMappingmappingSourcerawCountsPreserved
동적 회로의 경우, Orbit은 반환된 출력 비트열에 MEM을 적용하여 히스토그램 후처리를 수행합니다. Orbit은 각 비트가 단말 측정에서 비롯된 것인지 회로 중간 측정에서 비롯된 것인지 판단하지 않으며, 완화되지 않은 측정 결과를 사용한 조건부 분기문을 사후적으로나 실시간으로 변경하지도 않습니다. 이 처리는 회로 출력으로 의도된 비트열에 적용할 수 있지만, 사용자는 이를 해당 출력을 생성한 동적 제어 흐름의 수정으로 해석해서는 안 됩니다.
완화 조치가 실패할 경우, Orbit은 원본 결과를 보존하고 메타데이터에 실패 상태와 오류 메시지를 기록합니다.
오류 처리
Orbit은 치명적인 오류가 발생하면 구조화된 qiskit_serverless.ServerlessError 오류를 발생시킵니다. code각 오류에는, message, 및 details 페이로드가 포함됩니다. 1221Orbit은 가능한 경우 오류를 기존 IBM Quantum 의 오류 코드 범주에 매핑하며, 유효성 검사 오류에는 코드 가 사용됩니다. 궤도별 오류는 기존 IBM Quantum 코드 중 더 잘 일치하는 코드가 없을 경우, QE 예약 코드 범위 4700 부터 4709 까지를 사용합니다. 일반적인 오류 코드 지침은 IBM Quantum 오류 코드 참조를 확인하세요.
먼저 오류 및 message details 필드를 확인하십시오. Orbit이 원인을 파악할 수 있는 경우, 해당 시스템은 유효하지 않은 필드, 백엔드, PUB 인덱스 또는 업스트림 Quantum Compute 오류를 식별합니다.
1221입력 유효성 검사 오류에는 코드 가 사용됩니다."validate"여기에는 유효하지 않은 옵션 유형, 알 수 없는 옵션 키, 빈pubs, 유효하지 않은dd_strategy, 유효하지 않은pub_options길이,dd_qubits가 가transpilation_mode아닌 것으로 해결된 경우, 선택된 백엔드 대상과 호환되지 않는 호출자가 준비한 회로, 유효하지 않은physical_layout값, 그리고 와primitive="estimator",preview=True, 또는simulator=True과mem=True같은 호환되지 않는 MEM 요청이 포함됩니다.- 지원되지 않는 기본형 오류에는 코드
1211.가 사용됩니다.primitive="estimator"Orbit은 와 만primitive="sampler"허용합니다. - 백엔드 선택 또는 백엔드 기능 관련 오류는 코드
1007또는1009을 사용합니다. 여기에는 사용할 수 없는 백엔드 이름, 적합한 가장 한가한 백엔드가 없는 경우, 또는 DD 삽입에 필요한 타이밍 정보가 없는 백엔드 등이 포함됩니다. 1003DD 삽입 및 QASM 왕복 실패에는 코드를 사용합니다. 이러한 현상은 선택한 백엔드 및 DD 전략에 대해 회로를 일관되게 트랜스파일, 스케줄링, 변환 또는 패딩할 수 없는 경우에 발생할 수 있습니다.- 양자 컴퓨팅 제출 실패의 경우 코드 를 사용하며
1245, 결과를 산출하기 전에 실패한 작업의 경우 코드 를 사용합니다5203. Orbit은 업스트림 Quantum Compute 오류 코드가 노출될 경우 해당 코드를 보존하며,.에 Orbit 대체 코드가 포함됩니다details. - 기존의 IBM Quantum 오류 코드가 적용되지 않는 경우, 예기치 않은 궤도 관련 오류는 QE 예약 범위(
4700--4709) 내에서 구조화된 오류로 보고됩니다.
Orbit이 결과를 안전하게 보존할 수 있는 경우, 치명적이지 않은 오류는 작업 실패로 처리되지 않고 경고로 보고됩니다. 실행 수준 경고는 PUB 에 표시되며 metadata["quantum_elements_orbit"]["warnings"], PUB 보고서에는 각 수준별 경고가 표시됩니다. 복구 가능한 경고 이벤트는 Qiskit Functions 환경에서 경고 이벤트를 수락할 때 1300 코드를 사용합니다. 예를 들면, 가 보다 우선하는 preview=True 경우 simulator=True, Orbit DD와 함께 qiskit-ibm-runtime DD가 활성화된 경우, Sampler가 를 무시하는 경우 runtime_options.resilience_level, 또는 기본 결과(primitive result)는 정상적으로 사용 가능함에도 불구하고 백엔드 보정 내보내기가 실패하는 경우 등이 있습니다.
측정 오류 완화 실패 역시 치명적이지 않습니다. M3 완화 조치가 적용될 수 없는 경우, Orbit은 원본 샘플러 결과를 보존하고 Orbit 메타데이터에 오류 메시지와 함께 기록합니다 measurementErrorMitigation.status="failed" .