Programmēšana

Amazon Braket: sāciet darbu ar kvantu skaitļošanu

Kaut arī IBM, Microsoft un Google ir uzņēmušies lielas saistības un ieguldījumus kvantu skaitļošanā, Amazon vēl nesen ir diezgan klusējis par šo jomu. Tas mainījās, ieviešot Amazon Braket.

Amazon joprojām nemēģina izveidot savus kvantu datorus, bet ar Braket tas padara citu uzņēmumu kvantu datorus pieejamus mākoņu lietotājiem, izmantojot AWS. Pašlaik Braket atbalsta trīs kvantu skaitļošanas pakalpojumus no D-Wave, IonQ un Rigetti.

[Arī uz: praktisks Microsoft Quantum Development Kit un IBM Q un Qiskit kvantu skaitļošanas SDK skatījums]

D-Wave ražo supravadītspējīgus kvantu atlaidinātājus, kurus parasti ieprogrammē, izmantojot programmatūru D-Wave Ocean, lai gan Braket SDK ir arī atlaidināšanas modulis. IonQ ražo ieslodzītos jonu kvantu procesorus, bet Rigetti - supravadītājus. Programmā Braket var programmēt gan IonQ, gan Rigetti procesorus, izmantojot Braket Python SDK shēmu moduli. Tas pats kods darbojas arī vietējos un mitinātajos kvantu simulatoros.

Nosaukums Braket ir sava veida fiziķu joks. Bra-ket apzīmējums ir Kvantu mehānikas Diraka formulējums, kas ir vienkāršāks veids, kā izteikt Šrēdingera vienādojumu nekā daļēji diferenciālvienādojumi. Dirac apzīmējumā krūšturis <> ir rindu vektors un ket | f> ir kolonnu vektors. Rakstīt krūšturi blakus ketam nozīmē matricas reizināšanu.

Amazon Braket un Braket Python SDK konkurē ar IBM Q un Qiskit, Azure Quantum un Microsoft Q # un Google Cirq. IBM jau ir savi kvantu datori un simulatori, kas sabiedrībai pieejami tiešsaistē. Microsoft simulators ir vispārpieejams, taču tā kvantu piedāvājums pašlaik ir ierobežots priekšskatījumā agrīnajiem lietotājiem, tostarp piekļuve Honeywell, IonQ un Quantum Circuits kvantu datoriem un 1QBit optimizācijas risinājumi. Microsoft nav paziņojusi, kad kļūs pieejami tās pašu topoloģiskie supravadoši kvantu datori, kā arī Google nav paziņojusi, kad savus kvantu datorus vai Sycamore mikroshēmas darīs pieejamus sabiedrībai.

Amazon Braket pārskats

Amazon Braket ir pilnībā pārvaldīts pakalpojums, kas palīdz sākt darbu ar kvantu skaitļošanu. Tam ir trīs moduļi: Build, Test un Run. Modulis Build tiek veidots ap pārvaldītajām Jupyter piezīmjdatoriem, kas iepriekš konfigurēti ar algoritmu paraugiem, resursiem un izstrādātāju rīkiem, tostarp Amazon Braket SDK. Testa modulis nodrošina piekļuvi pārvaldītiem, augstas veiktspējas kvantu ķēdes simulatoriem. Run modulis nodrošina drošu, pēc pieprasījuma piekļuvi dažāda veida kvantu datoriem (QPU): uz vārtiem balstītiem kvantu datoriem no IonQ un Rigetti un kvantu atlaidinātājiem no D-Wave.

QPU uzdevumi var netikt izpildīti uzreiz. QPU veic uzdevumus tikai izpildes logu laikā.

Amazon Braket SDK API

Braket Python SDK nosaka visas operācijas, kas nepieciešamas, lai izveidotu, pārbaudītu un palaistu kvantu shēmas un atlaidinātājus. Tas ir sakārtots piecos iepakojumos: braket.annealing, braket.aws, braket.circuits, braket.devices un braket.tasks.

