Skip to main content
IBM Quantum Platform

Qedma의 QESEM API 참조

  • Qiskit Functions

    Qiskit Functions — 파트너 기관들이 개발한 사전 구축형 도구 — 소프트웨어 개발 워크플로의 일부를 추상화하여, 대규모 알고리즘 탐색 및 애플리케이션 개발을 간소화하고 가속화합니다. 이 Qiskit 함수에 대한 가이드를 보려면 클릭하세요.


입력

pubs

유형: EstimatorPubLike

이것이 주요 입력입니다. 이 Pub 객체에는 2~4개의 요소가 포함됩니다: 회로, 하나 이상의 관측량, 0개 또는 하나의 매개변수 값 집합, 그리고 선택 사항인 정밀도입니다. 정밀도가 지정되지 않은 경우, 에서 optionsdefault_precision 사용됩니다.

PUB 의 정밀도는 float 또는 딕셔너리 중 하나일 수 있습니다. 부동소수점은 반환되는 기대값의 목표 정밀도를 설정합니다. 사전은 노이즈 척도 계수를 목표 정밀도에 매핑하고, 지정된 척도에서 준확률적 오차 조정(QET) 결과를 요청합니다.

1.0QESEM은 또한 대략 의 값을 갖는 보완적인 스케일 계수를 반환하며, 요청된 스케일 계수에 대해서만 목표 정밀도가 보장됩니다.

  • 필수: Yes
  • 예:[(circuit, [obs1,obs2,obs3], parameter_values, 0.03)]
  • QET 예시: [(circuit, [obs1, obs2], None, {0.5: 0.15, 1.3: 0.2})]

backend_name

유형: `str`

기본값: QESEM will get least busy device reported by IBM

사용할 백엔드 이름

  • 필수: 아니오
  • 예:"ibm_fez"

instance

유형: `str`

해당 형식으로 사용할 인스턴스의 클라우드 리소스 이름

  • 필수: 아니오
  • 예:"CRN"

옵션

유형: `dict`

이 함수의 입력 옵션은 중첩된 사전 형태로 지정됩니다. 옵션의 전체 목록과 기본값을 확인하세요.

  • 필수: 아니오
  • 예:{ "default_precision": 0.03, "max_execution_time": 3600, "transpilation_level": "standard"}

옵션 목록

estimate_time_only

기본값: None

이 플래그를 활성화하면 사용자는 QESEM을 사용하여 회로를 실행하는 데 필요한 QPU 시간을 추정할 수 있습니다.

  • 'None'으로 설정하면 회로는 QESEM을 사용하여 실행됩니다.
  • 이 값으로 "analytical"설정하면, QPU 사용량을 소모하지 않고 QPU 시간의 상한값이 계산됩니다. 이 추정치의 시간 단위는 30분입니다(예: 30분, 60분, 90분 등). 이는 일반적으로 비관적인 성질을 가지며, 단일 파울리 관측량이나 지지 집합이 겹치지 않는 파울리 관측량들의 합(예를 들어, Z0+Z1 )에 대해서만 구할 수 있다. 이는 주로 사용자가 지정한 다양한 매개변수(회로, 정확도 등)의 복잡도 수준을 비교하는 데 유용합니다.
  • QPU 시간을 보다 정확하게 추정하려면 이 플래그를 로 설정하십시오 "empirical". 이 방법은 실행해야 할 회로 수가 적지만, QPU 시간 추정을 훨씬 더 정확하게 해줍니다. 이 추정치의 시간 단위는 5분 단위입니다(예: 20분, 25분, 30분 등). 사용자는 경험적 시간 추정을 배치 모드 또는 세션 모드 중 하나로 실행할 수 있습니다. 자세한 내용은 설명을 execution_mode 참조해 주십시오. 예를 들어, 배치 모드에서 경험적 시간 추정은 10분 미만의 QPU 시간을 소요합니다.
  • 선택 사항: "analytical" / "empirical" / 없음
default_precision

기본값: 0.02

정밀도가 없는 경우에 pubs 적용됩니다. 이 정밀도는 관측량의 기대값에 대한 허용 오차를 절대값으로 나타낸 것입니다. 즉, 오차 완화를 위한 QPU 런타임은 목표 정밀도의 1 σ\sigma 신뢰 구간 내에 포함되는 모든 관심 관측 변수에 대해 출력 값을 제공하도록 결정될 것입니다. 여러 관측값이 제공된 경우, 각 입력 관측값에 대해 목표 정밀도에 도달할 때까지 완화 조치가 실행됩니다.

  • 선택 항목: 0 < float
