Programování

Amazon Braket: Začněte s kvantovým výpočtem

Zatímco IBM, Microsoft a Google učinily zásadní závazky a investice do kvantové výpočetní techniky, Amazon byl donedávna o této oblasti celkem tichý. To se změnilo zavedením Amazon Braket.

Amazon se stále nesnaží budovat své vlastní kvantové počítače, ale pomocí Braketu zpřístupňuje kvantové počítače jiných společností cloudovým uživatelům prostřednictvím AWS. Braket v současné době podporuje tři kvantové výpočetní služby, od D-Wave, IonQ a Rigetti.

[Také na: Praktický pohled na Microsoft Quantum Development Kit a IBM Q a Qiskit kvantové výpočetní sady SDK]

D-Wave vyrábí supravodivé kvantové annealery, které se obvykle programují pomocí softwaru D-Wave Ocean, ačkoli v sadě Braket SDK je také žíhací modul. IonQ vyrábí zachycené iontové kvantové procesory a Rigetti vyrábí supravodivé kvantové procesory. V Braketu můžete programovat procesory IonQ i Rigetti pomocí modulu obvodů Braket Python SDK. Stejný kód také běží na lokálních a hostovaných kvantových simulátorech.

Jméno Braket je pro fyziky tak trochu vtipem. Bra-ketova notace je Diracova formulace kvantové mechaniky, což je snadnější způsob vyjádření Schrödingerovy rovnice než parciálních diferenciálních rovnic. V Diracově notaci podprsenka <> je řádkový vektor a ket | f> je sloupcový vektor. Psaní podprsenky vedle trička znamená násobení matice.

Amazon Braket a Braket Python SDK soutěží s IBM Q a Qiskit, Azure Quantum a Microsoft Q # a Google Cirq. IBM již má své vlastní kvantové počítače a simulátory dostupné veřejnosti online. Simulátor společnosti Microsoft je obecně dostupný, ale jeho kvantové nabídky jsou v současné době v omezeném náhledu pro ty, kteří si brzy osvojili, včetně přístupu k kvantovým počítačům od společností Honeywell, IonQ a Quantum Circuits a optimalizačních řešení od 1QBit. Microsoft neoznámil, kdy budou k dispozici jeho vlastní topologické supravodivé kvantové počítače, ani Google neoznámil, kdy zpřístupní své kvantové počítače nebo čipy Sycamore veřejnosti.

Přehled služby Amazon Braket

Amazon Braket je plně spravovaná služba, která vám pomůže začít s kvantovým výpočtem. Má tři moduly, Build, Test a Run. Modul Build se soustředí na spravované notebooky Jupyter předkonfigurované pomocí ukázkových algoritmů, prostředků a vývojářských nástrojů, včetně sady Amazon Braket SDK. Modul Test poskytuje přístup ke spravovaným, vysoce výkonným simulátorům kvantových obvodů. Modul Run poskytuje bezpečný přístup na vyžádání k různým typům kvantových počítačů (QPU): brány založené na kvantových počítačích od IonQ a Rigetti a kvantový annealer od D-Wave.

Úkoly nemusí na QPU běžet okamžitě. QPU vykonávají úkoly pouze během spouštěcích oken.

Amazon Braket SDK API

Sada Braket Python SDK definuje všechny operace, které potřebujete k sestavení, testování a spuštění kvantových obvodů a annealerů. Je rozdělena do pěti balíčků: braket.anealing, braket.aws, braket.circuits, braket.devices a braket.tasks.

Balíček braket.annealing umožňuje definovat dva druhy binárních kvadratických modelů (BQM): Ising (matematický model feromagnetismu ve statistické mechanice, využívající magnetické dipólové momenty atomových „točení“) a QUBO (Kvadratická neomezená binární optimalizace), řešit na kvantovém annealeru, jako je jednotka D-Wave. Balíček braket.circuits vám umožňuje definovat kvantové obvody založené na sadě bran a řešit je na kvantových počítačích založených na bráně, jako jsou IonQ a Rigetti.

Další tři balíčky řídí chod vašeho problému. Balíček braket.aws vám umožňuje vybrat kvantová zařízení, načíst problémy do úkolů a připojit úkoly k relacím AWS. Balíček braket.devices vám umožňuje spouštět úlohy na kvantových zařízeních a simulátorech. Balíček braket.tasks umožňuje spravovat, sledovat, rušit a získávat výsledky z kvantových úkolů.

Obvody a brány Amazon Braket

Obvody v kvantovém počítači, jako jsou IonQ nebo Rigetti (nebo IBM nebo Honeywell), jsou postaveny ze standardní sady bran (viz obrázek níže), i když ne každý QPU může mít implementaci všech druhů bran . V sadě Braket SDK definujete obvod pomocí Obvod() metoda z balíčku braket.circuits, kvalifikovaná branami v obvodu a jejich parametry.

Například tento Braketův kód (z příkladu Amazon Deep_dive_into_the_anatomy_of_quantum_circuits) definuje obvod, který inicializuje čtyři qubity do stavu Hadamard (stejná pravděpodobnost 1 a 0), poté zaplétá qubit 2 do qubit 0 a qubit 3 do qubit 1 pomocí operací Controlled Not.

