Mulakan akaun perkhidmatan Qiskit Runtime anda
Sebelum menggunakan Qiskit Runtime, anda perlu memulakan (menjana contoh) akaun anda dengan menghantar (memuatkan) kelayakan. Kelayakan ini boleh dihantar secara manual setiap kali anda memulakan perkhidmatan Qiskit Runtime, atau anda boleh menyimpannya untuk digunakan semula.
- Jika anda menggunakan komputer awam atau persekitaran yang tidak dipercayai yang lain, ikuti arahan dalam Mulakan perkhidmatan dalam persekitaran yang tidak dipercayai.
- Ikuti arahan ini jika anda ingin menyambung menggunakan REST API dan bukannya menggunakan Qiskit.
- Jika perlu, gunakan maklumat ini untuk mengkonfigurasi tembok api anda bagi membolehkan akses ke titik akhir API IBM Quantum.
Sebelum anda mulaβ
Pastikan anda telah menyelesaikan langkah-langkah berikut:
- Pastikan anda adalah ahli akaun IBM Cloud. Lihat Sediakan akaun IBM Cloud anda untuk arahan.
- Cipta (atau mempunyai akses kepada) sekurang-kurangnya satu instans. Ikuti langkah-langkah ini untuk mengesahkan:
- Log masuk ke IBM Quantum Platform.
- Pastikan akaun dan rantau yang betul dipilih dalam penukar akaun di pengepala.
- Jika anda mempunyai satu atau lebih instans yang ditunjukkan, anda telah selesai dengan langkah ini. Jika tidak, cipta instans.
- Pastikan anda bekerja dalam persekitaran Python yang aktif dengan SDK Qiskit dan Qiskit Runtime dipasang.
- Aktifkan persekitaran maya Python dan jalankan Python dalam persekitaran maya anda.
Cari kelayakan akses andaβ
- Cari kunci API anda (juga dirujuk sebagai token API). Dari papan pemuka, cipta kunci API anda, kemudian salin ke lokasi selamat supaya anda boleh menggunakannya untuk pengesahan jati diri. Token tidak akan dapat dilihat lagi. Perhatikan bahawa anda boleh menggunakan satu kunci API untuk menyambung ke mana-mana rantau.
- Pilihan: Cari instans yang ingin anda gunakan dari halaman Instans. Arahkan kursor ke atas CRN-nya, klik ikon untuk menyalinnya, kemudian simpan di lokasi selamat supaya anda boleh menggunakannya untuk mengenal pasti instans.
Sambungkan Qiskit dengan contoh perkhidmatan Qiskit Runtime andaβ
Arahan ini direka untuk qiskit_ibm_runtime v0.42 atau lebih baharu. Sesetengah ciri tidak diaktifkan dalam versi qiskit_ibm_runtime yang lebih lama. Dalam kes ini, anda harus sentiasa memberikan nilai untuk channel, token, dan instance, sama ada secara eksplisit atau melalui akaun yang disimpan.
Kod asas untuk menyambungkan Qiskit dengan contoh perkhidmatan Qiskit Runtime anda adalah seperti berikut. Walau bagaimanapun, terdapat beberapa cara berbeza untuk menyesuaikan pilihan QiskitRuntimeService, bergantung pada keperluan anda. Pilihan ini diterangkan dalam bahagian berikut.
from qiskit_ibm_runtime import QiskitRuntimeService
service = QiskitRuntimeService(channel=<channel>,
token=<your-API_KEY>, # Use the 44-character API_KEY you created and saved from the IBM Quantum Platform Home dashboard
instance=<instance_CRN>)
Saluran lalai adalah ibm_quantum_platform. Oleh kerana ini hampir selalu merupakan saluran yang sesuai, ia tidak dimasukkan dalam contoh-contoh.
Laluan permulaan pantas: Tentukan kelayakan secara eksplisitβ
Cara paling pantas untuk mendapatkan contoh QiskitRuntimeService yang berjalan adalah kaedah instansi terus: berikan token API (kunci) dan CRN (pengecam instans) secara eksplisit setiap kali anda perlu memulakan perkhidmatan Qiskit Runtime. Lihat Cari kelayakan akses anda jika perlu.
from qiskit_ibm_runtime import QiskitRuntimeService
service = QiskitRuntimeService(token=<cloud_api_key>, # Use the 44-character API_KEY you created and saved from the IBM Quantum Platform Home dashboard
instance=<instance_CRN>)
Laluan ini boleh dipercayai tetapi boleh membosankan jika anda perlu memuatkan butiran yang sama berulang kali. Untuk mengelakkan memuatkan kelayakan beberapa kali, jika anda bekerja dalam persekitaran Python yang dipercayai (seperti pada komputer riba atau stesen kerja peribadi), anda boleh menggunakan kelayakan akaun yang disimpan, seperti yang diterangkan dalam bahagian berikut.
Walaupun parameter input instance adalah pilihan, adalah disyorkan agar anda sentiasa memberikan maklumat ini, melainkan anda ingin menggunakan satu perkhidmatan untuk bekerja dengan beberapa instans. Dalam situasi ini, lihat bahagian pemilihan instans automatik.
Laluan permulaan pantas: Tentukan kelayakan yang disimpanβ
Jika anda telah menyimpan kelayakan anda, gunakan kod berikut untuk menggunakan kelayakan lalai anda. Untuk arahan menyimpan kelayakan, lihat Simpan kelayakan akses anda.
from qiskit_ibm_runtime import QiskitRuntimeService
# run every time you need the service
service = QiskitRuntimeService()
...
Jika anda menamakan satu atau lebih set kelayakan - sebagai contoh, untuk akses terbuka dan premium - gunakan kod berikut untuk menggunakan set kelayakan yang dinamakan.
from qiskit_ibm_runtime import QiskitRuntimeService
# run every time you need the service
service = QiskitRuntimeService(name="<name_of_saved_credentials>")
...
Pertimbangan apabila memuatkan kelayakan yang disimpanβ
-
Jika anda memulakan perkhidmatan dengan
tokendanname,tokendiabaikan dan butiran yang disimpan dari akaunnamedimuatkan.Dalam contoh berikut, perkhidmatan memuatkan butiran dari
account_Adan tidak menggunakantoken_B:from qiskit_ibm_runtime import QiskitRuntimeService
service = QiskitRuntimeService(token="token_B", name="account_A") -
Jika anda memberikan
namedaninstanceapabila memulakan perkhidmatan, perkhidmatan cuba memuatkan akaunnamedan menyambung keinstanceyang ditentukan. Jika terdapat konflik, amaran akan dikeluarkan.Dalam contoh berikut, perkhidmatan cuba memuatkan kelayakan untuk
account_Adan menggunakan instansCRN_B- walaupun terdapat instans berbeza yang ditentukan dalamaccount_A:from qiskit_ibm_runtime import QiskitRuntimeService
service = QiskitRuntimeService(instance="CRN_B", name="account_A") -
Perkhidmatan cuba memuatkan akaun yang disimpan lalai hanya jika anda tidak memberikan
tokenataunameapabila memulakan perkhidmatan. Walau bagaimanapun, jikainstancediberikan secara eksplisit, perkhidmatan cuba menyambung ke instans tersebut menggunakan kelayakan lalai. Jika terdapat konflik, amaran akan dikeluarkan.Dalam contoh berikut, perkhidmatan cuba memuatkan kelayakan lalai dan menggunakan instans
CRN_B- walaupun terdapat instans berbeza yang ditentukan dalam akaun lalai:from qiskit_ibm_runtime import QiskitRuntimeService
service = QiskitRuntimeService(instance="CRN_B") -
Jika anda menyimpan beberapa set kelayakan tetapi tidak menentukan satu apabila memulakan perkhidmatan dan tiada akaun lalai yang disimpan, kelayakan yang namanya terakhir mengikut abjad digunakan.
Dalam contoh berikut, pengguna menyimpan akaun bernama "my_premium" dan "my_open" tetapi tidak menanda sama ada sebagai lalai. Mereka kemudian memulakan perkhidmatan menggunakan kod berikut. Dalam kes ini, kelayakan "my_premium" digunakan:
from qiskit_ibm_runtime import QiskitRuntimeService
service = QiskitRuntimeService() -
Jika anda terus mendapat ralat "401 Tidak Dibenarkan", anda mungkin cuba menggunakan token pembawa dan bukannya kunci API anda.
Pilih instans secara automatikβ
Jika anda memberikan token tetapi tidak memberikan CRN instans apabila menjana contoh perkhidmatan, QiskitRuntimeService mengesahkan jati diri ke akaun yang dikenal pasti oleh token dan menggunakan pemilihan instans automatik untuk memilih instans yang paling relevan untuk tugas yang diminta. Jika anda mempunyai beberapa instans yang tersedia dalam akaun anda, perkhidmatan secara automatik memilih dari instans yang tersedia, bergantung pada sumber yang diminta dan pilihan QiskitRuntimeService ini (jika ditetapkan): plans_preference, region, tags.
plans_preference: Jenis pelan instans untuk diutamakan. Sebagai contoh, jika [open] dimasukkan, hanya instans Pelan Terbuka yang tersedia. Nilai yang diterima adalahopen,premium,pay-as-you-go,flex, danon-prem. Jikaplans_preferencetidak ditentukan, pelan percuma diutamakan berbanding pelan berbayar.region: Rantau instans. Nilai yang diterima adalahus-eastdaneu-de.tags: Tag instans. Menerima senarai rentetan nama tag.
Anda boleh menyediakan kelayakan yang disimpan untuk memilih instans secara automatik.
Instans ditemui dan digunakan dalam urutan ini:
- Jika akaun anda hanya mempunyai akses kepada satu instans, instans tersebut dipilih secara lalai.
- Jika kelayakan yang disimpan digunakan dan instans telah ditentukan dengan kelayakan tersebut, instans itu digunakan. Lihat Pertimbangan apabila memuatkan kelayakan yang disimpan.
- Jika akaun anda mempunyai beberapa instans yang boleh mengakses QPU yang diminta, sistem menggunakan keutamaan pelan yang anda tentukan untuk memilih pelan dan instans. Untuk Qiskit Runtime v0.42 dan lebih baharu, pelan percuma diutamakan secara lalai.
- Jika akaun anda mempunyai akses ke beberapa instans tetapi hanya satu yang boleh mengakses QPU yang diminta, instans yang mempunyai akses dipilih. Jika instans ini tidak dikaitkan dengan pelan percuma, kos akan ditanggung.
Contohβ
Dalam contoh ini, perkhidmatan mencari semua instans yang tersedia untuk akaun bagi mencari yang boleh mengakses Backend yang ditentukan:
service = QiskitRuntimeService(token=<your-API_KEY>)
Dalam contoh ini, perkhidmatan mencari semua instans yang tersedia untuk akaun di rantau EU bagi mencari yang boleh mengakses Backend yang ditentukan:
service = QiskitRuntimeService(token=<your-API_KEY>, region="eu-de")
Dalam contoh ini, perkhidmatan mencari semua instans yang tersedia untuk akaun dan ditag sebagai services bagi mencari yang boleh mengakses Backend yang ditentukan:
service = QiskitRuntimeService(token=<your-API_KEY>, tags=['services'])
Dalam contoh ini, perkhidmatan mencari semua instans premium dan terbuka yang tersedia untuk akaun bagi mencari yang boleh mengakses Backend yang ditentukan. Jika Backend terdapat dalam instans Pelan Premium dan Terbuka, instans Pelan Premium diutamakan kerana premium ditentukan dahulu dalam plans_preference.
service = QiskitRuntimeService(token=<your-API_KEY>, plans_preference=['premium', 'open'])
Tentukan instans mana yang dipilihβ
Instans yang dipilih dikembalikan sebagai amaran. Selain itu, anda boleh menjalankan service.active_instance() untuk menentukan instans yang aktif.
Ujian tempatan dengan Qiskit Runtimeβ
Kelas QiskitRuntimeService boleh dimulakan dengan channel=local untuk melakukan simulasi tempatan. Dalam kes ini, pengesahan jati diri tidak diperlukan dan tiada keperluan untuk memberikan nilai untuk token atau instance. Oleh itu, adalah tidak disyorkan untuk menyimpan akaun tempatan. Sebaliknya, anda boleh melakukan instansi terus:
from qiskit_ibm_runtime import QiskitRuntimeService
# Initialize for local testing
service = QiskitRuntimeService(channel="local")
Langkah seterusnyaβ
- Cipta dan urus instans.
- Mulakan perkhidmatan dalam persekitaran yang tidak dipercayai.
- Sediakan untuk menggunakan IBM Quantum Platform dengan REST API.
- Ikuti langkah-langkah dalam Hello world untuk menulis dan menjalankan program kuantum.