Gunakan PennyLane dengan Amazon Braket - Amazon Braket

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Gunakan PennyLane dengan Amazon Braket

Algoritma hibrida adalah algoritma yang berisi instruksi klasik dan kuantum. Instruksi klasik dijalankan pada perangkat keras klasik (EC2instance atau laptop Anda), dan instruksi kuantum dijalankan baik pada simulator atau pada komputer kuantum. Kami menyarankan Anda menjalankan algoritma hybrid menggunakan fitur Hybrid Jobs. Untuk informasi selengkapnya, lihat Kapan menggunakan Pekerjaan Amazon Braket.

Amazon Braket memungkinkan Anda untuk mengatur dan menjalankan algoritma kuantum hybrid dengan bantuan PennyLane plugin Amazon Braket, atau dengan Amazon Braket Python dan contoh repositori notebook. SDK Amazon Braket contoh notebook, berdasarkanSDK, memungkinkan Anda untuk mengatur dan menjalankan algoritma hybrid tertentu tanpa plugin. PennyLane Namun, kami merekomendasikan PennyLane karena memberikan pengalaman yang lebih kaya.

Tentang algoritma kuantum hibrida

Algoritma kuantum hibrida penting bagi industri saat ini karena perangkat komputasi kuantum kontemporer umumnya menghasilkan noise, dan karenanya, kesalahan. Setiap gerbang kuantum yang ditambahkan ke komputasi meningkatkan kemungkinan menambahkan noise; oleh karena itu, algoritma yang berjalan lama dapat kewalahan oleh noise, yang menghasilkan komputasi yang salah.

Algoritma kuantum murni seperti Shor (contoh Estimasi Fase Kuantum) atau Grover (contoh Grover) membutuhkan ribuan, atau jutaan, operasi. Untuk alasan ini, mereka dapat menjadi tidak praktis untuk perangkat kuantum yang ada, yang umumnya disebut sebagai perangkat kuantum () skala menengah yang bising. NISQ

Dalam algoritma kuantum hibrida, unit pemrosesan kuantum (QPUs) bekerja sebagai co-prosesor untuk klasikCPUs, khususnya untuk mempercepat perhitungan tertentu dalam algoritma klasik. Eksekusi sirkuit menjadi jauh lebih pendek, dalam jangkauan kemampuan perangkat saat ini.

Amazon Braket dengan PennyLane

Amazon Braket menyediakan dukungan untuk PennyLane, kerangka kerja perangkat lunak open-source yang dibangun di sekitar konsep pemrograman kuantum yang dapat dibedakan. Anda dapat menggunakan kerangka kerja ini untuk melatih sirkuit kuantum dengan cara yang sama seperti Anda melatih jaringan saraf untuk menemukan solusi untuk masalah komputasi dalam kimia kuantum, pembelajaran mesin kuantum, dan optimasi.

PennyLane Perpustakaan menyediakan antarmuka ke alat pembelajaran mesin yang sudah dikenal, termasuk PyTorch dan TensorFlow, untuk membuat sirkuit kuantum pelatihan cepat dan intuitif.

  • PennyLane Perpustakaan -— PennyLane sudah diinstal sebelumnya di Amazon Notebook braket. Untuk akses ke Amazon Perangkat Braket dari PennyLane, buka buku catatan dan impor PennyLane perpustakaan dengan perintah berikut.

import pennylane as qml

Notebook tutorial membantu Anda memulai dengan cepat. Atau, Anda dapat menggunakan PennyLane Amazon Braket IDE dari pilihan Anda.

  • The Amazon PennyLane Plugin Braket - Untuk menggunakan sendiriIDE, Anda dapat menginstal Amazon PennyLane Plugin Braket secara manual. Plugin terhubung PennyLane dengan Amazon Braket Python SDK, sehingga Anda dapat menjalankan sirkuit di on PennyLane Amazon Perangkat Braket. Untuk menginstal PennyLane plugin, gunakan perintah berikut.

pip install amazon-braket-pennylane-plugin

Contoh berikut menunjukkan cara mengatur akses ke Amazon Perangkat Braket di PennyLane:

# to use SV1 import pennylane as qml sv1 = qml.device("braket.aws.qubit", device_arn="arn:aws:braket:::device/quantum-simulator/amazon/sv1", wires=2) # to run a circuit: @qml.qnode(sv1) def circuit(x): qml.RZ(x, wires=0) qml.CNOT(wires=[0,1]) qml.RY(x, wires=1) return qml.expval(qml.PauliZ(1)) result = circuit(0.543) #To use the local sim: local = qml.device("braket.local.qubit", wires=2)

Untuk contoh tutorial dan informasi selengkapnya PennyLane, lihat repositori contoh Amazon Braket.

