Directed execution model (beta)
Lahat ng mga komponente sa directed execution model ay kasalukuyang nasa beta at maaaring hindi pa stable. Inaanyayahan kang subukan ang mga ito at magbigay ng feedback sa pamamagitan ng pagbubukas ng isyu sa Samplomatic o Qiskit Runtime na mga GitHub repository.
Ang Sampler at Estimator primitive na mga interface ay nagbibigay ng mas mataas na antas ng abstraction para sa mga developer ng algorithm upang mas makapag-focus sa inobasyon at hindi sa conversion ng data. Gayunpaman, hindi sila gaanong angkop para sa mga quantum information scientist, na nangangailangan ng mas maraming kontrol at flexibility para sa kanilang mga utility-scale na eksperimento. Ang directed execution model, na kasalukuyang nasa beta release, ay tumutugon sa pangangailangang ito. Ang execution model na ito ay nagbibigay ng mga sangkap para ma-capture ang mga design intent sa client side, at inililipat ang mahal na paglikha ng mga variant ng Circuit sa server side, upang maaari kang mag-fine-tune ng error mitigation at iba pang mga teknik nang hindi sinasacrifice ang performance. Ang explicit at composable na model na ito ay nagpapadali ng pag-eksperimento sa mga bagong teknik, pagpaparami ng mga resulta, at pagbabahagi ng mga pamamaraan.
Sa beta release nito, ang directed execution model ay nakatuon sa pagbibigay sa iyo ng kontrol sa mga teknik na built-in na sa kasalukuyang Sampler at Estimator, kabilang ang Pauli twirling, noise model learning at injection, at mga pagbabago ng basis. Ang suporta para sa iba pang mga kakayahan ay unti-unting idadagdag sa paglipas ng panahon.
Workflowβ
Ang isa sa mga pangunahing layunin ng directed execution model ay magbigay ng modular na paraan para mag-apply ng mga paraan ng error mitigation. Halimbawa, maaari mong tukuyin kung aling mga layer sa Circuit ang dapat pagaanin, o ayusin ang mga noise rate na ini-inject sa Circuit.
Para mag-apply ng error mitigation sa isang Circuit sa ilalim ng framework, ang iyong workflow ay karaniwang magsasangkot ng mga sumusunod na hakbang (ang mga tool na nabanggit dito ay mas buong inilalarawan sa susunod na seksyon):
-
I-group ang mga instruksyon sa mga box at mag-apply ng mga annotation sa mga ito. Kino-capture ng mga annotation ang nilalayon na transformation nang hindi aktwal na gumagawa ng mga variant ng Circuit.
-
Aralin ang mga noise model ng mga natatanging layer, kung kinakailangan, gamit ang bagong NoiseLearnerV3.
-
Buuin ang template circuit at samplex mula sa boxed circuit.
-
Patakbuhin ang template circuit at samplex gamit ang Executor primitive, na lilikha at magpapatakbo ng mga variant ng Circuit ayon sa instruksyon.
-
I-post-process ang mga resulta ng execution. Halimbawa, maaari kang mag-apply ng post-selection, o mag-extrapolate ng mga mitigated expectation value mula sa mga resulta ng execution.
Mga tool para sa directed execution modelβ
Ang mga sumusunod na tool ay maaaring gamitin nang magkasama para ipatupad ang isang teknik ng error mitigation sa directed execution model.
Samplomaticβ
Ang Samplomatic ay isang bagong open-source na library na sumusuporta sa mga customized sampling randomization. Gumagamit ito ng box na construct para pag-isipan ang mga koleksyon ng mga Circuit operation na dapat tratuhin bilang may stable na noise context, at gumagamit ng mga annotation sa mga box para payagan kang mag-declare at mag-configure ng mga intent. Halimbawa, maaari mong stratify ang iyong Circuit sa mga box, magdagdag ng twirling annotation sa bawat box, at tukuyin kung aling twirling group ang gagamitin, tulad ng ipinapakita sa sumusunod na figure:

