Προγραμματισμός

Amazon Braket: Ξεκινήστε με τον κβαντικό υπολογισμό

Ενώ η IBM, η Microsoft και η Google έχουν αναλάβει σημαντικές δεσμεύσεις και επενδύσεις στην κβαντική πληροφορική, η Amazon, μέχρι πρόσφατα, ήταν αρκετά σιωπηλή σχετικά με το πεδίο. Αυτό άλλαξε με την εισαγωγή του Amazon Braket.

Η Amazon εξακολουθεί να μην προσπαθεί να κατασκευάσει τους δικούς της κβαντικούς υπολογιστές, αλλά με το Braket καθιστά τους κβαντικούς υπολογιστές άλλων εταιρειών διαθέσιμους στους χρήστες cloud μέσω AWS. Η Braket υποστηρίζει επί του παρόντος τρεις υπηρεσίες κβαντικής πληροφορικής, από τις D-Wave, IonQ και Rigetti.

[Επίσης στο: Μια πρακτική ματιά στο Microsoft Quantum Development Kit και τα IBM Q και Qiskit κβαντικά υπολογιστικά SDK]

Το D-Wave δημιουργεί υπεραγωγούς κβαντικούς ανόπτες, οι οποίοι συνήθως προγραμματίζονται χρησιμοποιώντας λογισμικό D-Wave Ocean, αν και υπάρχει επίσης μια μονάδα ανόπτησης στο Braket SDK. Η IonQ δημιουργεί παγιδευμένους κβαντικούς επεξεργαστές ιόντων και η Rigetti κατασκευάζει υπεραγωγούς κβαντικούς επεξεργαστές. Στο Braket, μπορείτε να προγραμματίσετε επεξεργαστές IonQ και Rigetti χρησιμοποιώντας τη μονάδα κυκλωμάτων Braket Python SDK. Ο ίδιος κωδικός τρέχει επίσης σε τοπικούς και φιλοξενούμενους κβαντικούς προσομοιωτές.

Το όνομα Braket είναι ένα είδος αστεία για τους φυσικούς. Η σημείωση bra-ket είναι η διατύπωση Dirac της κβαντικής μηχανικής, η οποία είναι ένας ευκολότερος τρόπος έκφρασης της εξίσωσης του Schrödinger από τις μερικές διαφορικές εξισώσεις. Στη σημείωση Dirac, ένα σουτιέν <> είναι ένα διάνυσμα γραμμής, και ένα κε | στ> είναι ένα διάνυσμα στήλης. Το γράψιμο ενός σουτιέν δίπλα σε ένα κέτ σημαίνει πολλαπλασιασμό μήτρας.

Το Amazon Braket και το Braket Python SDK ανταγωνίζονται τα IBM Q και Qiskit, Azure Quantum και Microsoft Q # και Google Cirq. Η IBM διαθέτει ήδη τους δικούς της κβαντικούς υπολογιστές και προσομοιωτές στο Διαδίκτυο. Ο προσομοιωτής της Microsoft είναι γενικά διαθέσιμος, αλλά οι κβαντικές προσφορές του βρίσκονται επί του παρόντος σε περιορισμένη προεπισκόπηση για πρώιμους χρήστες, συμπεριλαμβανομένης της πρόσβασης σε κβαντικούς υπολογιστές από Honeywell, IonQ και Quantum Circuits και λύσεις βελτιστοποίησης από το 1QBit. Η Microsoft δεν έχει ανακοινώσει πότε θα διατεθούν οι δικοί της τοπολογικοί υπεραγωγοί κβαντικοί υπολογιστές, ούτε η Google ανακοίνωσε πότε θα διαθέσει στο κοινό τους κβαντικούς υπολογιστές ή τσιπ Sycamore.

Επισκόπηση Amazon Braket

