Přeskočit na hlavní obsah

Řízený model spouštění (beta)

Vydání beta

Všechny komponenty řízeného modelu spouštění jsou aktuálně ve fázi beta a nemusí být stabilní. Jsi zván/a, abys je otestoval/a a poskytl/a zpětnou vazbu otevřením issue v repozitářích Samplomatic nebo Qiskit Runtime na GitHubu.

Rozhraní primitivů Sampler a Estimator poskytují abstrakci vyšší úrovně, která umožňuje vývojářům algoritmů soustředit se více na inovace a méně na převody dat. Jsou však méně vhodná pro vědce zabývající se kvantovými informacemi, kteří potřebují větší kontrolu a flexibilitu pro své experimenty v užitné škále. Řízený model spouštění, aktuálně ve fázi beta vydání, tuto potřebu řeší. Tento model spouštění poskytuje nástroje pro zachycení záměrů návrhu na straně klienta a přesouvá nákladné generování variant Circuit na stranu serveru, takže můžeš doladit potlačování chyb a další techniky bez ztráty výkonu. Tento explicitní a modulární model usnadňuje experimentování s novými technikami, reprodukci výsledků a sdílení metod.

Ve svém beta vydání se řízený model spouštění zaměřuje na to, aby ti dal kontrolu nad technikami, které jsou zabudovány do stávajících primitivů Sampler a Estimator, včetně Pauliho twirlingu, učení šumových modelů a jejich injekce a změn báze. Podpora dalších funkcí bude postupně přidávána.

Pracovní postup

Jedním z hlavních cílů řízeného modelu spouštění je poskytnout modulární způsob aplikace metod potlačování chyb. Například můžeš definovat, které vrstvy v Circuit chceš zmírňovat, nebo upravit míry šumu injektovaného do Circuit.

Chceš-li v rámci tohoto frameworku aplikovat potlačování chyb na Circuit, tvůj pracovní postup bude obvykle zahrnovat následující kroky (nástroje zde zmíněné jsou podrobněji popsány v další části):

  1. Seskup instrukce do bloků a přidej k nim anotace. Anotace zachycují zamýšlenou transformaci, aniž by skutečně generovaly varianty Circuit.

  2. Nauč šumové modely jedinečných vrstev, pokud je to potřeba, pomocí nového NoiseLearnerV3.

  3. Sestav šablonu Circuit a samplex z blokovaného Circuit.

  4. Spusť šablonu Circuit a samplex s primitivem Executor, které vygeneruje a vykoná varianty Circuit podle pokynů.

  5. Post-procesuj výsledky spouštění. Například můžeš aplikovat post-selekci nebo extrapolovat zmírněné hodnoty expectation z výsledků spouštění.

Nástroje pro řízený model spouštění

Následující nástroje lze použít společně k implementaci techniky potlačování chyb v řízeném modelu spouštění.

Samplomatic

Samplomatic je nová open-source knihovna, která podporuje přizpůsobené randomizace vzorkování. Využívá konstrukt box pro uvažování o kolekcích operací Circuit, které by měly být považovány za operace se stabilním šumovým kontextem, a používá anotace na blocích, aby ti umožnila deklarovat a konfigurovat záměry. Například můžeš svůj Circuit rozvrstvit do bloků, přidat k nim anotaci twirlingu a určit, kterou twirlingovou skupinu použít, jak je znázorněno na následujícím obrázku:

Příklad použití bloků a twirlingových anotací

Circuit s anotovanými bloky pak může být použit k vygenerování šablony Circuit a samplexu. Výstupní šablona Circuit je parametrizovaný Circuit, který bude spuštěn bez dalších úprav (kromě přiřazení různých hodnot parametrů). Samplex, který je základním typem knihovny Samplomatic, představuje parametrické pravděpodobnostní rozdělení přes parametry šablony Circuit a další pole s hodnotami pole. Tato pole lze použít k post-procesování dat shromážděných ze spouštění vázaného šablonového Circuit. Jinými slovy, dvojice šablony Circuit a samplexu sděluje primitivu Executor (popsanému níže) přesně, jaké parametry vygenerovat a jaké vázané Circuit spustit. Protože jsou tyto dvě konstrukty vytvořeny na straně klienta, můžeš provádět lokální inspekci a vzorkování k ověření výstupů před odesláním ke spuštění na hardwaru.

Aby se zjednodušil proces generování anotovaných bloků, poskytuje knihovna Samplomatic také transpilační průchody, které automaticky seskupují instrukce Circuit do anotovaných bloků na základě strategií, které zadáš.

Chceš-li se dozvědět více o Samplomatic, navštiv dokumentaci průvodců a reference API. Neváhej poskytnout zpětnou vazbu a hlásit chyby v jeho repozitáři na GitHubu.

Primitiv Executor

Executor je nový primitiv Qiskit Runtime, který přijímá dvojici šablony Circuit a samplexu jako vstup, generuje a váže hodnoty parametrů podle samplexu, spouští vázané Circuit na hardwaru a vrací výsledky spouštění a metadata. Řídí se direktivami vstupní dvojice a neprovádí za tebe žádná implicitní rozhodnutí, takže proces je transparentní, ale výkonný.

Pro přístup k Executor nainstaluj větev executor_preview z qiskit-ibm-runtime:

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

Vstupy a výstup primitivu Executor se velmi liší od těch u Sampler a Estimator. Více informací najdeš v referenci API Executor. Kromě toho průvodce rychlým startem Executor poskytuje přehled a ukázky kódu.

NoiseLearnerV3

Podobně jako stávající NoiseLearner vrací tento pomocný program Qiskit Runtime řídký Pauli-Lindblad šumový model, který se používá v mnoha metodách potlačování chyb, včetně PEC, PEA a PNA. V původním NoiseLearner předáváš seznam Circuit a program rozvrství Circuit do vrstev a vrátí šumový model pro každou jedinečnou vrstvu. NoiseLearnerV3 ti naproti tomu dává kontrolu nad tím, jak své Circuit rozvrstvit, a program jednoduše přijímá seznam blokovaných instrukcí Circuit (například jedinečné vrstvy) jako vstupy.

NoiseLearnerV3 také podporuje učení měřicího šumu. Pro každou sadu instrukcí ve vstupním seznamu spustí Pauli-Lindblad protokol učení, pokud sada obsahuje jednoQubitové a dvouQubitové Gate, a protokol TREX, pokud sada obsahuje měření. Pro přístup k NoiseLearnerV3 nainstaluj větev executor_preview z qiskit-ibm-runtime:

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

Chceš-li se dozvědět více o NoiseLearnerV3, přečti si dokumentaci jeho reference API.

Další kroky

Doporučení