Ohjelmointi

Amazon Braket: Aloita kvanttilaskennalla

Vaikka IBM, Microsoft ja Google ovat tehneet merkittäviä sitoumuksia ja investointeja kvanttilaskentaan, Amazon on viime aikoihin asti ollut melko hiljainen kentästä. Se muuttui Amazon Braketin käyttöönoton myötä.

Amazon ei vieläkään yritä rakentaa omia kvanttitietokoneitaan, mutta Braketin kanssa se asettaa muiden yritysten kvanttitietokoneet pilvikäyttäjien saataville AWS: n kautta. Braket tukee tällä hetkellä kolmea kvanttilaskentapalvelua, D-Wave, IonQ ja Rigetti.

[Myös: käytännönläheinen kuvaus Microsoft Quantum Development Kit -sarjasta sekä IBM Q- ja Qiskit-kvanttilaskennan SDK: t]

D-Wave valmistaa suprajohtavia kvanttihehkutuslaitteita, jotka ohjelmoidaan yleensä D-Wave Ocean -ohjelmistolla, vaikka Braket SDK: ssa on myös hehkutusmoduuli. IonQ tekee loukkuun jääneitä ionikvanttiprosessoreita ja Rigetti suprajohtavia kvanttiprosessoreita. Braketissa voit ohjelmoida sekä IonQ- että Rigetti-prosessorit Braket Python SDK -piirimoduulin avulla. Sama koodi toimii myös paikallisilla ja isännöityillä kvanttisimulaattoreilla.

Nimi Braket on eräänlainen vitsi fyysikoille. Bra-ket-notaatio on kvanttimekaniikan Dirac-muotoilu, joka on helpompi tapa ilmaista Schrödingerin yhtälö kuin osittaiset differentiaaliyhtälöt. Dirac-merkinnässä rintaliivit <> on rivivektori ja ket | f> on sarakevektori. Rintaliivin kirjoittaminen ketjun viereen tarkoittaa matriisin kertomista.

Amazon Braket ja Braket Python SDK kilpailevat IBM Q: n ja Qiskitin, Azure Quantumin ja Microsoft Q #: n sekä Google Cirqin kanssa. IBM: llä on jo omat kvanttitietokoneet ja simulaattorit, jotka ovat yleisön saatavilla verkossa. Microsoftin simulaattori on yleisesti saatavilla, mutta sen kvanttitarjoukset ovat tällä hetkellä rajoitetusti esikatseltavissa varhaisessa vaiheessa käyttöön ottajille, mukaan lukien pääsy kvanttitietokoneisiin Honeywellin, IonQ: n ja Quantum Circuitsin alueelta sekä optimointiratkaisut 1QBitiltä. Microsoft ei ole ilmoittanut, milloin sen omat topologiset suprajohtavat kvanttitietokoneet tulevat saataville, eikä Google ole ilmoittanut, milloin se asettaa kvanttitietokoneensa tai Sycamore-sirunsa yleisön saataville.

Amazon Braketin yleiskatsaus

Amazon Braket on täysin hallittu palvelu, joka auttaa sinua aloittamaan kvanttilaskennan. Siinä on kolme moduulia, Build, Test ja Run. Build-moduuli keskittyy hallittuihin Jupyter-kannettaviin tietokoneisiin, jotka on valmiiksi konfiguroitu näytealgoritmeilla, resursseilla ja kehittäjätyökaluilla, mukaan lukien Amazon Braket SDK. Testimoduuli tarjoaa pääsyn hallittuihin, tehokkaisiin kvanttipiirisimulaattoreihin. Run-moduuli tarjoaa turvallisen, on-demand-pääsyn erityyppisiin kvanttitietokoneisiin (QPU): porttipohjaisiin kvanttitietokoneisiin IonQ: lta ja Rigettille ja kvantti-annealerille D-Wave-laitteista.

Tehtävät eivät välttämättä toimi heti QPU: lla. QPU: t suorittavat tehtäviä vain suoritusikkunoiden aikana.

Amazon Braket SDK -sovellusliittymä

Braket Python SDK määrittelee kaikki toiminnot, joita tarvitset kvanttipiirien ja hehkutuslaitteiden rakentamiseen, testaamiseen ja suorittamiseen. Se on jaettu viiteen pakettiin: braket.annealing, braket.aws, braket.circuits, braket.devices ja braket.tasks.