Το Amazon Braket είναι μια πλήρως διαχειριζόμενη υπηρεσία που σας βοηθά να ξεκινήσετε με τον κβαντικό υπολογισμό. Διαθέτει τρεις ενότητες, Build, Test και Run. Το δομοστοιχείο Build επικεντρώνεται σε διαχειριζόμενους φορητούς υπολογιστές Jupyter που έχουν προρυθμιστεί με δείγματα αλγορίθμων, πόρων και εργαλείων προγραμματιστή, συμπεριλαμβανομένου του Amazon Braket SDK. Η δοκιμαστική ενότητα παρέχει πρόσβαση σε διαχειριζόμενους, υψηλής απόδοσης, προσομοιωτές κβαντικών κυκλωμάτων. Η λειτουργική μονάδα Run παρέχει ασφαλή, κατ 'απαίτηση πρόσβαση σε διαφορετικούς τύπους κβαντικών υπολογιστών (QPUs): κβαντικούς υπολογιστές βασισμένους σε πύλες από το IonQ και το Rigetti και έναν κβαντικό ανόπτη από το D-Wave

Οι εργασίες ενδέχεται να μην εκτελούνται αμέσως στο QPU. Τα QPU εκτελούν εργασίες μόνο κατά τη διάρκεια των παραθύρων εκτέλεσης.

API SDK Braket Amazon

Το Braket Python SDK καθορίζει όλες τις λειτουργίες που χρειάζεστε για να δημιουργήσετε, να δοκιμάσετε και να εκτελέσετε κβαντικά κυκλώματα και ανόπτες. Είναι οργανωμένο σε πέντε πακέτα: braket.annealing, braket.aws, braket.circuits, braket.devices και braket.tasks.

Το πακέτο braket.annealing σάς επιτρέπει να ορίσετε δύο είδη δυαδικών τετραγωνικών μοντέλων (BQMs): Ising (ένα μαθηματικό μοντέλο σιδηρομαγνητισμού στη στατιστική μηχανική, χρησιμοποιώντας μαγνητικές διπολικές στιγμές ατομικών «περιστροφών») και QUBO (Quadratic Unconstrained Binary Optimization) για επίλυση σε ένα κβαντικό ανόπτη, όπως μια μονάδα D-Wave. Το πακέτο braket.circuits σας επιτρέπει να ορίσετε κβαντικά κυκλώματα με βάση ένα σύνολο πυλών, για να λύσετε σε κβαντικούς υπολογιστές που βασίζονται σε πύλες, όπως αυτοί από το IonQ και το Rigetti.

Τα άλλα τρία πακέτα ελέγχουν τη λειτουργία του προβλήματός σας. Το πακέτο braket.aws σας επιτρέπει να επιλέξετε κβαντικές συσκευές, να φορτώσετε προβλήματα σε εργασίες και να συνδέσετε εργασίες σε συνεδρίες AWS. Το πακέτο braket.devices σας επιτρέπει να εκτελείτε εργασίες σε κβαντικές συσκευές και προσομοιωτές. Το πακέτο braket.tasks σάς επιτρέπει να διαχειρίζεστε, να παρακολουθείτε, να ακυρώνετε και να λαμβάνετε αποτελέσματα από κβαντικές εργασίες.

Κυκλώματα και πύλες Amazon Braket

Τα κυκλώματα σε έναν κβαντικό υπολογιστή, όπως αυτά από το IonQ ή το Rigetti (ή το IBM ή το Honeywell, για αυτό το θέμα) είναι κατασκευασμένα από ένα τυπικό σύνολο πυλών (βλ. Εικόνα παρακάτω), αν και δεν μπορεί κάθε QPU να έχει εφαρμογή κάθε είδους πύλης . Στο Braket SDK ορίζετε ένα κύκλωμα χρησιμοποιώντας το Κύκλωμα() μέθοδος από το πακέτο braket.circuits, κατάλληλη από τις πύλες στο κύκλωμα και τις παραμέτρους τους.