Pakete braket.annealing ļauj definēt divu veidu bināros kvadrātiskos modeļus (BQM): Ising (feromagnētisma matemātiskais modelis statistikas mehānikā, izmantojot atomu “griezienu” magnētiskos dipolus momentus) un QUBO (Quadratic Unconstrained Binary Optimization) problēmas, atrisināt kvantu atlaidinātājā, piemēram, D-Wave vienībā. Pakete braket.circuits ļauj noteikt kvantu ķēdes, pamatojoties uz vārtu kopu, lai atrisinātu ar vārtiem balstītiem kvantu datoriem, piemēram, no IonQ un Rigetti.

Pārējās trīs paketes kontrolē jūsu problēmas izpildi. Pakete braket.aws ļauj jums izvēlēties kvantu ierīces, ielādēt problēmas uzdevumos un savienot uzdevumus ar AWS sesijām. Pakete braket.devices ļauj izpildīt uzdevumus kvantu ierīcēs un simulatoros. Pakete braket.tasks ļauj pārvaldīt, izsekot, atcelt un iegūt kvantu uzdevumu rezultātus.

Amazon Braket shēmas un vārti

Kvantu datora shēmas, piemēram, IonQ vai Rigetti (vai IBM vai Honeywell, šajā sakarā), tiek veidotas no standarta vārtu komplekta (skat. Attēlu zemāk), lai gan ne katram QPU var būt jebkura veida vārtu ieviešana . Braket SDK jūs definējat ķēdi, izmantojot Ķēde () metode no braket.circuits paketes, ko kvalificē ķēdes vārti un to parametri.

