Lumaktaw sa pangunahing nilalaman

Mag-transpile ng mga circuit nang remote gamit ang Qiskit Transpiler Service

# Added by doQumentation — required packages for this notebook
!pip install -q qiskit qiskit-ibm-transpiler
Migrasyon ng Transpiler Service

Simula noong 18 Hulyo 2025, ang serbisyo ay inililipat na upang suportahan ang bagong IBM Quantum® Platform at hindi pa available. Para sa mga AI pass, maaari kang gumamit ng local mode.

Ang serbisyo ay isang beta release, na maaaring magbago. Kung may feedback ka o gusto mong makipag-ugnayan sa developer team, gamitin ang Qiskit Slack Workspace channel na ito.

Ang Qiskit Transpiler Service ay nagbibigay ng mga kakayahan sa transpilation sa cloud. Bukod sa mga lokal na kakayahan ng Qiskit transpiler, ang iyong mga transpilation task ay maaaring makinabang mula sa mga IBM Quantum cloud resource at mga AI-powered transpiler pass.

Ang Qiskit Transpiler Service ay nag-aalok ng Python library para seamlessly na isama ang serbisyong ito at ang mga kakayahan nito sa iyong mga kasalukuyang Qiskit pattern at workflow. Ang serbisyong ito ay para lamang sa mga gumagamit ng IBM Quantum Premium Plan, Flex Plan, at On-Prem (via IBM Quantum Platform API) Plan.

I-install ang qiskit-ibm-transpiler package​

Para gamitin ang Qiskit Transpiler Service, i-install ang qiskit-ibm-transpiler package:

pip install qiskit-ibm-transpiler

Ang package ay awtomatikong nagpapatunay gamit ang iyong IBM Quantum Platform credentials na naaayon sa kung paano pinamamahalaan ito ng Qiskit Runtime:

  • Environment variable: QISKIT_IBM_TOKEN
  • Configuration file ~/.qiskit/qiskit-ibm.json (sa ilalim ng seksyon na default-ibm-quantum).

Tandaan: Ang package na ito ay nangangailangan ng Qiskit SDK v1.X.

Mga opsyon sa transpile ng qiskit-ibm-transpiler​

  • backend_name (opsyonal, str) - Isang pangalan ng backend tulad ng inaasahan ng QiskitRuntimeService (halimbawa, ibm_torino). Kung ito ay itinakda, ang transpile method ay gumagamit ng layout mula sa tinukoy na backend para sa operasyon ng transpilation. Kung may ibang opsyon na nakatakda na nakaaapekto sa mga setting na ito, tulad ng coupling_map, ang mga setting ng backend_name ay mino-override.
  • coupling_map (opsyonal, List[List[int]]) - Isang valid na coupling map list (halimbawa, [[0,1],[1,2]]). Kung ito ay itinakda, ang transpile method ay gumagamit ng coupling map na ito para sa operasyon ng transpilation. Kung tinukoy, ino-override nito ang anumang value na tinukoy para sa target.
  • optimization_level (int) - Ang posibleng antas ng optimization na ilalapat sa panahon ng proseso ng transpilation. Ang mga valid na value ay [1,2,3], kung saan ang 1 ay ang pinakamaliit na optimization (at pinakamabilis), at ang 3 ay ang pinakamaraming optimization (at pinaka-time-intensive).
  • ai ("true", "false", "auto") - Kung gagamitin ang mga AI-powered na kakayahan sa panahon ng transpilation. Ang mga available na AI-powered na kakayahan ay maaaring para sa mga AIRouting transpiling pass o iba pang AI-powered na paraan ng synthesis. Kung ang value na ito ay "true", inilalapat ng serbisyo ang iba't ibang AI-powered na transpiling pass depende sa hinilingang optimization_level. Kung "false", gumagamit ito ng pinakabagong mga feature ng Qiskit transpiling nang walang AI. Sa wakas, kung "auto", ang serbisyo ay nagpapasya kung ilalapat ang standard na Qiskit heuristic pass o ang mga AI-powered na pass batay sa iyong circuit.
  • qiskit_transpile_options (dict) - Isang Python dictionary object na maaaring magsama ng anumang ibang opsyon na valid sa Qiskit transpile() method. Kung ang qiskit_transpile_options input ay may kasamang optimization_level, ito ay itatatapon pabor sa optimization_level na tinukoy bilang parameter input. Kung ang qiskit_transpile_options ay may kasamang anumang opsyon na hindi kinikilala ng Qiskit transpile() method, ang library ay magtataas ng error.

Para sa karagdagang impormasyon tungkol sa mga available na method ng qiskit-ibm-transpiler, tingnan ang qiskit-ibm-transpiler API reference. Para matuto pa tungkol sa service API, tingnan ang Qiskit Transpiler Service REST API documentation.

Mga Halimbawa​

Ang mga sumusunod na halimbawa ay nagpapakita kung paano mag-transpile ng mga circuit gamit ang Qiskit Transpiler Service na may iba't ibang parameter.

  1. Gumawa ng circuit at tawagan ang Qiskit Transpiler Service para i-transpile ang circuit na may ibm_torino bilang backend_name, 3 bilang optimization_level, at nang hindi gumagamit ng AI sa panahon ng transpilation.
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)

Tandaan: maaari ka lamang gumamit ng mga backend_name device na may access ka gamit ang iyong IBM Quantum account. Bukod sa backend_name, ang TranspilerService ay nagbibigay-daan din sa coupling_map bilang parameter.

  1. Gumawa ng katulad na circuit at i-transpile ito, na humihiling ng mga AI transpiling capability sa pamamagitan ng pagtakda ng flag na ai sa True:
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)
  1. Gumawa ng katulad na circuit at i-transpile ito habang pinapayagan ang serbisyo na magpasya kung gagamitin ang mga AI-powered na transpiling pass.
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)

Mga Limitasyon ng Qiskit Transpiler Service​

Ang mga sumusunod ay ang pinaka-relevant na mga limitasyon ng serbisyo:

  • Ang maximum na bilang ng two-qubit gate bawat circuit sa isang transpilation job sa anumang ai mode ay 1 milyon.
  • Ang maximum na oras na pinapayagan para patakbuhin ang isang proseso ng transpilation ay 30 minuto bawat job.
  • Kailangan mong i-retrieve ang resulta ng transpilation mula sa serbisyo sa loob ng 20 minuto pagkatapos matapos ang proseso ng transpilation. Pagkatapos ng 20 minuto, ang resulta ng job ay itatatapon.
  • Ang maximum na oras na maaaring manatili ang isang hanay ng mga circuit sa internal queue habang naghihintay na ma-transpile ay 120 minuto. Pagkatapos ng oras na iyon, kung ang job ay hindi pa na-transpile, ito ay itatatapon.
  • Ang maximum na bilang ng qubit ay hindi pa natukoy. Ang serbisyo ay nasubok sa 900+ qubit.

Pagsipi​

Kung gagamitin mo ang anumang AI-powered na feature mula sa Qiskit Transpiler Service sa iyong pananaliksik, gamitin ang sumusunod na inirerekomendang pagsipi:

@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},
}

Mga susunod na hakbang​

Mga Rekomendasyon