Braket.annealing-paketin avulla voit määritellä kahdenlaisia ​​binäärisiä neliöllisiä malleja (BQM): Ising (matemaattinen ferromagnetismin malli tilastollisessa mekaniikassa, käyttäen atomien "pyörien" magneettisia dipolimomentteja) ja QUBO (Quadratic Unconstrained Binary Optimization) -ongelmat, ratkaisemaan kvantti-annealerilla, kuten D-Wave-yksiköllä. Braket.circuits-paketin avulla voit määrittää porttijoukkoon perustuvat kvanttipiirit ratkaistaviksi porttipohjaisissa kvanttitietokoneissa, kuten IonQ: n ja Rigettin tietokoneissa.

Kolme muuta pakettia hallitsevat ongelmasi etenemistä. Braket.aws-paketin avulla voit valita kvanttilaitteita, ladata ongelmia tehtäviin ja liittää tehtäviä AWS-istuntoihin. Braket.devices-paketin avulla voit suorittaa tehtäviä kvanttilaitteilla ja simulaattoreilla. Braket.tasks-paketin avulla voit hallita, seurata, peruuttaa ja saada tuloksia kvanttitehtävistä.

Amazon Braketin piirit ja portit

Kvanttitietokoneen piirit, kuten IonQ: n tai Rigettin (tai IBM: n tai Honeywellin), rakennetaan tavallisista porttisarjoista (katso alla oleva kuva), vaikka kaikilla QPU: lla ei ehkä ole minkäänlaista porttia. . Braket SDK: ssa määritetään piiri käyttämällä Piiri() menetelmä braket.circuits-paketista, jonka piirin portit ja niiden parametrit pätevät.

Esimerkiksi tämä Braket-koodi (Amazonin Deep_dive_into_the_anatomy_of_quantum_circuits -esimerkistä) määrittelee piirin, joka alustaa neljä kubitia Hadamard-tilaan (yhtä suuri todennäköisyys 1 ja 0), ja sitten kietoo kiintolevyn 2 kubitilla 0 ja kubitilla 3 kiintolevyllä 1 käyttämällä ohjattuja toimintoja.

# määritä piiri, jossa on 4 kvittiä

my_circuit = piiri (). h (alue (4)). cnot (kontrolli = 0, kohde = 2). solmu (kontrolli = 1, kohde = 3)

Braket SDK: lla näyttää olevan melkein täydellinen joukko kvanttiloogisia portteja, kuten tässä Portti luokassa. En näe Deutsch-porttia luettelossa, mutta sikäli kuin tiedän, sitä ei ole vielä toteutettu todellisessa QPU: ssa.

# tulosta kaikki SDK: lla tällä hetkellä saatavilla olevat portit

gate_set = [attr attrille dir (portti) jos attr [0] merkkijonossa.ascii_uppercase]

tulosta (gate_set)

['CCNot', 'CNot', 'CPhaseShift', 'CPhaseShift00', 'CPhaseShift01', 'CPhaseShift10', 'CSwap', 'CY', 'CZ', 'H', 'I', 'ISwap', ' PSwap ',' PhaseShift ',' Rx ',' Ry ',' Rz ',' S ',' Si ',' Vaihda ',' T ',' Ti ',' Unitary ',' V ',' Vi ' , 'X', 'XX', 'XY', 'Y', 'YY', 'Z', 'ZZ']

Rxtreme (CC BY-SA 4.0)

D-Wave-valtameri

Ocean on natiivi Python-pohjainen ohjelmistopino D-Wave-kvanttihehkutuslaitteille. Braketin kautta käytettäväksi voit yhdistää Ocean-ohjelmiston Amazon Braket Ocean -laajennukseen, joka kääntää Ocean- ja Braket-muodot.

Kvanttianturit toimivat aivan eri tavalla kuin porttipohjaiset QPU: t. Pohjimmiltaan muotoilet ongelmasi binäärisenä kvadraattimallina (BQM), jolla on globaali minimi löydettävässä ratkaisussa. Sitten käytät hehkutuslaitetta ottaaksesi toiminnon monta kertaa (koska hehkutuslaite ei ole täydellinen) löytääksesi vähimmäismäärän. Voit luoda tietylle ongelmalle BQM: n matemaattisesti tai luoda BQM: n Ocean-ohjelmistolla. Seuraava koodi, Amazonin D-Wave_Anatomy -esimerkistä, käyttää Braket Ocean -laajennusta DQ-laitteen BQM: n ratkaisemiseen.

# asetettua parametria

lukumäärä = 1000