max_execution_time

기본값: 3,600 (one hour)

전체 QESEM 프로세스에 사용되는 QPU 시간을 초 단위로 제한할 수 있습니다. 기본값은 3,600초(1시간)입니다. 목표 정확도에 도달하는 데 필요한 최종 QPU 시간은 QESEM 작업 중에 동적으로 결정되므로, 이 매개변수를 통해 실험 비용을 제한할 수 있습니다. 동적으로 결정된 QPU 시간이 사용자가 할당한 시간보다 짧을 경우, 이 매개변수는 실험에 영향을 미치지 않습니다. 이 max_execution_time 매개변수는 작업 시작 전에 QESEM이 제공한 분석 시간 추정치가 지나치게 보수적임에도 불구하고, 사용자가 어쨌든 완화 작업을 시작하고자 하는 경우에 특히 유용합니다. 시간 제한이 지나면 QESEM은 새로운 회로 전송을 중단합니다. 이미 전송된 회로는 계속 실행되며(따라서 총 실행 시간이 제한 시간을 최대 30분까지 초과할 수 있음), 사용자는 그 시점까지 실행된 회로의 처리 결과를 받게 됩니다. 분석 소요 시간 추정치보다 짧은 QPU 시간 제한을 적용하고자 하는 경우, Qedma에 문의하여 해당 시간 제한 내에서 달성 가능한 정확도에 대한 추정치를 확인하시기 바랍니다.

  • 선택 사항: 0 < 정수 < 28,800 (8시간)
transpilation_level

기본값: standard

회로도가 QESEM에 제출되면, 시스템은 자동으로 여러 가지 대체 회로도 변환 방식을 생성하고, QPU 소요 시간을 최소화하는 방식을 선택합니다. 예를 들어, 다른 구현 방식에서는 회로 깊이를 줄이기 위해 Qedma에 최적화된 분수 RZZ 게이트를 활용할 수 있다. 물론, 모든 변환 회로는 이상적인 출력 측면에서 입력 회로와 동등합니다. options회로 변환을 보다 세밀하게 제어하려면,. 파일에서 변환 수준을 설정하십시오. 는 앞서 설명한 기본 동작과 일치하는 반면 "transpilation_level": "standard" , "transpilation_level": "minimal_with_layout_opt" 는 원래 회로에 필요한 최소한의 수정 사항만 포함합니다. 예를 들어, 회로를 장치 연결 그래프에 매핑하는 작업이 이에 해당합니다. 어떤 경우든 고정밀도 큐비트에 대한 자동 하드웨어 매핑이 적용된다는 점에 유의하십시오.

transpilation_level
설명
"표준"기본 QESEM 변환. 여러 가지 대체 변환 방식을 준비한 후, QPU 시간을 최소화하는 방식을 선택합니다. 계층화 단계에서 장벽을 수정할 수 있습니다.
"minimal_with_layout_opt"최소 변환: 수정된 회로는 구조적으로 입력 회로와 매우 유사할 것입니다. 이 레벨에서 제공되는 회로는 디바이스의 기본 게이트 세트와 일치해야 하므로, 회로를 디바이스의 기본 게이트 세트에 맞게 별도로 변환해야 합니다. 예를 들어, CX, Rzz(α), 그리고 표준 단일 큐비트 게이트(U, x, sx, rz 등)가 있습니다. 계층화 단계에서는 장벽이 준수될 것입니다.

"minimal_with_layout_opt"여러 개의 입력 PUB 또는 여러 개의 매개변수 바인딩 회로 인스턴스가 포함된 작업의 경우, 다음을 사용하십시오.

  • 선택 사항: "minimal_with_layout_opt" / "standard"
execution_mode

기본값: batch

사용자는 QESEM 작업을 전용 IBM 세션 에서 실행하거나 여러 IBM 배치에 걸쳐 실행하도록 선택할 수 있습니다:

  • 세션 모드 : 세션 방식은 비용이 더 많이 들지만 결과를 얻는 데 걸리는 시간이 더 짧습니다. 세션이 시작되면 QPU는 QESEM 작업 전용으로 할당됩니다. 사용량 계산에는 QPU 실행에 소요된 시간과 관련 고전적 계산(QESEM 및 IBM 에서 수행됨)이 모두 포함됩니다. QESEM Qiskit 함수는 세션의 생성 및 종료를 자동으로 처리합니다. QPU를 무제한으로 사용할 수 있는 사용자(예: 온프레미스 환경)의 경우, QESEM 실행 속도를 높이기 위해 세션 모드를 사용하는 것이 좋습니다.

  • 배치 모드 : 배치 모드에서는 기존 연산 수행 중 QPU가 해제되어 QPU 사용량이 감소합니다. 배치 작업은 일반적으로 장시간에 걸쳐 수행되기 때문에 하드웨어 드리프트 발생 위험이 더 높습니다. QESEM은 드리프트를 감지하고 보정하는 기능을 갖추고 있어 장시간 실행 시에도 안정성을 유지합니다.

  • 선택 사항: "session" / "batch"

