주 콘텐츠로 건너뛰기

지향적 실행 모델 (베타)

베타 릴리스

지향적 실행 모델의 모든 구성 요소는 현재 베타 버전이며 안정적이지 않을 수 있습니다. 테스트에 참여하시고 Samplomatic 또는 Qiskit Runtime GitHub 저장소에 이슈를 열어 피드백을 제공해 주세요.

Sampler와 Estimator 프리미티브 인터페이스는 알고리즘 개발자가 데이터 변환보다 혁신에 더 집중할 수 있도록 높은 수준의 추상화를 제공합니다. 그러나 이 인터페이스는 유틸리티 규모의 실험에서 더 많은 제어와 유연성을 필요로 하는 양자 정보 과학자들에게는 적합하지 않습니다. 현재 베타 릴리스 중인 지향적 실행 모델은 이러한 필요를 충족합니다. 이 실행 모델은 클라이언트 측에서 설계 의도를 포착하는 수단을 제공하며, 비용이 많이 드는 Circuit 변형 생성을 서버 측으로 이동시켜 성능을 희생하지 않고도 오류 완화 및 기타 기법을 세밀하게 조정할 수 있게 해줍니다. 이 명시적이고 조합 가능한 모델은 새로운 기법을 실험하고, 결과를 재현하며, 방법론을 공유하기 더욱 쉽게 만들어 줍니다.

베타 릴리스에서 지향적 실행 모델은 Pauli 트월링, 노이즈 모델 학습 및 주입, 기저 변환을 포함한 기존 Sampler 및 Estimator에 내장된 기법에 대한 제어 기능을 제공하는 데 중점을 둡니다. 다른 기능에 대한 지원은 점차적으로 추가될 예정입니다.

워크플로

지향적 실행 모델의 주요 목표 중 하나는 오류 완화 방법을 모듈식으로 적용하는 방법을 제공하는 것입니다. 예를 들어, Circuit에서 완화할 레이어를 정의하거나 Circuit에 주입되는 노이즈 비율을 조정할 수 있습니다.

이 프레임워크 하에서 Circuit에 오류 완화를 적용하려면 일반적으로 다음 단계를 따르게 됩니다(여기서 언급된 도구들은 다음 섹션에서 더 자세히 설명합니다):

  1. 명령어를 박스로 그룹화하고 어노테이션을 적용합니다. 어노테이션은 실제로 Circuit 변형을 생성하지 않고 의도된 변환을 포착합니다.

  2. 필요한 경우, 새로운 NoiseLearnerV3를 사용하여 고유한 레이어의 노이즈 모델을 학습합니다.

  3. 박스화된 Circuit으로부터 템플릿 Circuit과 samplex를 빌드합니다.

  4. Executor 프리미티브를 사용하여 템플릿 Circuit과 samplex를 실행하면, Executor가 지시에 따라 Circuit 변형을 생성하고 실행합니다.

  5. 실행 결과를 후처리합니다. 예를 들어, 후선택(post-selection)을 적용하거나 실행 결과로부터 완화된 기댓값을 외삽할 수 있습니다.

지향적 실행 모델을 위한 도구

다음 도구들은 지향적 실행 모델에서 오류 완화 기법을 구현하기 위해 함께 사용할 수 있습니다.

Samplomatic

Samplomatic은 사용자 정의 샘플링 무작위화를 지원하는 새로운 오픈 소스 라이브러리입니다. 이 라이브러리는 box 구조를 사용하여 안정적인 노이즈 컨텍스트를 가진 것으로 처리되어야 하는 Circuit 연산의 집합을 다루며, 박스의 어노테이션을 통해 의도를 선언하고 구성할 수 있습니다. 예를 들어, Circuit을 박스로 계층화하고, 각 박스에 트월링 어노테이션을 추가하며, 사용할 트월링 그룹을 지정할 수 있습니다. 이는 다음 그림에 나타나 있습니다:

박스와 트월링 어노테이션 사용 예시

