Input, output, variabel lingkungan, dan fungsi pembantu - Amazon Braket

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.

Amazon Braket 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.

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.

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

Amazon Braket menyediakan beberapa variabel lingkungan untuk menyederhanakan interaksi dengan input dan output kontainer. Kode berikut mencantumkan variabel lingkungan yang digunakan Braket.

  • AMZN_BRAKET_INPUT_DIR— Direktori data inputopt/braket/input/data.

  • AMZN_BRAKET_JOB_RESULTS_DIR— Direktori output opt/braket/model untuk menulis hasil pekerjaan ke.

  • AMZN_BRAKET_JOB_NAME- Nama pekerjaan.

  • AMZN_BRAKET_CHECKPOINT_DIR— Direktori pos pemeriksaan.

  • AMZN_BRAKET_HP_FILE— File yang berisi hyperparameters.

  • AMZN_BRAKET_DEVICE_ARN— Perangkat ARN (Nama AWS Sumber Daya).

  • AMZN_BRAKET_OUT_S3_BUCKET- Bucket Amazon S3 keluaran, seperti yang ditentukan dalam CreateJob permintaan. OutputDataConfig

  • AMZN_BRAKET_SCRIPT_ENTRY_POINT— Titik masuk seperti yang ditentukan dalam CreateJob permintaanScriptModeConfig.

  • AMZN_BRAKET_SCRIPT_COMPRESSION_TYPE— Jenis kompresi seperti yang ditentukan dalam CreateJob permintaanScriptModeConfig.

  • AMZN_BRAKET_SCRIPT_S3_URI— Lokasi Amazon S3 dari skrip pengguna seperti yang ditentukan dalam CreateJob permintaan. ScriptModeConfig

  • AMZN_BRAKET_TASK_RESULTS_S3_URI— Lokasi Amazon S3 tempat SDK akan menyimpan hasil tugas kuantum secara default untuk pekerjaan tersebut.

  • AMZN_BRAKET_JOB_RESULTS_S3_PATH— Lokasi Amazon S3 tempat hasil pekerjaan akan disimpan, seperti yang ditentukan dalam CreateJob permintaan. OutputDataConfig

  • AMZN_BRAKET_JOB_TOKEN— String yang harus diteruskan ke CreateQuantumTask jobToken parameter untuk tugas kuantum yang dibuat dalam wadah pekerjaan.

Fungsi pembantu

Amazon Braket 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