Vzdálená transpilace obvodů pomocí Qiskit Transpiler Service
# Added by doQumentation — required packages for this notebook
!pip install -q qiskit qiskit-ibm-transpiler
Od 18. července 2025 probíhá migrace služby na podporu nové platformy IBM Quantum® Platform a služba není dostupná. Pro AI průchody můžeš použít lokální režim.
Služba je ve fázi beta vydání a může se změnit. Pokud máš zpětnou vazbu nebo chceš kontaktovat tým vývojářů, použij prosím tento kanál Qiskit Slack Workspace.
Qiskit Transpiler Service poskytuje schopnosti transpilace v cloudu. Kromě lokálních schopností Qiskit Transpileru mohou tvoje transpilační úlohy využívat cloudové prostředky IBM Quantum i AI-podporované průchody Transpileru.
Qiskit Transpiler Service nabízí knihovnu pro Python, která tuto službu a její schopnosti plynule integruje do tvých stávajících vzorců a pracovních postupů s Qiskitem. Tato služba je dostupná pouze pro uživatele plánů IBM Quantum Premium Plan, Flex Plan a On-Prem (přes IBM Quantum Platform API) Plan.
Instalace balíčku qiskit-ibm-transpiler
Chceš-li používat Qiskit Transpiler Service, nainstaluj balíček qiskit-ibm-transpiler:
pip install qiskit-ibm-transpiler
Balíček se automaticky ověřuje pomocí tvých přihlašovacích údajů IBM Quantum Platform v souladu se způsobem, jakým to spravuje Qiskit Runtime:
- Proměnná prostředí:
QISKIT_IBM_TOKEN - Konfigurační soubor
~/.qiskit/qiskit-ibm.json(v sekcidefault-ibm-quantum).
Poznámka: Tento balíček vyžaduje Qiskit SDK v1.X.
Možnosti transpilace qiskit-ibm-transpiler
backend_name(volitelné, str) – Název Backend, jak by byl očekáván službou QiskitRuntimeService (napříkladibm_torino). Je-li tato možnost nastavena, použije metoda transpile pro transpilaci rozvržení ze zadaného Backend. Pokud je nastavena jiná možnost, která tato nastavení ovlivňuje, napříkladcoupling_map, jsou nastaveníbackend_namepřepsána.coupling_map(volitelné, List[List[int]]) – Platný seznam coupling map (například [[0,1],[1,2]]). Je-li tato možnost nastavena, použije metoda transpile tuto coupling map pro transpilační operaci. Je-li definována, přepíše jakoukoli hodnotu zadanou protarget.optimization_level(int) – Potenciální úroveň optimalizace, která se použije během transpilačního procesu. Platné hodnoty jsou [1,2,3], kde 1 znamená nejmenší optimalizaci (a nejrychlejší) a 3 nejvyšší optimalizaci (a nejnáročnější na čas).ai("true", "false", "auto") – Zda se maj í během transpilace použít schopnosti s podporou AI. Dostupné schopnosti s podporou AI mohou zahrnovat průchodyAIRoutingnebo jiné metody syntézy s podporou AI. Je-li tato hodnota"true", použije služba různé průchody transpilace s podporou AI v závislosti na požadovanéoptimization_level. Při hodnotě"false"se použijí nejnovější funkce transpilace Qiskitu bez AI. A konečně při hodnotě"auto"služba sama rozhodne, zda použije standardní heuristické průchody Qiskitu nebo průchody s podporou AI na základě tvého Circuit.qiskit_transpile_options(dict) – Objekt Python slovníku, který může obsahovat jakoukoli jinou platnou možnost metody Qiskittranspile(). Pokud vstupqiskit_transpile_optionsobsahujeoptimization_level, je ignorován ve prospěchoptimization_levelzadaného jako parametr. Pokudqiskit_transpile_optionsobsahuje jakoukoli možnost, kterou metoda Qiskittranspile()nerozpozná, knihovna vyvolá chybu.
Více informací o dostupných metodách qiskit-ibm-transpiler najdeš v referenci API qiskit-ibm-transpiler. Chceš-li se dozvědět více o API služby, podívej se na dokumentaci REST API Qiskit Transpiler Service.
Příklady
Následující příklady ukazují, jak transpilovat Circuit pomocí Qiskit Transpiler Service s různými parametry.
- Vytvoř Circuit a zavolej Qiskit Transpiler Service pro transpilaci obvodu s
ibm_torinojakobackend_name, hodnotou 3 prooptimization_levela bez použití AI během transpilace.
from qiskit.circuit.library import efficient_su2
from qiskit_ibm_transpiler.transpiler_service import TranspilerService
circuit = efficient_su2(101, entanglement="circular", reps=1)
cloud_transpiler_service = TranspilerService(
backend_name="ibm_torino",
ai="false",
optimization_level=3,
)
transpiled_circuit = cloud_transpiler_service.run(circuit)
Poznámka: Jako backend_name můžeš použít pouze zařízení, ke kterým máš přístup se svým účtem IBM Quantum. Kromě backend_name umožňuje TranspilerService jako parametr také coupling_map.
- Vytvoř podobný Circuit a transpiluj ho s požadavkem na schopnosti transpilace s AI nastavením příznaku
ainaTrue:
from qiskit.circuit.library import efficient_su2
from qiskit_ibm_transpiler.transpiler_service import TranspilerService
circuit = efficient_su2(101, entanglement="circular", reps=1)
cloud_transpiler_service = TranspilerService(
backend_name="ibm_torino",
ai="true",
optimization_level=1,
)
transpiled_circuit = cloud_transpiler_service.run(circuit)
- Vytvoř podobný Circuit a transpiluj ho tak, aby se služba sama rozhodla, zda použít průchody transpilace s podporou AI.
from qiskit.circuit.library import efficient_su2
from qiskit_ibm_transpiler.transpiler_service import TranspilerService
circuit = efficient_su2(101, entanglement="circular", reps=1)
cloud_transpiler_service = TranspilerService(
backend_name="ibm_torino",
ai="auto",
optimization_level=1,
)
transpiled_circuit = cloud_transpiler_service.run(circuit)
Limity Qiskit Transpiler Service
Níže jsou uvedena nejdůležitější omezení služby:
- Maximální počet dvoukubitových Gate na Circuit v transpilační úloze v jakémkoli režimu
aije 1 milion. - Maximální povolená doba pro spuštění transpilačního procesu je 30 minut na úlohu.
- Výsledek transpilace ze služby musíš načíst do 20 minut po ukončení transpilačního procesu. Po 20 minutách je výsledek úlohy zahozen.
- Maximální doba, po kterou může sada Circuit čekat ve vnitřní frontě na transpilaci, je 120 minut. Po uplynutí této doby je úloha, pokud nebyla transpilována, zahozena.
- Maximální počet Qubit nebyl stanoven. Služba byla testována na 900+ Qubitech.
Citace
Pokud ve svém výzkumu používáš jakékoli funkce s podporou AI ze Qiskit Transpiler Service, použij následující doporučenou citaci:
@misc{2405.13196,
Author = {David Kremer and Victor Villar and Hanhee Paik and Ivan Duran and Ismael Faro and Juan Cruz-Benito},
Title = {Practical and efficient quantum circuit synthesis and transpiling with Reinforcement Learning},
Year = {2024},
Eprint = {arXiv:2405.13196},
}
Další kroky
- Zjisti, jak vytvářet průchody Transpileru s AI.
- Nauč se jak transpilovat Circuit jako součást pracovního postupu vzorců Qiskitu pomocí Qiskit Runtime.
- Projdi si dokumentaci Python klienta Qiskit Transpiler Service.