어노테이션된 박스가 있는 Circuit은 템플릿 Circuitsamplex를 생성하는 데 사용될 수 있습니다. 출력 템플릿 Circuit은 추가 변경 없이(다른 매개변수 값이 할당되는 것 외에는) 실행될 매개변수화된 Circuit입니다. Samplomatic 라이브러리의 핵심 타입인 samplex는 템플릿 Circuit의 매개변수 및 기타 배열 값 필드에 대한 매개변수적 확률 분포를 나타냅니다. 이러한 필드는 바인딩된 템플릿 Circuit을 실행하여 수집된 데이터를 후처리하는 데 사용될 수 있습니다. 즉, 템플릿 Circuit과 samplex 쌍은 Executor 프리미티브(아래에 설명됨)에게 생성할 매개변수와 실행할 바인딩된 Circuit을 정확히 알려줍니다. 이 두 구조는 클라이언트 측에서 생성되므로, 하드웨어 실행을 위해 전송하기 전에 로컬에서 검사하고 샘플링하여 출력을 검증할 수 있습니다.

어노테이션된 박스 생성 과정을 단순화하기 위해, Samplomatic 라이브러리는 사용자가 제공하는 전략에 따라 자동으로 Circuit 명령어를 어노테이션된 박스로 그룹화하는 Transpiler 패스도 제공합니다.

Samplomatic에 대해 더 알아보려면 가이드API 참조 문서를 방문하세요. GitHub 저장소에서 피드백을 제출하고 버그를 신고해 주세요.

Executor 프리미티브

Executor는 템플릿 Circuit과 samplex 쌍을 입력으로 받아, samplex에 따라 매개변수 값을 생성하고 바인딩하며, 바인딩된 Circuit을 하드웨어에서 실행하고, 실행 결과와 메타데이터를 반환하는 새로운 Qiskit Runtime 프리미티브입니다. 입력 쌍의 지시를 따르며 암묵적인 결정을 내리지 않으므로 프로세스가 투명하면서도 성능이 뛰어납니다.

Executor에 액세스하려면 qiskit-ibm-runtime에서 executor_preview 브랜치를 설치하세요:

pip install -U git+https://github.com/Qiskit/qiskit-ibm-runtime.git@executor_preview

Executor 프리미티브의 입력과 출력은 Sampler 및 Estimator의 것과 매우 다릅니다. 자세한 내용은 Executor API 참조를 참조하세요. 또한 Executor 빠른 시작 가이드에서 개요와 코드 예시를 확인할 수 있습니다.

NoiseLearnerV3

현재의 NoiseLearner와 유사하게, 이 Qiskit Runtime 헬퍼 프로그램은 PEC, PEA, PNA를 포함한 많은 오류 완화 방법에 사용되는 희소 Pauli-Lindblad 노이즈 모델을 반환합니다. 기존 NoiseLearner에서는 Circuit 목록을 전달하면 프로그램이 Circuit을 레이어로 계층화하고 각 고유 레이어의 노이즈 모델을 반환합니다. 반면 NoiseLearnerV3는 Circuit을 계층화하는 방법을 사용자가 제어할 수 있으며, 프로그램은 단순히 박스화된 Circuit 명령어 목록(예: 고유 레이어)을 입력으로 받습니다.

NoiseLearnerV3는 측정 노이즈 학습도 지원합니다. 입력 목록의 각 명령어 세트에 대해, 세트에 1- 및 2-Qubit Gate가 포함된 경우 Pauli-Lindblad 학습 프로토콜을 실행하고, 측정값이 포함된 경우 TREX 프로토콜을 실행합니다. NoiseLearnerV3에 액세스하려면 qiskit-ibm-runtime에서 executor_preview 브랜치를 설치하세요:

pip install -U git+https://github.com/Qiskit/qiskit-ibm-runtime.git@executor_preview

NoiseLearnerV3에 대해 더 알아보려면 API 참조 문서를 참조하세요.

다음 단계

권장 사항