Sari la conținutul principal

Introducere în Qiskit

Numele „Qiskit" este un termen general care se referă la o colecție de software pentru executarea programelor pe calculatoare cuantice. Cel mai notabil dintre aceste instrumente software este SDK-ul Qiskit open-source și mediul de execuție (accesat prin Qiskit Runtime) prin care poți executa sarcini de lucru pe unități de procesare cuantică (QPU) IBM®. Pe măsură ce tehnologia cuantică evoluează, evoluează și Qiskit, cu noi capabilități lansate în fiecare an care extind această colecție de bază de software cuantic.

În plus, multe proiecte open-source fac parte din ecosistemul mai larg Qiskit. Aceste instrumente software nu sunt parte din Qiskit în sine, ci interfațează cu Qiskit și pot oferi funcționalitate suplimentară valoroasă.

IBM este angajat față de dezvoltarea responsabilă a calculului cuantic. Află mai multe și consultă principiile noastre de responsabilitate cuantică în secțiunea Calculul cuantic responsabil.

SDK-ul Qiskit

SDK-ul Qiskit (numele pachetului qiskit) este un SDK open-source pentru lucrul cu calculatoare cuantice la nivelul circuitelor cuantice extinse (statice, dinamice și programate), al operatorilor și al primitivelor. Această bibliotecă este componenta de bază a Qiskit; este cel mai mare pachet sub numele Qiskit, cu cea mai largă suită de instrumente pentru calculul cuantic, și multe alte componente interfațează cu ea.

Unele dintre cele mai utile funcționalități ale SDK-ului Qiskit includ:

  • Instrumente pentru construirea Circuit-urilor (qiskit.circuit) - Pentru inițializarea și manipularea registrelor, circuitelor, instrucțiunilor, Gate-urilor, parametrilor și obiectelor de control al fluxului.

  • Biblioteca de Circuit-uri (qiskit.circuit.library) - O gamă vastă de circuite, instrucțiuni și Gate-uri — elemente de construcție esențiale pentru calculele cuantice bazate pe Circuit.

  • Biblioteca de informații cuantice (qiskit.quantum_info) - Un set de instrumente pentru lucrul cu stări cuantice, operatori și canale, folosind calcule exacte (fără zgomot de eșantionare). Folosește acest modul pentru a specifica observabile de intrare și a analiza fidelitatea rezultatelor din interogările primitivelor.

  • Transpiler (qiskit.transpiler) - Pentru transformarea și adaptarea circuitelor cuantice pentru a se potrivi topologiei specifice a dispozitivului și pentru optimizarea execuției pe unități de procesare cuantică (QPU) reale.

  • Primitive (qiskit.primitives) - Modulul care conține definițiile de bază și implementările de referință ale primitivelor Sampler și Estimator, din care diferiți furnizori de hardware cuantic pot deriva propriile implementări. Află mai multe informații despre primitivele Qiskit Runtime în documentație.

Instalare

Pentru o introducere mai detaliată despre instalarea SDK-ului Qiskit, consultă pagina de instalare. Dacă ești gata să îl instalezi acum, rulează pur și simplu:

pip install qiskit

Benchmarking și pachetul Benchpress

Benchmarking-ul este important pentru compararea performanței relative a software-ului cuantic în diferite etape ale unui flux de lucru de dezvoltare. Testele de benchmarking pentru software-ul cuantic ar putea, de exemplu, să evalueze viteza și calitatea construirii, manipulării și transpilării circuitelor. IBM Quantum este angajat să livreze cel mai performant SDK posibil și, în acest scop, SDK-ul Qiskit este evaluat prin benchmarking folosind peste 1.000 de teste dezvoltate de universități de top, laboratoare naționale și cercetători de la IBM. Suita de benchmarking utilizată pentru aceste teste, numită Benchpress, este acum disponibilă ca pachet open-source. Poți folosi acum pachetul Benchpress pentru a efectua propria analiză a performanței SDK-ului cuantic.

Qiskit Runtime

Qiskit Runtime este un serviciu cloud pentru executarea calculelor cuantice pe hardware-ul IBM Quantum®. Pachetul qiskit-ibm-runtime este un client pentru acel serviciu și este succesorul furnizorului IBM Qiskit. Serviciul Qiskit Runtime simplifică calculele cuantice și oferă implementări optime ale primitivelor Qiskit pentru hardware-ul IBM Quantum. Pentru a începe cu primitivele Qiskit Runtime, vizitează documentația.