Ang isang Circuit na may mga annotated box ay maaaring gamitin para gumawa ng template circuit at samplex. Ang output template circuit ay isang parameterized circuit na isasagawa nang walang karagdagang pagbabago (maliban sa magkakaibang mga halaga ng parameter na itatalaga sa kanya). Ang samplex, na siyang pangunahing uri ng Samplomatic library, ay kumakatawan sa isang parametric probability distribution sa mga parameter ng template circuit at iba pang mga field na may array na halaga. Ang mga field na ito ay maaaring gamitin para i-post-process ang data na nakolekta mula sa pagpapatakbo ng bound template circuit. Sa madaling salita, sinasabi ng template circuit at samplex na pares sa Executor primitive (inilalarawan sa ibaba) kung aling mga parameter ang dapat likhain at kung aling mga bound circuit ang dapat patakbuhin. Dahil ang dalawang construct na ito ay nilikha sa client side, maaari kang gumawa ng lokal na inspeksyon at sampling para i-verify ang mga output bago ipadala para sa hardware execution.
Para pasimplehin ang proseso ng paglikha ng mga annotated box, ang Samplomatic library ay nagbibigay din ng mga transpiler pass na awtomatikong nag-igroup ng mga instruksyon ng Circuit sa mga annotated box, batay sa mga estratehiya na ibinibigay mo.
Para matuto pa tungkol sa Samplomatic, bisitahin ang guides at API reference na dokumentasyon. Huwag mag-atubiling magpadala ng feedback at mag-ulat ng mga bug sa GitHub repository nito.
Executor primitiveβ
Ang Executor ay isang bagong Qiskit Runtime primitive na tumatanggap ng template circuit at samplex na pares bilang input, gumagawa at nagbubuklod ng mga halaga ng parameter ayon sa samplex, nagpapatakbo ng mga bound circuit sa hardware, at nagbabalik ng mga resulta ng execution at metadata. Sinusunod nito ang mga direktibo ng input na pares at hindi gumagawa ng anumang implicit na desisyon para sa iyo, upang ang proseso ay transparent ngunit mahusay.
Para ma-access ang Executor, i-install ang executor_preview branch mula sa qiskit-ibm-runtime:
pip install -U git+https://github.com/Qiskit/qiskit-ibm-runtime.git@executor_preview
Ang mga input at output ng Executor primitive ay napaka-iba sa mga input at output ng Sampler at Estimator. Tingnan ang Executor API reference para sa karagdagang impormasyon. Bukod dito, ang Executor quickstart guide ay nagbibigay ng pangkalahatang-ideya at mga halimbawa ng code.
NoiseLearnerV3β
Katulad ng kasalukuyang NoiseLearner, ang Qiskit Runtime helper program na ito ay nagbabalik ng sparse na Pauli-Lindblad noise model na ginagamit sa maraming paraan ng error mitigation, kabilang ang PEC, PEA, at PNA. Sa orihinal na NoiseLearner, nagpapasa ka ng listahan ng mga Circuit, at ang programa ay nagla-layer ng mga Circuit at nagbabalik ng noise model para sa bawat natatanging layer. Ang NoiseLearnerV3, sa kabilang banda, ay nagbibigay sa iyo ng kontrol sa kung paano i-stratify ang iyong mga Circuit, at ang programa ay simpleng tumatanggap ng listahan ng mga boxed circuit instruction (halimbawa, mga natatanging layer) bilang mga input.
Sinusuportahan din ng NoiseLearnerV3 ang measurement noise learning. Para sa bawat instruction set sa listahan ng input, pinapatakbo nito ang Pauli-Lindblad learning protocol kung ang set ay naglalaman ng isa- at dalawang-qubit gate, at ang TREX protocol kung ang set ay naglalaman ng mga measurement.
Para ma-access ang NoiseLearnerV3, i-install ang executor_preview branch mula sa qiskit-ibm-runtime:
pip install -U git+https://github.com/Qiskit/qiskit-ibm-runtime.git@executor_preview
Para matuto pa tungkol sa NoiseLearnerV3, tingnan ang API reference na dokumentasyon nito.
Mga susunod na hakbangβ
- Tingnan ang dalawang Qiskit addon, Shaded lightcones at Propagated noise absorption, na itinayo sa ibabaw ng execution model na ito.