# määritä BQM

bqm = dimod.BinaryQuadraticModel (lineaarinen, neliöllinen, offset, vartype)

# suorita BQM: ratkaise D-Wave-laitteella

sampler = BraketDWaveSampler (s3_kansio, 'arn: aws: braket ::: laite / qpu / d-wave / DW_2000Q_6')

sampler = EmbeddingComposite (sampleri)

näytesarja = sampler.sample (bqm, num_reads = num_reads)

# yhdistelmäratkaisu:

näytesarja = näytesarja.aggregate ()

D-Wave-järjestelmät

Amazon Braketin käyttöönotto ja muistikirjojen käyttö

Ennen kuin voit käyttää Braketiä, sinun on otettava se käyttöön AWS-tililläsi.

Sitten sinun on luotava muistikirjan ilmentymä. Muistikirjat käyttävät Amazon SageMakeria (lue arvostelu).

Kun avaat muistikirjan, voit kirjoittaa uuden koodin tai käyttää yhtä Amazonin esimerkistä.

Sinun on tarkistettava QPU-laitteiden tila, koska ne eivät ole aina käytettävissä.

Vaikka voit käyttää niitä itse, Braketin esimerkkikannettavat on tallennettu edellisen ajon tuloksilla.

On olemassa esimerkkejä sekä porttipohjaisista QPU: sta, kuten yllä, että kvantti-anneaattoreista, kuten alla.

Opi tänään, hyödyllinen huomenna

Amazon Braket on kohtuullinen tapa kastaa jalkasi kvanttitietokoneilla ja simulaattoreilla. Koska olemme edelleen kvanttilaskennan NISQ (Noisy Intermediate Scale Quantum) -vaiheessa, et voi odottaa hyödyllisiä tuloksia Braketilta. Tarvitsemme enemmän kubitteja, vähemmän melua ja pidempiä koherenssiaikoja, joita kaikkia tutkitaan aktiivisesti.

Braketin nykyiset QPU-tarjoukset ovat vaatimattomia. 2048 kbit: n D-Wave-annealer on enimmäkseen hyödyllinen optimointiongelmiin; se on noin puolet D-Waven uusimman sukupolven hehkutuskoneen koosta. 11-bittinen IonQ QPU, jolla on suhteellisen pitkät koherenssiajat, on tapa liian pieni toteuttamaan algoritmeja kvanttitietokoneille, joilla pitäisi olla hyödyllinen kvantti-ylivalta, kuten Groverin algoritmi funktion käänteisen löytämiseksi ja Shorin algoritmi kokonaisluvun alkutekijöiden löytämiseksi. 30-bittinen Rigetti Aspen-8 on myös liian pieni.

Jarru ei ole ilmainen, vaikka sitä onkin suhteellisen halpaa käyttää. Vertailun vuoksi voidaan todeta, että IBM Q on täysin ilmainen, vaikka julkisesti saatavilla olevat IBM: n QPU-yksiköt ovatkin hyvin pieniä: ne vaihtelevat 1 -bitibisestä QPU: sta Armonkissa 15-kbittiseen QPU: sta Melbournessa. IBM tarjoaa myös maksetun premium-QPU-palvelun.

[Myös: Katsaus: Amazon SageMaker pelaa kiinniottoa]

IBM arvioi myös QPU-yksikönsä kvanttitilavuudellaan (QV), joka yhdistää kiibitien määrän niiden virhesuhteeseen ja koherenssiaikaan. IBM: ssä on viiden megabitin QPU-yksiköitä, jotka vaihtelevat QV8: sta QV64: een: parempi on parempi. Honeywell on myös ilmoittanut saavuttavansa QV64: n.

Mille Braket on tällä hetkellä hyvä, on oppiminen kvanttilaskennasta ja NISQ-järjestelmän kvanttialgoritmien kehittäminen. Pysy kuitenkin kuulolla. Kun QPU: t paranevat ja liitetään AWS: ään, Braketista tulee yhä hyödyllisempi.

Kustannus: Hallinnoidut muistikirjat: 0,04–34,27 dollaria instanssitunnissa; kvanttisimulaattori: 4,50 dollaria tunnissa; kvanttitietokoneet: 0,30 dollaria tehtävää kohti ja 0,00019 - 0,01 dollaria laukausta kohti (piirin toistaminen).

Alusta: AWS; Braket SDK: n asentaminen paikallisesti vaatii Python 3.7.2: n tai uudemman ja Gitin.