Qiskit Runtime este conceput să utilizeze resurse suplimentare de calcul clasic și cuantic, inclusiv tehnici precum suprimarea erorilor și atenuarea erorilor, pentru a returna un rezultat de calitate superioară din executarea circuitelor cuantice pe procesoare cuantice. Exemple includ decuplarea dinamică pentru suprimarea erorilor și atenuarea citirilor și extrapolarea zero-zgomot (ZNE) pentru atenuarea erorilor. Află cum să configurezi aceste opțiuni pe pagina Configurarea atenuării erorilor.

Qiskit Runtime include, de asemenea, trei tipuri de moduri de execuție pentru rularea programului tău cuantic pe hardware IBM: Job, Session și Batch, fiecare cu cazuri de utilizare diferite și implicații diferite pentru coada de sarcini cuantice. Un Job este o singură interogare a unei primitive care poate fi rulată pe un număr specificat de execuții. Session-urile îți permit să rulezi eficient mai multe job-uri în sarcini de lucru iterative pe calculatoare cuantice. Modul Batch îți permite să trimiți toate job-urile odată pentru procesare paralelă. Rețineți că utilizatorii planului Open nu pot trimite job-uri în session.

Pentru a instala rapid Qiskit Runtime, rulează următoarea comandă:

pip install qiskit-ibm-runtime

Mai multe detalii despre configurarea unui mediu de dezvoltare pentru construirea programelor cuantice pot fi găsite pe pagina de instalare.

Este Qiskit Runtime open-source?

Răspunsul scurt este: nu în totalitate. Software-ul serviciului Qiskit Runtime care gestionează aspectele tehnice ale rulării programului tău cuantic pe un dispozitiv IBM Quantum (inclusiv orice atenuare și suprimare a erorilor) nu este open-source. Cu toate acestea, clientul Qiskit Runtime (interfața pentru utilizatori de a accesa serviciul Qiskit Runtime), SDK-ul Qiskit care rulează pe server și o parte din software-ul utilizat pentru atenuarea erorilor sunt open-source. Pentru a te implica în eforturile open-source Qiskit, vizitează organizația noastră de pe GitHub la github.com/Qiskit și github.com/Qiskit-Extensions.

Qiskit Serverless

Crearea de aplicații cuantice la scară utilă necesită în general o varietate de cerințe privind resursele de calcul. Qiskit Serverless (qiskit-ibm-catalog.QiskitServerless) oferă o interfață simplă pentru rularea sarcinilor de lucru pe resurse cuantic-clasice. Aceasta include implementarea programelor pe IBM Quantum Platform și rularea sarcinilor de lucru de la distanță, precum și gestionarea ușoară a resurselor pentru cazuri de utilizare multi-cloud și supercomputing centrat pe cuantic. Află mai multe informații în documentația Qiskit Serverless despre cum să folosești această colecție de instrumente pentru a:

  • Paraleliza sarcini clasice, cum ar fi pre-procesarea și post-procesarea
  • Persista sarcini de lucru de lungă durată în cloud, chiar dacă laptopul tău este oprit
  • Implementa programe reutilizabile în cloud

Pentru a începe să folosești Qiskit Serverless imediat, instalează-l cu pip:

pip install qiskit_serverless

Qiskit Functions

Qiskit Functions (qiskit-ibm-catalog.QiskitFunctionsCatalog) sunt servicii abstractizate concepute pentru a accelera descoperirea algoritmilor și prototiparea aplicațiilor. Explorează Catalogul Qiskit Functions, inclusiv:

  • Funcții de Circuit: Servicii care includ transpilare, suprimare a erorilor, atenuare a erorilor și tehnici de post-procesare care iau ca intrare circuite abstracte și observabile de măsurare dorite. Cu funcțiile de Circuit, utilizatorii pot descoperi noi algoritmi și aplicații fără a fi nevoie să gestioneze transpilarea sau performanța hardware-ului cuantic.
  • Funcții de aplicație: Servicii care includ fluxuri de lucru cuantice complete, de la maparea clasicului la cuantic, optimizarea pentru hardware, execuția pe hardware și post-procesarea. Utilizatorii pot prototipa aplicații industriale cu intrări și ieșiri familiare domeniului.

Membrii planului Premium, Flex și On-Prem (prin API-ul IBM Quantum Platform) pot accesa imediat funcțiile furnizate de IBM sau pot achiziționa licențe pentru funcțiile furnizate de parteneri direct de la acei parteneri.

