Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Buat Pekerjaan Hybrid
Bagian ini menunjukkan cara membuat Hybrid Job menggunakan skrip Python. Atau, untuk membuat pekerjaan hybrid dari kode Python lokal, seperti lingkungan pengembangan terintegrasi (IDE) pilihan Anda atau notebook Braket, lihatJalankan kode lokal Anda sebagai pekerjaan hybrid.
Di bagian ini:
Buat dan jalankan
Setelah Anda memiliki peran dengan izin untuk menjalankan pekerjaan hybrid, Anda siap untuk melanjutkan. Bagian kunci dari pekerjaan hybrid Braket pertama Anda adalah skrip algoritma. Ini mendefinisikan algoritma yang ingin Anda jalankan dan berisi logika klasik dan tugas kuantum yang merupakan bagian dari algoritma Anda. Selain skrip algoritma Anda, Anda dapat menyediakan file ketergantungan lainnya. Skrip algoritma bersama dengan dependensinya disebut modul sumber. T itik masuk menentukan file atau fungsi pertama yang akan dijalankan di modul sumber Anda saat pekerjaan hybrid dimulai.
Pertama, pertimbangkan contoh dasar berikut dari skrip algoritma yang membuat lima status bel dan mencetak hasil pengukuran yang sesuai.
import os from braket.aws import AwsDevice from braket.circuits import Circuit def start_here(): print("Test job started!") # Use the device declared in the job script device = AwsDevice(os.environ["AMZN_BRAKET_DEVICE_ARN"]) bell = Circuit().h(0).cnot(0, 1) for count in range(5): task = device.run(bell, shots=100) print(task.result().measurement_counts) print("Test job completed!")
Simpan file ini dengan nama algorithm_script.py di direktori kerja Anda saat ini di notebook Braket Anda atau lingkungan lokal. File algorithm_script.py memiliki start_here() titik masuk yang direncanakan.
Selanjutnya, buat file Python atau notebook Python di direktori yang sama dengan file algorithm_script.py. Skrip ini memulai pekerjaan hybrid dan menangani pemrosesan asinkron apa pun, seperti mencetak status atau hasil utama yang kami minati. Paling tidak, skrip ini perlu menentukan skrip pekerjaan hibrida dan perangkat utama Anda.
catatan
Untuk informasi selengkapnya tentang cara membuat buku catatan Braket atau mengunggah file, seperti file algorithm_script.py, di direktori yang sama dengan buku catatan, lihat Men jalankan sirkuit pertama menggunakan Amazon Braket Python SDK
Untuk kasus pertama dasar ini, Anda menargetkan simulator. Apa pun jenis perangkat kuantum yang Anda targetkan, simulator atau unit pemrosesan kuantum aktual (QPU), perangkat yang Anda tentukan device dalam skrip berikut digunakan untuk menjadwalkan pekerjaan hybrid dan tersedia untuk skrip algoritma sebagai variabel AMZN_BRAKET_DEVICE_ARN lingkungan.
catatan
Anda hanya dapat menggunakan perangkat yang tersedia dalam Wilayah AWS pekerjaan hybrid Anda. Amazon Braket SDK secara otomatis memilih ini Wilayah AWS. Misalnya, pekerjaan hybrid di us-east-1 dapat menggunakanIonQ,, dan DM1 perangkatSV1, tetapi bukan Rigetti perangkat.
Jika Anda memilih komputer kuantum alih-alih simulator, Braket menjadwalkan pekerjaan hybrid Anda untuk menjalankan semua tugas kuantum mereka dengan akses prioritas.
from braket.aws import AwsQuantumJob from braket.devices import Devices job = AwsQuantumJob.create( Devices.Amazon.SV1, source_module="algorithm_script.py", entry_point="algorithm_script:start_here", wait_until_complete=True )
Parameter wait_until_complete=True menetapkan mode verbose sehingga pekerjaan Anda mencetak output dari pekerjaan yang sebenarnya saat sedang berjalan. Anda akan melihat output yang mirip dengan contoh berikut.
Initializing Braket Job: arn:aws:braket:us-west-2:111122223333:job/braket-job-default-123456789012 Job queue position: 1 Job queue position: 1 Job queue position: 1 .............. . . . Beginning Setup Checking for Additional Requirements Additional Requirements Check Finished Running Code As Process Test job started! Counter({'00': 58, '11': 42}) Counter({'00': 55, '11': 45}) Counter({'11': 51, '00': 49}) Counter({'00': 56, '11': 44}) Counter({'11': 56, '00': 44}) Test job completed! Code Run Finished 2025-09-24 23:13:40,962 sagemaker-training-toolkit INFO Reporting training SUCCESS
catatan
Anda juga dapat menggunakan modul yang dibuat khusus dengan AwsQuantumJob.create
Pantau hasil Anda
Atau, Anda dapat mengakses output log dari Amazon CloudWatch. Untuk melakukan ini, buka tab Grup log di menu kiri halaman detail pekerjaan, pilih grup logaws/braket/jobs, lalu pilih aliran log yang berisi nama pekerjaan. Dalam contoh di atas, ini adalahbraket-job-default-1631915042705/algo-1-1631915190.
Anda juga dapat melihat status pekerjaan hybrid di konsol dengan memilih halaman Pekerjaan Hibrid dan kemudian memilih Peng aturan.
Pekerjaan hybrid Anda menghasilkan beberapa artefak di Amazon S3 saat berjalan. Nama bucket S3 default adalah amazon-braket-<region>-<accountid> dan konten ada di jobs/<jobname>/<timestamp> direktori. Anda dapat mengonfigurasi lokasi S3 tempat artefak ini disimpan dengan menentukan yang berbeda code_location saat pekerjaan hybrid dibuat dengan Braket Python SDK.
catatan
Bucket S3 ini harus berada di lokasi yang Wilayah AWS sama dengan skrip pekerjaan Anda.
Direk jobs/<jobname>/<timestamp> tori berisi subfolder dengan output dari skrip titik masuk dalam model.tar.gz file. Ada juga direktori yang disebut script yang berisi artefak skrip algoritma Anda dalam source.tar.gz file. Hasil dari tugas kuantum Anda yang sebenarnya ada di direktori bernamajobs/<jobname>/tasks.
Simpan hasil Anda
Anda dapat menyimpan hasil yang dihasilkan oleh skrip algoritma sehingga tersedia dari objek pekerjaan hibrida di skrip pekerjaan hibrida serta dari folder keluaran di Amazon S3 (dalam file tar-zip bernama model.tar.gz).
Output harus disimpan dalam file menggunakan format JavaScript Object Notation (JSON). Jika data tidak dapat dengan mudah diserialkan menjadi teks, seperti dalam kasus array numpy, Anda dapat memberikan opsi untuk membuat serial menggunakan format data acar. Lihat modul braket.jobs.data_persistent untuk detail selengkapnya.
Untuk menyimpan hasil pekerjaan hybrid, tambahkan baris berikut yang dikomentari dengan #ADD ke file algorithm_script.py.
import os from braket.aws import AwsDevice from braket.circuits import Circuit from braket.jobs import save_job_result # ADD def start_here(): print("Test job started!") device = AwsDevice(os.environ['AMZN_BRAKET_DEVICE_ARN']) results = [] # ADD bell = Circuit().h(0).cnot(0, 1) for count in range(5): task = device.run(bell, shots=100) print(task.result().measurement_counts) results.append(task.result().measurement_counts) # ADD save_job_result({"measurement_counts": results}) # ADD print("Test job completed!")
Anda kemudian dapat menampilkan hasil pekerjaan dari skrip pekerjaan Anda dengan menambahkan baris yang di print(job.result()) komentari dengan #ADD.
import time from braket.aws import AwsQuantumJob job = AwsQuantumJob.create( source_module="algorithm_script.py", entry_point="algorithm_script:start_here", device="arn:aws:braket:::device/quantum-simulator/amazon/sv1", ) print(job.arn) while job.state() not in AwsQuantumJob.TERMINAL_STATES: print(job.state()) time.sleep(10) print(job.state()) print(job.result()) # ADD
Dalam contoh ini, kami telah menghapus wait_until_complete=True untuk menekan output verbose. Anda dapat menambahkannya kembali untuk debugging. Ketika Anda menjalankan pekerjaan hibrida ini, ia menampilkan pengenal danjob-arn, diikuti oleh status pekerjaan hybrid setiap 10 detik hingga pekerjaan hibridaCOMPLETED, setelah itu ia menunjukkan kepada Anda hasil rangkaian bel. Lihat contoh berikut ini.
arn:aws:braket:us-west-2:111122223333:job/braket-job-default-123456789012 INITIALIZED RUNNING RUNNING RUNNING RUNNING RUNNING RUNNING RUNNING RUNNING RUNNING RUNNING ... RUNNING RUNNING COMPLETED {'measurement_counts': [{'11': 53, '00': 47},..., {'00': 51, '11': 49}]}
Menggunakan pos pemeriksaan
Anda dapat menyimpan iterasi menengah dari pekerjaan hybrid Anda menggunakan pos pemeriksaan. Dalam contoh skrip algoritma dari bagian sebelumnya, Anda akan menambahkan baris berikut yang dikomentari dengan #ADD untuk membuat file checkpoint.
from braket.aws import AwsDevice from braket.circuits import Circuit from braket.jobs import save_job_checkpoint # ADD import os def start_here(): print("Test job starts!") device = AwsDevice(os.environ["AMZN_BRAKET_DEVICE_ARN"]) # ADD the following code job_name = os.environ["AMZN_BRAKET_JOB_NAME"] save_job_checkpoint(checkpoint_data={"data": f"data for checkpoint from {job_name}"}, checkpoint_file_suffix="checkpoint-1") # End of ADD bell = Circuit().h(0).cnot(0, 1) for count in range(5): task = device.run(bell, shots=100) print(task.result().measurement_counts) print("Test hybrid job completed!")
Saat Anda menjalankan pekerjaan hybrid, itu membuat file <jobname>-checkpoint-1.json di artefak pekerjaan hybrid Anda di direktori checkpoints dengan jalur default. /opt/jobs/checkpoints Skrip pekerjaan hibrida tetap tidak berubah kecuali Anda ingin mengubah jalur default ini.
Jika Anda ingin memuat pekerjaan hybrid dari pos pemeriksaan yang dihasilkan oleh pekerjaan hybrid sebelumnya, skrip algoritma menggunakanfrom braket.jobs import load_job_checkpoint. Logika untuk memuat dalam skrip algoritma Anda adalah sebagai berikut.
from braket.jobs import load_job_checkpoint checkpoint_1 = load_job_checkpoint( "previous_job_name", checkpoint_file_suffix="checkpoint-1", )
Setelah memuat pos pemeriksaan ini, Anda dapat melanjutkan logika Anda berdasarkan konten yang dimuat kecheckpoint-1.
catatan
Checkpoint_file_suffix harus sesuai dengan akhiran yang ditentukan sebelumnya saat membuat pos pemeriksaan.
Skrip orkestrasi Anda perlu menentukan job-arn dari pekerjaan hybrid sebelumnya dengan baris yang dikomentari dengan #ADD.
from braket.aws import AwsQuantumJob job = AwsQuantumJob.create( source_module="source_dir", entry_point="source_dir.algorithm_script:start_here", device="arn:aws:braket:::device/quantum-simulator/amazon/sv1", copy_checkpoints_from_job="<previous-job-ARN>", #ADD )