Για παράδειγμα, αυτός ο κωδικός Braket (από το παράδειγμα Deep_dive_into_the_anatomy_of_quantum_circuits του Amazon) ορίζει ένα κύκλωμα που αρχικοποιεί τέσσερα qubit σε κατάσταση Hadamard (ίση πιθανότητα 1 και 0), στη συνέχεια εμπλέκει το qubit 2 με qubit 0 και qubit 3 με qubit 1 χρησιμοποιώντας τις λειτουργίες Controlled Not.

# ορίστε κύκλωμα με 4 qubit

my_circuit = Circuit (). h (εύρος (4)). cnot (control = 0, target = 2) .cnot (control = 1, target = 3)

Το Braket SDK φαίνεται να έχει ένα σχεδόν πλήρες σύνολο κβαντικών λογικών πυλών, όπως φαίνεται σε αυτήν την απαρίθμηση των Πύλη τάξη. Δεν βλέπω μια πύλη Deutsch, αλλά από όσο γνωρίζω δεν έχει ακόμη εφαρμοστεί σε πραγματικό QPU.

# εκτυπώστε όλες τις διαθέσιμες πύλες που είναι διαθέσιμες αυτήν τη στιγμή στο SDK

gate_set = [attr για attr σε dir (Gate) εάν attr [0] στο string.ascii_uppercase]