parallel_execution

기본값: True

이 플래그를 사용하면 사용자가 QPU에서 입력 회로를 병렬로 실행할 수 있습니다. QESEM은 QPU에 있는 다른 패치들이 충분한 정확도를 갖추고 있는지 확인합니다. 이러한 패치가 QPU 처리 시간을 단축한다면, QESEM은 해당 패치에서 입력 회로를 병렬로 실행합니다. 패치에서 얻은 결과는 역분산 가중법을 사용하여 통합됩니다.

  • parallel_execution=True``ibm_marrakesh예시: 한 사용자가 156 큐비트 장치에서, 를 사용하여 8 큐비트 회로를 실행하고자 합니다. QESEM은 트랜스파일된 회로의 복사본 9개를 생성하며, 각 복사본은 마라케시의 연결성 그래프 상에 있는 서로 다른 8-큐비트 패치에 매핑됩니다. 실행이 완료되면 사용자는 각 입력 관측 변수에 대해 하나의 기대값과 오차 범위를 받게 됩니다.

  • 선택 사항: "False" / "True"

description

기본값: None

QESEM 작업에 첨부할 선택적 설명입니다.

Caution

QPU 시간 추정은 백엔드마다 다릅니다. 따라서 QESEM 함수를 실행할 때는 QPU 시간 추정을 수행할 때 선택한 것과 동일한 백엔드에서 실행해야 합니다.

Note

QESEM은 목표 정밀도에 도달하거나 에 max_execution_time도달할 때, 둘 중 먼저 발생하는 시점에 실행을 종료합니다.

Note

배리어 연산은 일반적으로 양자 회로에서 2-큐비트 게이트의 레이어를 지정하는 데 사용됩니다. "minimal_with_layout_opt"QESEM은 장벽에 의해 지정된 층을 그대로 유지합니다. "standard"의 경우, QPU 시간을 최소화할 때 장벽에 의해 지정된 레이어들은 하나의 트랜스파일레이션 대안으로 간주됩니다.


출력

PrimitiveResultQESEM 함수의 출력물은 로, 여기에는 입력 PUB 당 하나씩의 PubResult 와 작업 수준 메타데이터가 포함됩니다.

PubResult 항목은 PrimitiveResult 인덱싱을 통해 접근할 수 있으며, 필드와 data 필드를 metadata 포함하고 있습니다.

  • data 필드에는 최소한 기대값 배열(PubResult.data.evs)과 표준오차 배열(PubResult.data.stds)이 포함됩니다. 사용된 옵션에 따라 더 많은 데이터가 포함될 수도 있습니다.

  • metadata 필드에는 상세한 QESEM 결과 및 실행 메트릭을 포함한 PUB 레벨 메타데이터(PubResult.metadata)가 포함되어 있습니다.

일반적인 PubResult.metadata 필드로는 다음이 있습니다:

필드
설명
results회로별 및 관측 가능 변수별 QESEM 분석 결과.
noisy_results가능한 경우, 보정되지 않은 기대값과 오차 범위.
transpiled_circs큐비트 매핑 및 측정 기저의 개수를 포함한 트랜스파일된 회로 정보.
total_qpu_time작업이 사용한 QPU 시간.
gate_fidelities실험 중에 측정된 게이트 충실도.
total_shots해당 작업에서 사용된 샷의 총 개수.
mitigation_shots완화를 위해 사용된 샷 수.
resource_usage해당 작업의 리소스 사용 내역.

metadata["results"]관측 가능한 항목별 QESEM 세부 정보는 에 저장됩니다. 결과는 먼저 회로 인스턴스별로, 그 다음에는 관측 변수별로 그룹화됩니다. 각 관측 항목에는 QESEM 결과 (qesem), 완화되지 않은 결과 (unmitigated), 노이즈 스케일링 결과 (noise_scaling), QESEM 휴리스틱 결과 (qesem_heuristic)가 포함될 수 있습니다.

이 페이지가 도움이 되었습니까?
GitHub에서 버그, 오타를 보고하거나 컨텐츠를 요청하십시오.