Transpilasi sirkuit dari jarak jauh dengan Qiskit Transpiler Service
# Added by doQumentation — required packages for this notebook
!pip install -q qiskit qiskit-ibm-transpiler
Per 18 Juli 2025, layanan ini sedang dimigrasikan untuk mendukung IBM Quantum® Platform yang baru dan saat ini tidak tersedia. Untuk AI passes, kamu bisa menggunakan mode lokal.
Layanan ini adalah rilis beta yang bisa berubah sewaktu-waktu. Kalau kamu punya masukan atau ingin menghubungi tim pengembang, silakan gunakan channel Qiskit Slack Workspace ini.
Qiskit Transpiler Service menyediakan kemampuan transpilasi di cloud. Selain kemampuan Transpiler Qiskit lokal, tugas transpilasi kamu bisa memanfaatkan sumber daya cloud IBM Quantum dan AI transpiler passes yang didukung kecerdasan buatan.
Qiskit Transpiler Service menawarkan library Python untuk mengintegrasikan layanan ini dan kemampuannya secara mulus ke dalam pola dan alur kerja Qiskit kamu saat ini. Layanan ini hanya tersedia untuk pengguna IBM Quantum Premium Plan, Flex Plan, dan On-Prem (melalui IBM Quantum Platform API) Plan.
Instal paket qiskit-ibm-transpiler​
Untuk menggunakan Qiskit Transpiler Service, instal paket qiskit-ibm-transpiler:
pip install qiskit-ibm-transpiler
Paket ini secara otomatis melakukan autentikasi menggunakan kredensial IBM Quantum Platform kamu, sesuai dengan cara Qiskit Runtime mengelolanya:
- Variabel lingkungan:
QISKIT_IBM_TOKEN - File konfigurasi
~/.qiskit/qiskit-ibm.json(di bawah bagiandefault-ibm-quantum).
Catatan: Paket ini memerlukan Qiskit SDK v1.X.
Opsi transpilasi qiskit-ibm-transpiler​
backend_name(opsional, str) - Nama Backend sebagaimana yang diharapkan oleh QiskitRuntimeService (misalnya,ibm_torino). Jika ini diatur, metode transpile menggunakan layout dari Backend yang ditentukan untuk operasi transpilasi. Jika ada opsi lain yang diatur yang memengaruhi pengaturan ini, seperticoupling_map, pengaturanbackend_nameakan di-override.coupling_map(opsional, List[List[int]]) - Daftar coupling map yang valid (misalnya, [[0,1],[1,2]]). Jika ini diatur, metode transpile menggunakan coupling map ini untuk operasi transpilasi. Jika didefinisikan, nilainya akan meng-override nilai yang ditentukan untuktarget.optimization_level(int) - Level optimasi potensial yang diterapkan selama proses transpilasi. Nilai yang valid adalah [1,2,3], di mana 1 adalah optimasi paling sedikit (dan tercepat), dan 3 adalah optimasi paling banyak (dan paling memakan waktu).ai("true", "false", "auto") - Apakah akan menggunakan kemampuan berbasis AI selama transpilasi. Kemampuan berbasis AI yang tersedia bisa berupaAIRoutingtranspiling passes atau metode sintesis berbasis AI lainnya. Jika nilainya"true", layanan menerapkan berbagai AI transpiling passes tergantung padaoptimization_levelyang diminta. Jika"false", layanan menggunakan fitur transpilasi Qiskit terbaru tanpa AI. Terakhir, jika"auto", layanan memutuskan apakah akan menerapkan passes heuristik Qiskit standar atau AI-powered passes berdasarkan Circuit kamu.qiskit_transpile_options(dict) - Objek dictionary Python yang bisa menyertakan opsi lain yang valid dalam metodetranspile()Qiskit. Jikaqiskit_transpile_optionsmenyertakanoptimization_level, nilainya akan diabaikan demioptimization_levelyang ditentukan sebagai parameter input. Jikaqiskit_transpile_optionsmenyertakan opsi yang tidak dikenali oleh metodetranspile()Qiskit, library akan memunculkan error.
Untuk informasi lebih lanjut tentang metode qiskit-ibm-transpiler yang tersedia, lihat referensi API qiskit-ibm-transpiler. Untuk mempelajari lebih lanjut tentang API layanan, lihat dokumentasi REST API Qiskit Transpiler Service.
Contoh​
Contoh-contoh berikut menunjukkan cara mentranspilasi Circuit menggunakan Qiskit Transpiler Service dengan berbagai parameter.
- Buat sebuah Circuit dan panggil Qiskit Transpiler Service untuk mentranspilasi Circuit tersebut dengan
ibm_torinosebagaibackend_name, 3 sebagaioptimization_level, dan tanpa menggunakan AI selama transpilasi.
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)
Catatan: kamu hanya bisa menggunakan perangkat backend_name yang bisa kamu akses dengan akun IBM Quantum kamu. Selain backend_name, TranspilerService juga memperbolehkan coupling_map sebagai parameter.
- Buat Circuit serupa dan transpilasikan, dengan meminta kemampuan transpilasi AI dengan mengatur flag
aikeTrue:
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)
- Buat Circuit serupa dan transpilasikan sambil membiarkan layanan memutuskan apakah akan menggunakan AI-powered transpiling passes.
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)
Batasan Qiskit Transpiler Service​
Berikut adalah batasan-batasan layanan yang paling relevan:
- Jumlah maksimum two-qubit gates per Circuit dalam satu pekerjaan transpilasi dalam mode
aiapa pun adalah 1 juta. - Waktu maksimum yang diizinkan untuk menjalankan proses transpilasi adalah 30 menit per pekerjaan.
- Kamu harus mengambil hasil transpilasi dari layanan dalam 20 menit setelah proses transpilasi selesai. Setelah 20 menit, hasil pekerjaan akan dihapus.
- Waktu maksimum sekumpulan Circuit bisa berada dalam antrean internal sambil menunggu untuk ditranspilasi adalah 120 menit. Setelah waktu itu, jika pekerjaan belum ditranspilasi, pekerjaan tersebut akan dihapus.
- Jumlah maksimum Qubit belum ditentukan. Layanan ini telah diuji pada 900+ Qubit.
Kutipan​
Jika kamu menggunakan fitur berbasis AI apa pun dari Qiskit Transpiler Service dalam penelitianmu, gunakan kutipan yang disarankan berikut:
@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},
}
Langkah berikutnya​
- Pelajari cara membuat AI transpiler passes.
- Pelajari cara mentranspilasi Circuit sebagai bagian dari alur kerja pola Qiskit menggunakan Qiskit Runtime.
- Tinjau dokumentasi Qiskit Transpiler Service Python client.