Programiranje

Amazon Braket: Začnite s kvantnim računalništvom

Medtem ko so se IBM, Microsoft in Google zelo zavezali in vlagali v kvantno računalništvo, je Amazon do nedavnega o tem področju bil precej tiho. To se je spremenilo z uvedbo Amazon Braket.

Amazon še vedno ne poskuša zgraditi lastnih kvantnih računalnikov, vendar z Braketom daje kvantne računalnike drugih podjetij na voljo uporabnikom v oblaku prek AWS. Braket trenutno podpira tri storitve kvantnega računalništva, od D-Wave, IonQ in Rigetti.

[Prav tako v nadaljevanju: Praktični vpogled v Microsoftov komplet za kvantni razvoj in SDK za kvantno računalništvo IBM Q in Qiskit]

D-Wave izdeluje superprevodne kvantne žage, ki so običajno programirani z uporabo programske opreme D-Wave Ocean, čeprav je v Braket SDK na voljo tudi žarilni modul. IonQ izdeluje ujete ionske kvantne procesorje, Rigetti pa superprevodne kvantne procesorje. V Braketu lahko programirate procesorje IonQ in Rigetti z uporabo modula vezij Braket Python SDK. Ista koda deluje tudi na lokalnih in gostujočih kvantnih simulatorjih.

Ime Braket je nekakšna šala za fizike. Zapis Bra-ket je Diracova formulacija kvantne mehanike, ki je lažji način izražanja Schrödingerjeve enačbe kot delne diferencialne enačbe. V zapisu Dirac modrček <> je vektor vrstice in ket | f> je vektor stolpca. Pisanje nedrčka ob ketu pomeni množenje matrice.

Amazon Braket in Braket Python SDK tekmujeta z IBM Q in Qiskit, Azure Quantum in Microsoft Q # ter Google Cirq. IBM že ima svoje kvantne računalnike in simulatorje, ki so na voljo javnosti na spletu. Microsoftov simulator je na splošno na voljo, vendar so njegove kvantne ponudbe trenutno v omejenem predogledu za začetnike, vključno z dostopom do kvantnih računalnikov iz Honeywella, IonQ in Quantum Circuits ter optimizacijske rešitve iz 1QBit. Microsoft ni napovedal, kdaj bodo na voljo lastni topološki superprevodniški kvantni računalniki, niti Google ni napovedal, kdaj bo svoje kvantne računalnike ali čipe Sycamore dal na voljo javnosti.

Pregled Amazon Braket

Amazon Braket je popolnoma vodena storitev, ki vam pomaga začeti s kvantnim računalništvom. Ima tri module, Build, Test in Run. Modul Build se osredotoča na upravljane zvezke Jupyter, vnaprej konfigurirane z vzorčnimi algoritmi, viri in orodji za razvijalce, vključno s paketom SDK za Amazon Braket. Testni modul omogoča dostop do upravljanih, visoko zmogljivih simulatorjev kvantnih vezij. Modul Run omogoča varen dostop na zahtevo do različnih vrst kvantnih računalnikov (QPU): kvantnih računalnikov, ki temeljijo na vratih iz IonQ in Rigetti, in kvantnega annelerja iz D-Wave.

Opravila se morda ne bodo takoj zagnala na QPU. QPU izvajajo naloge samo med izvedbenimi okni.

Amazon Braket SDK API

SDK Braket Python opredeljuje vse operacije, ki jih potrebujete za izdelavo, testiranje in zagon kvantnih vezij in žarilcev. Razdeljen je v pet paketov: braket.annealing, braket.aws, braket.circuits, braket.devices in braket.tasks.

Paket braket.annealing vam omogoča, da določite dve vrsti binarnih kvadratnih modelov (BQM): Ising (matematični model feromagnetizma v statistični mehaniki, z uporabo magnetnih dipolnih trenutkov atomskih "vrtljajev") in QUBO (Quadratic Unconstrained Binary Optimization), rešiti na kvantnem žarilniku, kot je enota D-Wave. Paket braket.circuits vam omogoča, da določite kvantna vezja, ki temeljijo na nizu vrat, ki jih želite rešiti na kvantnih računalnikih, ki temeljijo na vratih, kot sta IonQ in Rigetti.

Ostali trije paketi nadzorujejo delovanje vaše težave. Paket braket.aws omogoča izbiro kvantnih naprav, nalaganje težav v opravila in povezovanje nalog s sejami AWS. Paket braket.devices vam omogoča izvajanje nalog na kvantnih napravah in simulatorjih. Paket braket.tasks vam omogoča upravljanje, sledenje, preklic in pridobivanje rezultatov iz kvantnih nalog.

Amazon Braket vezja in vrata

Vezja v kvantnem računalniku, kot so tista iz IonQ ali Rigettija (ali IBM ali Honeywell, tako rekoč), so zgrajena iz standardnega nabora vrat (glej sliko spodaj), čeprav morda vsak QPU nima izvedbe vseh vrst vrat . V Braket SDK definirate vezje z uporabo Vezje () metoda iz paketa braket.circuits, ki jo določajo vrata v vezju in njihovi parametri.

Na primer, ta Braketova koda (iz Amazonovega primera Deep_dive_into_the_anatomy_of_quantum_circuits) definira vezje, ki inicializira štiri kubite v stanje Hadamard (enaka verjetnost 1 in 0), nato preplete qubit 2 s kubitom 0 in qubit 3 s kubitom 1 z uporabo Controlled Not.

