Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Input, output, variabel lingkungan, dan fungsi pembantu
Selain file atau file yang membentuk skrip algoritme lengkap Anda, pekerjaan hybrid Anda dapat memiliki input dan output tambahan. Saat pekerjaan hybrid Anda dimulai, Amazon Braket menyalin input yang disediakan sebagai bagian dari pembuatan pekerjaan hybrid ke dalam wadah yang menjalankan skrip algoritme. Saat pekerjaan hybrid selesai, semua output yang ditentukan selama algoritme akan disalin ke lokasi Amazon S3 yang ditentukan.
catatan
Metrik algoritma dilaporkan secara real time dan tidak mengikuti prosedur keluaran ini.
AmazonBraket juga menyediakan beberapa variabel lingkungan dan fungsi pembantu untuk menyederhanakan interaksi dengan input dan output kontainer.
Bagian ini menjelaskan konsep kunci dari AwsQuantumJob.create
fungsi yang disediakan oleh Amazon Braket Python SDK dan pemetaannya ke struktur file kontainer.
Di bagian ini:
Masukan
Data input: Data input dapat diberikan ke algoritma hybrid dengan menentukan file data input, yang diatur sebagai kamus, dengan input_data
argumen. Pengguna mendefinisikan input_data
argumen dalam AwsQuantumJob.create
fungsi di SDK. Ini menyalin data input ke sistem file kontainer di lokasi yang diberikan oleh variabel lingkungan"AMZN_BRAKET_INPUT_DIR"
. Untuk beberapa contoh bagaimana data input digunakan dalam algoritma hybrid, lihat QAOA dengan Amazon Braket Hybrid Jobs PennyLane dan dan Quantum machine learning di notebook Amazon Braket Hybrid Jobs Jupyter
catatan
Ketika data input besar (> 1GB), akan ada waktu tunggu yang lama sebelum pekerjaan hybrid diajukan. Hal ini disebabkan oleh fakta bahwa data input lokal pertama-tama akan diunggah ke bucket S3, kemudian jalur S3 akan ditambahkan ke permintaan pekerjaan hybrid, dan, akhirnya, permintaan pekerjaan hybrid diajukan ke layanan Braket.
Hyperparameters: Jika Anda masukhyperparameters
, mereka tersedia di bawah variabel "AMZN_BRAKET_HP_FILE"
lingkungan.
catatan
Checkpoints: Untuk menentukan pos pemeriksaan job-arn
yang ingin Anda gunakan dalam pekerjaan hybrid baru, gunakan perintah. copy_checkpoints_from_job
Perintah ini menyalin data pos pemeriksaan ke checkpoint_configs3Uri
pekerjaan hybrid baru, membuatnya tersedia di jalur yang diberikan oleh variabel lingkungan AMZN_BRAKET_CHECKPOINT_DIR
saat pekerjaan berjalan. Defaultnya adalahNone
, artinya data pos pemeriksaan dari pekerjaan hybrid lain tidak akan digunakan dalam pekerjaan hybrid baru.
Output
Quantum Tasks: Hasil tugas kuantum disimpan di lokasi s3://amazon-braket-<region>-<accountID>/jobs/<job-name>/tasks
S3.
Hasil pekerjaan: Semua yang disimpan skrip algoritme Anda ke direktori yang diberikan oleh variabel lingkungan "AMZN_BRAKET_JOB_RESULTS_DIR"
disalin ke lokasi S3 yang ditentukan. output_data_config
Jika Anda tidak menentukan nilai ini, defaultnya. s3://amazon-braket-<region>-<accountID>/jobs/<job-name>/<timestamp>/data
Kami menyediakan fungsi pembantu SDK save_job_result
, yang dapat Anda gunakan untuk menyimpan hasil dengan nyaman dalam bentuk kamus saat dipanggil dari skrip algoritme Anda.
Checkpoints: Jika Anda ingin menggunakan pos pemeriksaan, Anda dapat menyimpannya di direktori yang diberikan oleh variabel lingkungan. "AMZN_BRAKET_CHECKPOINT_DIR"
Anda juga dapat menggunakan fungsi save_job_checkpoint
pembantu SDK sebagai gantinya.
Metrik algoritma: Anda dapat menentukan metrik algoritme sebagai bagian dari skrip algoritme yang dipancarkan ke CloudWatch Amazon dan ditampilkan secara real time di Amazon konsol Braket saat pekerjaan hybrid Anda berjalan. Untuk contoh cara menggunakan metrik algoritme, lihat Menggunakan Pekerjaan Hibrid Amazon Braket untuk menjalankan algoritma QAOA.
Variabel lingkungan
AmazonBraket menyediakan beberapa variabel lingkungan untuk menyederhanakan interaksi dengan input dan output kontainer. Kode berikut mencantumkan variabel lingkungan yang digunakan Braket.
# the input data directory opt/braket/input/data os.environ["AMZN_BRAKET_INPUT_DIR"] # the output directory opt/braket/model to write job results to os.environ["AMZN_BRAKET_JOB_RESULTS_DIR"] # the name of the job os.environ["AMZN_BRAKET_JOB_NAME"] # the checkpoint directory os.environ["AMZN_BRAKET_CHECKPOINT_DIR"] # the file containing the hyperparameters os.environ["AMZN_BRAKET_HP_FILE"] # the device ARN (AWS Resource Name) os.environ["AMZN_BRAKET_DEVICE_ARN"] # the output S3 bucket, as specified in the CreateJob request’s OutputDataConfig os.environ["AMZN_BRAKET_OUT_S3_BUCKET"] # the entry point as specified in the CreateJob request’s ScriptModeConfig os.environ["AMZN_BRAKET_SCRIPT_ENTRY_POINT"] # the compression type as specified in the CreateJob request’s ScriptModeConfig os.environ["AMZN_BRAKET_SCRIPT_COMPRESSION_TYPE"] # the S3 location of the user’s script as specified in the CreateJob request’s ScriptModeConfig os.environ["AMZN_BRAKET_SCRIPT_S3_URI"] # the S3 location where the SDK would store the quantum task results by default for the job os.environ["AMZN_BRAKET_TASK_RESULTS_S3_URI"] # the S3 location where the job results would be stored, as specified in CreateJob request’s OutputDataConfig os.environ["AMZN_BRAKET_JOB_RESULTS_S3_PATH"] # the string that should be passed to CreateQuantumTask’s jobToken parameter for quantum tasks created in the job container os.environ["AMZN_BRAKET_JOB_TOKEN"]
Fungsi pembantu
AmazonBraket menyediakan beberapa fungsi pembantu untuk menyederhanakan interaksi dengan input dan output kontainer. Fungsi pembantu ini akan dipanggil dari dalam skrip algoritma yang digunakan untuk menjalankan Job Hybrid Anda. Contoh berikut menunjukkan cara menggunakannya.
get_checkpoint_dir() # get the checkpoint directory get_hyperparameters() # get the hyperparameters as strings get_input_data_dir() # get the input data directory get_job_device_arn() # get the device specified by the hybrid job get_job_name() # get the name of the hybrid job. get_results_dir() # get the path to a results directory save_job_result() # save hybrid job results save_job_checkpoint() # save a checkpoint load_job_checkpoint() # load a previously saved checkpoint