Catalogul poate fi instalat cu pip:

pip install qiskit-ibm-catalog

Qiskit Transpiler Service

Qiskit Transpiler Service (numele pachetului qiskit-ibm-transpiler) este un nou serviciu experimental care oferă capabilități de transpilare la distanță în cloud pentru utilizatorii din planul IBM Quantum Premium, Flex și On-Prem (prin API-ul IBM Quantum Platform). Pe lângă capabilitățile locale ale Transpiler-ului SDK Qiskit, sarcinile tale de transpilare pot beneficia atât de resursele cloud IBM Quantum, cât și de trecerile de Transpiler alimentate de AI folosind acest serviciu. Pentru a afla mai multe despre cum să integrezi transpilarea bazată pe cloud în fluxul tău de lucru Qiskit, poți consulta documentația.

Serviciul de transpilare poate fi instalat cu pip:

pip install qiskit-ibm-transpiler

Extensii Qiskit (addons)

Extensiile Qiskit sunt o colecție de capabilități de cercetare pentru descoperirea algoritmilor la scară utilă. Aceste capabilități se construiesc pe fundația performantă a instrumentelor Qiskit pentru crearea și rularea algoritmilor cuantici. Extensiile sunt componente software modulare care se conectează la un flux de lucru pentru a scala sau proiecta noi algoritmi cuantici. Pentru a afla mai multe despre setul de extensii Qiskit disponibile și cum să începi să le folosești, vizitează documentația.

Există mai multe extensii în funcție de capabilitatea de cercetare care te interesează. Fiecare dintre ele poate fi instalată cu pip.

Diagonalizare cuantică bazată pe eșantionare (SQD):

pip install qiskit-addon-sqd

Compilare cuantică aproximativă (AQC):

pip install qiskit-addon-aqc-tensor[quimb-jax]

Retropropagarea operatorilor (OBP):

pip install qiskit-addon-obp

Formule multi-produs (MPF):

pip install qiskit-addon-mpf

Ecosistemul Qiskit

Dincolo de Qiskit, există multe proiecte open-source care folosesc numele „Qiskit" dar nu fac parte din Qiskit în sine; mai degrabă, ele interfațează cu Qiskit și pot oferi funcționalitate suplimentară valoroasă pentru a completa fluxul de lucru de bază Qiskit. Unele dintre aceste proiecte sunt menținute de echipele IBM Quantum, în timp ce altele sunt susținute de comunitatea mai largă open-source. SDK-ul Qiskit este conceput într-un mod modular și extensibil pentru a facilita crearea de proiecte ca acestea de către dezvoltatori, care îi extind capabilitățile.

Câteva proiecte populare din ecosistemul Qiskit includ:

  • Qiskit Aer (qiskit-aer) - un pachet pentru simulatoare de calcul cuantic cu modele de zgomot realiste. Oferă interfețe pentru rularea circuitelor cuantice cu sau fără zgomot folosind mai multe metode de simulare diferite. Menținut de IBM Quantum.
  • qBraid SDK (qbraid) - un framework de execuție cuantică agnostic față de platformă, atât pentru furnizori de software, cât și de hardware cuantic, conceput pentru a simplifica gestionarea completă a ciclului de viață al job-urilor cuantice — de la definirea specificațiilor programului până la trimiterea job-ului și până la post-procesarea și vizualizarea rezultatelor. Menținut de qBraid.
  • mthree mthree - un pachet pentru implementarea M3 (Atenuarea Măsurătorilor fără Matrice), o tehnică de atenuare a măsurătorilor care rezolvă probabilitățile de măsurare corectate folosind un pas de reducere a dimensionalității urmat fie de factorizare LU directă, fie de o metodă iterativă precondiționate care converge nominal în O(1) pași și poate fi calculată în paralel. Menținut de IBM Quantum.

Poți găsi un catalog de proiecte pe pagina ecosistemului Qiskit, precum și informații despre cum să nominalizezi propriul tău proiect.

Pașii următori

Recomandări
  • Află despre biblioteca de circuite și instrucțiuni disponibilă în biblioteca de Circuit-uri Qiskit.
  • Citește despre Transpiler-ul Qiskit și multele opțiuni de transpilare în secțiunea Transpiler.
  • Descoperă cum să folosești primitivele Qiskit pentru a simplifica programarea cuantică.