# definirajte vezje s 4 kubiti

my_circuit = Circuit (). h (range (4)). cnot (control = 0, target = 2) .cnot (control = 1, target = 3)

Zdi se, da ima Braket SDK skoraj celoten nabor kvantno logičnih vrat, kot je prikazano v tej številki Vrata razred. Ne vidim seznama Deutsch gate, a kolikor vem, še ni bil izveden na pravem QPU.

# natisnite vsa razpoložljiva vrata, ki so trenutno na voljo v SDK

gate_set = [attr za attr v dir (Gate), če attr [0] v string.ascii_uppercase]

tiskanje (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)

Ocean D-Wave

Ocean je domači programski paket, ki temelji na Pythonu, za kvantne annelerje D-Wave. Za uporabo prek Braket lahko programsko opremo Ocean kombinirate z vtičnikom Amazon Braket Ocean, ki prevaja med formatoma Ocean in Braket.

Kvantni annelers delujejo povsem drugače kot QPU, ki temeljijo na vratih. V bistvu svojo težavo oblikujete kot binarni kvadratni model (BQM), ki ima pri rešitvi, ki jo želite najti, globalni minimum. Nato z žarilnikom večkrat vzorčite funkcijo (ker žarilnica ni popolna), da poiščete minimum. BQM lahko za določeno težavo ustvarite matematično ali pa BQM ustvarite s pomočjo programske opreme Ocean. Koda, ki sledi, iz Amazonovega primera D-Wave_Anatomy, uporablja vtičnik Braket Ocean za reševanje BQM na napravi D-Wave.

# nastavljeni parametri

num_reads = 1000

# definirajte BQM

bqm = dimod.BinaryQuadraticModel (linearni, kvadratni, offset, vartype)

# zaženite BQM: rešite z napravo D-Wave

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

sampler = EmbeddingComposite (sampler)

sampleset = sampler.sample (bqm, num_reads = num_reads)

# agregatna rešitev:

sampleset = sampleset.aggregate ()

D-Wave sistemi

Omogočanje Amazon Braket in uporaba prenosnih računalnikov

Preden lahko uporabite Braket, ga morate omogočiti v svojem računu AWS.

Nato morate ustvariti primerek zvezka. Prenosniki uporabljajo Amazon SageMaker (preberite moj pregled).

Ko odprete zvezek, lahko vnesete novo kodo ali uporabite enega od Amazonovih primerov.

Preveriti morate stanje naprav QPU, saj niso vedno na voljo.

Čeprav jih lahko zaženete sami, so primeri prenosnih računalnikov Braket shranjeni z rezultati prejšnjega izvajanja.

Obstajajo primeri tako QPU-jev, ki temeljijo na vratih, kot zgoraj, kot kvantnih annelerjev, kot je prikazano spodaj.

Nauči se danes, uporabno jutri

Amazon Braket je primeren način, da si namočite noge s kvantnimi računalniki in simulatorji. Ker smo še vedno v fazi NISQ (Noisy Intermediate Scale Quantum) kvantnega računalništva, od Braketa pravzaprav ne morete pričakovati koristnih rezultatov. Potrebovali bomo več kubitov, manj hrupa in daljši čas skladnosti, kar vse aktivno raziskujemo.

Braketova trenutna ponudba QPU je skromna. Žarilnik D-Wave z 2048 kubiti je večinoma koristen za optimizacijske težave; to je približno polovica velikosti žarilca najnovejše generacije podjetja D-Wave. 11-qubit IonQ QPU, ki ima razmeroma dolge čase skladnosti, je način premajhen za izvajanje algoritmov za kvantne računalnike, ki bi morali izkazovati koristno kvantno nadvlado, kot sta Groverjev algoritem za iskanje inverzne funkcije in Šorjev algoritem za iskanje glavnih faktorjev celega števila. Tudi 30-kubični Rigetti Aspen-8 je premajhen.

Braket ni brezplačen, čeprav je relativno poceni za uporabo. Za primerjavo, IBM Q je popolnoma brezplačen, čeprav so javno dostopni IBM-ovi QPU zelo majhni: segajo od 1 qubit QPU v Armonku do 15-qubit QPU v Melbournu. IBM ponuja tudi plačljivo storitev QPU.

[Tudi na: Pregled: Amazon SageMaker igra dohitevanje]

IBM svoje QPU-je ocenjuje tudi po kvantnem volumnu (QV), merilu, ki združuje število kubitov z njihovo stopnjo napak in časom skladnosti. Obstaja pet-qubit IBM-ovih QPU-jev, ki segajo od QV8 do QV64: višji je boljši. Honeywell je napovedal tudi doseganje QV64.

Tisto, za kar je Braket trenutno dober, je spoznavanje kvantnih računalnikov in razvoj kvantnih algoritmov v režimu NISQ. Ostanite z nami, čeprav. Ko se bodo QPU-ji izboljšali in jih priključili na AWS, bo Braket postajal vedno bolj uporaben.

Stroški: Upravljani zvezki: 0,04 do 34,27 USD na primerno uro; kvantni simulator: 4,50 USD na uro; kvantni računalniki: 0,30 USD na opravilo plus 0,00019 USD do 0,01 USD na posnetek (ponovitev vezja).

Platforma: AWS; lokalna namestitev Braket SDK zahteva Python 3.7.2 ali novejšo in Git.

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