Bagian Amazon PennyLane Plugin Braket memungkinkan Anda untuk beralih antara Amazon Braket QPU dan perangkat simulator tertanam PennyLane dengan satu baris kode. Ini menawarkan dua Amazon Perangkat kuantum Braket untuk bekerja dengan PennyLane:

  • braket.aws.qubituntuk berlari dengan Amazon Perangkat kuantum layanan Braket, termasuk QPUs dan simulator

  • braket.local.qubituntuk berlari dengan Amazon Simulator lokal SDK Braket

Bagian Amazon PennyLane Plugin Braket adalah open source. Anda dapat menginstalnya dari GitHub repositori PennyLane Plugin.

Untuk informasi lebih lanjut tentang PennyLane, lihat dokumentasi di PennyLane situs web.

Algoritme hibrid di notebook contoh Amazon Braket

Amazon Braket memang menyediakan berbagai contoh notebook yang tidak bergantung pada PennyLane plugin untuk menjalankan algoritma hybrid. Anda dapat memulai dengan salah satu notebook contoh hibrida Amazon Braket ini yang menggambarkan metode variasi, seperti Algoritma Optimasi Perkiraan Kuantum (QAOA) atau Variational Quantum Eigensolver (). VQE

Notebook contoh Amazon Braket mengandalkan Amazon Braket Python. SDK SDKIni menyediakan kerangka kerja untuk berinteraksi dengan perangkat keras komputasi kuantum melalui Amazon Braket. Ini adalah pustaka open source yang dirancang untuk membantu Anda dengan bagian kuantum dari alur kerja hibrida Anda.

Anda dapat menjelajahi Amazon Braket lebih lanjut dengan notebook contoh kami.

Algoritma hybrid dengan simulator tertanam PennyLane

Amazon Braket Hybrid Jobs sekarang hadir dengan simulator tertanam GPU berkinerja CPU tinggi dan berbasis dari. PennyLane Keluarga simulator tertanam ini dapat disematkan langsung di dalam wadah pekerjaan hibrida Anda dan mencakup lightning.qubit simulator vektor status cepat, simulator yang lightning.gpu dipercepat menggunakan NVIDIA cuQuantum perpustakaan, dan lainnya. Simulator tertanam ini sangat cocok untuk algoritma variasional seperti pembelajaran mesin kuantum yang dapat mengambil manfaat dari metode canggih seperti metode diferensiasi adjoint. Anda dapat menjalankan simulator tertanam ini pada satu atau beberapa CPU atau GPU instance.

Dengan Hybrid Jobs, Anda sekarang dapat menjalankan kode algoritma variasional Anda menggunakan kombinasi co-prosesor klasik dan, QPU Amazon Simulator sesuai permintaan Braket seperti SV1, atau langsung menggunakan simulator tertanam dari PennyLane.

Simulator tertanam sudah tersedia dengan wadah Hybrid Jobs, Anda hanya perlu menghias fungsi Python utama Anda dengan dekorator. @hybrid_job Untuk menggunakan PennyLane lightning.gpu simulator, Anda juga perlu menentukan GPU instance InstanceConfig seperti yang ditunjukkan pada cuplikan kode berikut:

import pennylane as qml from braket.jobs import hybird_job from braket.jobs.config import InstanceConfig @hybrid_job(device="local:pennylane/lightning.gpu", instance_config=InstanceConfig(instanceType="ml.p3.8xlarge")) def function(wires): dev = qml.device("lightning.gpu", wires=wires) ...

Lihat contoh notebook untuk memulai menggunakan simulator PennyLane tertanam dengan Hybrid Jobs.

Gradien bersebelahan menyala PennyLane dengan simulator Amazon Braket

Dengan PennyLane plugin untuk Amazon Braket, Anda dapat menghitung gradien menggunakan metode diferensiasi adjoint saat berjalan di simulator vektor status lokal atau. SV1

Catatan: Untuk menggunakan metode diferensiasi adjoint, Anda harus menentukan diff_method='device' dalam metode Andaqnode, dan bukan. diff_method='adjoint' Lihat contoh berikut ini.

device_arn = "arn:aws:braket:::device/quantum-simulator/amazon/sv1" dev = qml.device("braket.aws.qubit", wires=wires, shots=0, device_arn=device_arn) @qml.qnode(dev, diff_method="device") def cost_function(params): circuit(params) return qml.expval(cost_h) gradient = qml.grad(circuit) initial_gradient = gradient(params0)
catatan

Saat ini, PennyLane akan menghitung indeks pengelompokan untuk QAOA Hamiltonian dan menggunakannya untuk membagi Hamiltonian menjadi beberapa nilai ekspektasi. Jika Anda ingin menggunakan SV1 kemampuan diferensiasi adjoint saat menjalankan dari QAOA PennyLane, Anda perlu merekonstruksi biaya Hamiltonian dengan menghapus indeks pengelompokan, seperti: cost_h, mixer_h = qml.qaoa.max_clique(g, constrained=False) cost_h = qml.Hamiltonian(cost_h.coeffs, cost_h.ops)