Piemēram, šis Braket kods (no Amazon's Deep_dive_into_the_anatomy_of_quantum_circuits piemēra) definē ķēdi, kas inicializē četrus kubitus Hadamard (vienāda varbūtība 1 un 0) stāvoklī, pēc tam kontrolē 2. kvotu ar 0. un 3. kvotu, izmantojot kontrolētās ne operācijas.

# definējiet ķēdi ar 4 kubitiem

my_circuit = Ķēde (). h (diapazons (4)). Mezgls (kontrole = 0, mērķis = 2). Mezgls (kontrole = 1, mērķis = 3)

Šķiet, ka Braket SDK ir gandrīz pilns kvantu loģikas vārtu komplekts, kā parādīts šajā Vārti klasē. Es neredzu vācu valodas vārtu sarakstu, taču, cik es zinu, tie vēl nav ieviesti īstā QPU.

# izdrukājiet visus pieejamos vārtus, kas pašlaik ir pieejami SDK

gate_set = [attr attr at dir (Gate), ja attr [0] string.ascii_uppercase]

drukāt (gate_set)

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

Rxtreme (CC BY-SA 4.0)

D-Wave okeāns

Okeāns ir D-Wave kvantu rūdītāju vietējā programmatūra, kas balstīta uz Python. Lietošanai, izmantojot Braket, varat apvienot Ocean programmatūru ar Amazon Braket Ocean spraudni, kas tulko starp Ocean un Braket formātiem.

Kvantu atlaidinātāji darbojas pavisam savādāk nekā uz vārtiem balstīti QPU. Būtībā jūs formulējat savu problēmu kā bināro kvadrātisko modeli (BQM), kura globālajam minimumam ir jāatrod atrastais risinājums. Tad jūs izmantojat atlaidinātāju, lai vairākas reizes atlasītu funkciju (jo atlaidinātājs nav ideāls), lai atrastu minimālo. Jūs varat matemātiski izveidot BQM noteiktai problēmai vai ģenerēt BQM, izmantojot Ocean programmatūru. Tālāk redzamais kods no Amazon D-Wave_Anatomy piemēra izmanto spraudni Braket Ocean, lai atrisinātu BQM D-Wave ierīcē.

# iestatīti parametri

skaitļu_izlasīšana = 1000

# definēt BQM

bqm = dimod.BinaryQuadraticModel (lineārs, kvadrātisks, nobīde, vartype)

# palaist BQM: atrisināt ar D-Wave ierīci

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

sampler = EmbeddingComposite (paraugu ņemējs)

paraugu kopa = paraugu atlase. paraugs (bqm, num_reads = num_reads)

# apkopotais risinājums:

paraugu kopa = paraugu kopa. apkopojums ()

D-Wave sistēmas

Amazon Braket iespējošana un piezīmjdatoru izmantošana

Lai varētu izmantot Braket, tas jāiespējo savā AWS kontā.

Tad jums jāizveido piezīmjdatora eksemplārs. Piezīmjdatoros tiek izmantots Amazon SageMaker (lasiet manu pārskatu).

Atverot piezīmju grāmatiņu, varat ievadīt jaunu kodu vai izmantot kādu no Amazon piemēriem.

Jums jāpārbauda QPU ierīču statuss, jo tās ne vienmēr ir pieejamas.

Lai gan jūs tos varat palaist pats, Braket piezīmju grāmatiņu piemēri ir saglabāti ar iepriekšējā palaišanas rezultātiem.

Ir piemēri gan vārtiem balstītiem QPU, kā minēts iepriekš, gan kvantu atlaidinātājiem, kā norādīts zemāk.

Uzziniet šodien, noderēs rīt

Amazon Braket ir saprātīgs veids, kā samitrināt kājas ar kvantu datoriem un simulatoriem. Tā kā mēs joprojām esam kvantu skaitļošanas NISQ (Noisy Intermediate Scale Quantum) fāzē, jūs nevarat īsti gaidīt noderīgus rezultātus no Braket. Mums būs nepieciešams vairāk kubītu, mazāks troksnis un ilgāks saskaņotības laiks, un tas viss tiek aktīvi pētīts.

Braket pašreizējie QPU piedāvājumi ir pieticīgi. 2048-qubit D-Wave atlaidinātājs lielākoties ir noderīgs optimizācijas problēmu risināšanai; tas ir apmēram puse no D-Wave jaunākās paaudzes atlaidinātāja lieluma. 11 -bitbit IonQ QPU, kam ir salīdzinoši ilgi koherences laiki, ir veidā pārāk mazs, lai ieviestu algoritmus kvantu datoriem, kuriem vajadzētu uzrādīt noderīgu kvantu pārākumu, piemēram, Grovera algoritms funkcijas apgrieztās vērtības atrašanai un Šora algoritms vesela skaitļa galveno faktoru atrašanai. Arī 30 kubitu Rigetti Aspen-8 ir pārāk mazs.

Brakets nav bezmaksas, lai gan to ir samērā lēti izmantot. Salīdzinājumam - IBM Q ir pilnīgi bez maksas, lai gan publiski pieejamie IBM QPU ir ļoti mazi: tie svārstās no 1 qubit QPU Armonk līdz 15 qubit QPU Melburnā. IBM piedāvā arī apmaksātu QPU pakalpojumu.

[Arī: Pārskats: Amazon SageMaker spēlē panākumus]

IBM vērtē arī savus QPU pēc to kvantu apjoma (QV) - ​​mēra, kas apvieno kvītu skaitu ar to kļūdu līmeni un saskaņotības laiku. Ir piecu qubit IBM QPU, sākot no QV8 līdz QV64: augstāks ir labāks. Honeywell arī paziņoja par QV64 sasniegšanu.

Kas šobrīd ir labs Braket, ir mācīšanās par kvantu skaitļošanu un NISQ režīma kvantu algoritmu izstrāde. Tomēr sekojiet līdzi. Uzlabojoties QPU un pievienojot tos AWS, Braket kļūs arvien noderīgāks.

Izmaksas: Pārvalda piezīmjdatorus: no 0,04 līdz 34,27 ASV dolāriem instances stundā; kvantu simulators: 4,50 USD stundā; kvantu datori: 0,30 USD par uzdevumu, plus 0,00019 USD līdz 0,01 USD par kadru (ķēdes atkārtošana).

Platforma: AWS; instalējot vietni Braket SDK, nepieciešama Python 3.7.2 vai jaunāka versija un Git.

$config[zx-auto] not found$config[zx-overlay] not found