# definujte obvod se 4 qubits

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

Braket SDK vypadá, že má téměř celou sadu kvantových logických bran, jak je ukázáno v tomto výčtu Brána třída. Nevidím německou bránu uvedenou v seznamu, ale pokud vím, dosud nebyla implementována na skutečném QPU.

# vytiskne všechny dostupné brány aktuálně dostupné v SDK

gate_set = [attr pro attr v dir (Gate), pokud attr [0] v string.ascii_uppercase]

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

Oceán D-Wave

Ocean je nativní softwarový zásobník založený na Pythonu pro kvantové annealery D-Wave. Pro použití přes Braket můžete kombinovat software Ocean s plug-inem Amazon Braket Ocean, který překládá mezi formáty Ocean a Braket.

Kvantové annealery fungují zcela odlišně než QPU založené na bráně. V podstatě svůj problém formulujete jako binární kvadratický model (BQM), který má globální minimum v řešení, které chcete najít. Potom pomocí annealeru mnohokrát vyzkoušíte funkci (protože annealer není dokonalý), abyste našli minimum. Můžete vytvořit BQM pro daný problém matematicky nebo vygenerovat BQM pomocí softwaru Ocean. Následující kód, z příkladu Amazonu D-Wave_Anatomy, používá zásuvný modul Braket Ocean k řešení BQM na zařízení D-Wave.

# nastavit parametry

num_reads = 1000

# definovat BQM

bqm = dimod.BinaryQuadraticModel (lineární, kvadratický, offset, vartype)

# run BQM: vyřešit pomocí zařízení D-Wave

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

sampler = EmbeddingComposite (sampler)

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

# agregované řešení:

sampleet = sampleset.aggregate ()

Systémy D-Wave

Povolení služby Amazon Braket a používání notebooků

Než budete moci Braket používat, musíte jej povolit ve svém účtu AWS.

Pak musíte vytvořit instanci poznámkového bloku. Notebooky používají Amazon SageMaker (přečtěte si moji recenzi).

Když otevřete notebook, můžete zadat nový kód nebo použít některý z příkladů Amazonu.

Musíte zkontrolovat stav zařízení QPU, protože nejsou vždy k dispozici.

I když je můžete spustit sami, ukázkové notebooky Braket byly uloženy s výsledky z předchozího spuštění.

Existují příklady QPU založených na bráně, jak je uvedeno výše, a kvantových annealerů, jak je uvedeno níže.

Učte se dnes, užitečné zítra

Amazon Braket je rozumný způsob, jak si promočit nohy pomocí kvantových počítačů a simulátorů. Jelikož jsme stále ve fázi kvantového výpočtu NISQ (Noisy Intermediate Scale Quantum), nemůžete od Braketa opravdu očekávat užitečné výsledky. Budeme potřebovat více qubitů, méně hluku a delší časy soudržnosti, které jsou všechny aktivně prozkoumány.

Aktuální nabídka QPU společnosti Braket je skromná. 2048bitový annealer D-Wave je většinou užitečný pro optimalizační problémy; je to asi polovina velikosti annealeru nejnovější generace D-Wave. 11kbitový QPU IonQ, který má relativně dlouhou dobu koherence, je způsob příliš malý na implementaci algoritmů pro kvantové počítače, které by měly vykazovat užitečnou kvantovou převahu, jako je Groverův algoritmus pro nalezení inverzní funkce a Shorův algoritmus pro nalezení hlavních faktorů celého čísla. 30kbitový Rigetti Aspen-8 je také příliš malý.

Braket není zdarma, i když jeho použití je relativně levné. Pro srovnání, IBM Q je zcela zdarma, i když veřejně dostupné IBM QPU jsou velmi malé: pohybují se od 1 qubitového QPU v Armonku až po 15 qubitový QPU v Melbourne. IBM také nabízí placenou prémiovou službu QPU.

[Také na: Recenze: Amazon SageMaker hraje dohánění]

IBM také hodnotí své QPU podle jejich kvantového objemu (QV), což je měřítko, které kombinuje počet qubitů s jejich chybovostí a dobou soudržnosti. Existují pětbitové IBM QPU od QV8 do QV64: vyšší je lepší. Společnost Honeywell také oznámila dosažení QV64.

K čemu je Braket v současné době dobrý, je učení o kvantových výpočtech a vývoj kvantových algoritmů v režimu NISQ. Zůstaňte naladěni. Jak se QPU zlepšují a jsou zapojeny do AWS, bude Braket stále užitečnější.

Náklady: Spravované notebooky: 0,04 až 34,27 USD za hodinu instance; kvantový simulátor: 4,50 USD za hodinu; kvantové počítače: 0,30 $ za úkol plus 0,00019 $ až 0,01 $ za výstřel (opakování obvodu).

Plošina: AWS; místní instalace sady Braket SDK vyžaduje Python 3.7.2 nebo vyšší a Git.