翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
入力、出力、環境変数、ヘルパー関数
完全なアルゴリズムスクリプトを構成する ファイルに加えて、ハイブリッドジョブには追加の入力と出力を含めることができます。ハイブリッドジョブが開始されると、Amazon Braket は、ハイブリッドジョブ作成の一部として提供された入力を、アルゴリズムスクリプトを実行するコンテナにコピーします。ハイブリッドジョブが完了すると、アルゴリズム中に定義されたすべての出力が、指定された Amazon S3 の場所にコピーされます。
注記
アルゴリズムメトリクスはリアルタイムで報告されますので、この出力手順に従わないでください。
Amazon Braket では、コンテナの入力と出力とのやりとりを簡素化するために、いくつかの環境変数とヘルパー関数も指定します。
このセクションでは、Amazon Braket Python によって提供される AwsQuantumJob.create
関数の主要な概念SDKと、コンテナファイル構造へのマッピングについて説明します。
入力
入力データ: 入力データは、 input_data
引数でディクショナリとして設定される入力データファイルを指定することで、ハイブリッドアルゴリズムに提供できます。ユーザーは、 の AwsQuantumJob.create
関数内で引input_data
数を定義しますSDK。これにより、環境変数 で指定された場所にあるコンテナファイルシステムに入力データがコピーされます"AMZN_BRAKET_INPUT_DIR"
。ハイブリッドアルゴリズムでの入力データの使用方法のいくつかの例については、QAOAAmazon Braket Hybrid Jobs を使用した PennyLane
注記
入力データが大きい場合 (>1GB)、ハイブリッドジョブが送信されるまでに長い待機時間があります。これは、ローカル入力データが最初に S3 バケットにアップロードされ、次に S3 パスがハイブリッドジョブリクエストに追加され、最後にハイブリッドジョブリクエストが Braket サービスに送信されるためです。
ハイパーパラメータ: 通り過ぎたらhyperparameters
の場合、環境変数で使用できます。"AMZN_BRAKET_HP_FILE"
。
注記
ハイパーパラメータと入力データを作成し、この情報をハイブリッドジョブスクリプトに渡す方法の詳細については、「ハイパーパラメータを使用する」セクションとこの github ページ
チェックポイント: 新しいハイブリッドジョブで使用するチェックポイントjob-arn
を持つ を指定するには、 copy_checkpoints_from_job
コマンドを使用します。このコマンドは、チェックポイントデータを新しいハイブリッドジョブcheckpoint_configs3Uri
の にコピーし、ジョブの実行AMZN_BRAKET_CHECKPOINT_DIR
中に環境変数によって指定されたパスで使用できるようにします。デフォルトは です。つまりNone
、別のハイブリッドジョブのチェックポイントデータは新しいハイブリッドジョブでは使用されません。
出力
量子タスク: 量子タスクの結果は S3 の場所 に保存されますs3://amazon-braket-<region>-<accountID>/jobs/<job-name>/tasks
。
ジョブの結果: アルゴリズムスクリプトが環境変数 "AMZN_BRAKET_JOB_RESULTS_DIR"
で指定されたディレクトリに保存するものはすべて、output_data_config
で指定された S3 の場所にコピーされます。この値を指定していない場合は、デフォルトで s3://amazon-braket-<region>-<accountID>/jobs/<job-name>/<timestamp>/data
になります。SDK ヘルパー関数 save_job_result
が用意されています。これを使用すると、アルゴリズムスクリプトから呼び出されたときに、結果をディクショナリの形式で簡単に保存できます。
チェックポイント: チェックポイントを使用する場合は、環境変数 "AMZN_BRAKET_CHECKPOINT_DIR"
で指定されたディレクトリに保存できます。save_job_checkpoint
代わりに SDKヘルパー関数を使用することもできます。
アルゴリズムメトリクス: アルゴリズムメトリクスは、Amazon に出力 CloudWatch され、 にリアルタイムで表示されるアルゴリズムスクリプトの一部として定義できます。Amazon ハイブリッドジョブの実行中に Braket コンソール。アルゴリズムメトリクスの使用方法の例については、Amazon Braket Hybrid Jobs を使用してQAOAアルゴリズムを実行する」を参照してください。
環境変数
Amazon Braket は、コンテナの入力と出力の操作を簡素化するために、いくつかの環境変数を指定しています。次のコードは、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"]
ヘルパー関数
Amazon Braket には、コンテナの入出力とのやりとりを簡素化するためのいくつかのヘルパー関数が指定されています。これらのヘルパー関数は、ハイブリッドジョブの実行に使用されるアルゴリズムスクリプト内から呼び出されます。次の例は、その使用方法を示しています。
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