εκτύπωση (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 Ωκεανό

Το Ocean είναι η εγγενής στοίβα λογισμικού με βάση το Python για κβαντικά ανόπτερα D-Wave. Για χρήση μέσω του Braket, μπορείτε να συνδυάσετε το λογισμικό Ocean με το plug-in Amazon Braket Ocean, το οποίο μεταφράζεται μεταξύ των μορφών Ocean και Braket.

Οι κβαντικοί ανόπτες λειτουργούν αρκετά διαφορετικά από τα QPU που βασίζονται σε πύλες. Ουσιαστικά, διατυπώνετε το πρόβλημά σας ως δυαδικό τετραγωνικό μοντέλο (BQM) που έχει ένα παγκόσμιο ελάχιστο στη λύση που θέλετε να βρείτε. Στη συνέχεια, χρησιμοποιείτε το ανόπτη για να δοκιμάσετε τη λειτουργία πολλές φορές (καθώς το ανόπτη δεν είναι τέλειο) για να βρείτε το ελάχιστο. Μπορείτε να δημιουργήσετε το BQM για ένα συγκεκριμένο πρόβλημα μαθηματικά ή να δημιουργήσετε το BQM χρησιμοποιώντας το λογισμικό Ocean. Ο κώδικας που ακολουθεί, από το παράδειγμα D-Wave_Anatomy του Amazon, χρησιμοποιεί την προσθήκη Braket Ocean για να λύσει ένα BQM σε μια συσκευή D-Wave.

# ορίστε παραμέτρους

num_reads = 1000

# ορίστε BQM

bqm = dimod.BinaryQuadraticModel (γραμμικό, τετραγωνικό, offset, vartype)

# run BQM: επίλυση με συσκευή D-Wave

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

sampler = EmbeddingComposite (δείγμα)

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

# συνολική λύση:

sampleset = sampleset.aggregate ()

Συστήματα D-Wave

Ενεργοποίηση του Amazon Braket και χρήση φορητών υπολογιστών

Για να μπορέσετε να χρησιμοποιήσετε το Braket, πρέπει να το ενεργοποιήσετε στον λογαριασμό σας AWS.

Στη συνέχεια, πρέπει να δημιουργήσετε μια παρουσία σημειωματάριου. Οι φορητοί υπολογιστές χρησιμοποιούν το Amazon SageMaker (διαβάστε την κριτική μου).

Όταν ανοίγετε ένα σημειωματάριο, μπορείτε να εισαγάγετε νέο κωδικό ή να χρησιμοποιήσετε ένα από τα παραδείγματα του Amazon.

Πρέπει να ελέγξετε την κατάσταση των συσκευών QPU, καθώς δεν είναι πάντα διαθέσιμες.

Παρόλο που μπορείτε να τα εκτελέσετε μόνοι σας, τα σημειωματάρια Braket έχουν αποθηκευτεί με αποτελέσματα από προηγούμενη εκτέλεση.

Υπάρχουν παραδείγματα τόσο για τα QPU που βασίζονται σε πύλες, όπως παραπάνω, όσο και για τους κβαντικούς ανόπτες, όπως παρακάτω.

Μάθετε σήμερα, χρήσιμο αύριο

Το Amazon Braket είναι ένας λογικός τρόπος για να βρέξετε τα πόδια σας με κβαντικούς υπολογιστές και προσομοιωτές. Επειδή βρισκόμαστε ακόμα στη φάση του κβαντικού υπολογισμού NISQ (Noisy Intermediate Scale Quantum), δεν μπορείτε πραγματικά να περιμένετε χρήσιμα αποτελέσματα από το Braket. Χρειαζόμαστε περισσότερα qubits, λιγότερους θορύβους και μεγαλύτερους χρόνους συνοχής, όλα αυτά ερευνώνται ενεργά.

Οι τρέχουσες προσφορές QPU της Braket είναι μέτριες. Το 2048-qubit D-Wave annealer είναι κυρίως χρήσιμο για προβλήματα βελτιστοποίησης. έχει περίπου το ήμισυ του μεγέθους της τελευταίας γενιάς ανόπτησης της D-Wave. Το 11-qubit IonQ QPU, το οποίο έχει σχετικά μεγάλους χρόνους συνοχής, είναι τρόπος πολύ μικρός για την εφαρμογή των αλγορίθμων για κβαντικούς υπολογιστές που θα πρέπει να παρουσιάζουν χρήσιμη κβαντική υπεροχή, όπως ο αλγόριθμος του Grover για την εύρεση του αντίστροφου μιας συνάρτησης και ο αλγόριθμος του Shor για την εύρεση των πρωταρχικών παραγόντων ενός ακέραιου. Το Rigetti Aspen-8 30-qubit είναι επίσης πολύ μικρό.

Το Braket δεν είναι δωρεάν, αν και είναι σχετικά φθηνό στη χρήση. Συγκριτικά, το IBM Q είναι εντελώς δωρεάν, αν και τα διαθέσιμα στο κοινό IBM QPUs είναι πολύ μικρά: κυμαίνονται από 1 qubit QPU στο Armonk έως 15 qubit QPU στη Μελβούρνη. Η IBM προσφέρει επίσης μια πληρωμένη premium υπηρεσία QPU.

[Επίσης στο: Review: Το Amazon SageMaker παίζει catch-up]

Η IBM βαθμολογεί επίσης τα QPU με τον κβαντικό όγκο (QV), ένα μέτρο που συνδυάζει τον αριθμό των qubits με το ποσοστό σφάλματος και το χρόνο συνοχής. Υπάρχουν QPU IBM πέντε qubit που κυμαίνονται από QV8 έως QV64: το υψηλότερο είναι καλύτερο. Η Honeywell ανακοίνωσε επίσης την επίτευξη του QV64.

Αυτό που το Braket είναι προς το παρόν καλό είναι να μαθαίνει για την κβαντική πληροφορική και να αναπτύσσει κβαντικούς αλγόριθμους καθεστώτος NISQ. Μείνετε συντονισμένοι, ωστόσο. Καθώς τα QPUs βελτιώνονται και συνδέονται στο AWS, το Braket θα γίνεται όλο και πιο χρήσιμο.

Κόστος: Διαχειριζόμενοι φορητοί υπολογιστές: 0,04 έως 34,27 $ ανά ώρα-ώρα. κβαντικός προσομοιωτής: 4,50 $ ανά ώρα. κβαντικοί υπολογιστές: 0,30 $ ανά εργασία συν 0,00019 $ έως 0,01 $ ανά λήψη (επανάληψη ενός κυκλώματος).

Πλατφόρμα: AWS; Η εγκατάσταση του Braket SDK απαιτεί τοπικά Python 3.7.2 ή μεταγενέστερη έκδοση και Git.