翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
ハイブリッドジョブの主な概念
このセクションでは、Amazon Braket Python SDK が提供する AwsQuantumJob.create関数の主要な概念と、コンテナファイル構造へのマッピングについて説明します。
完全なアルゴリズムスクリプトを構成する ファイルに加えて、ハイブリッドジョブには追加の入力と出力を含めることができます。ハイブリッドジョブが開始されると、AmazonBraket はハイブリッドジョブの作成の一部として提供された入力をアルゴリズムスクリプトを実行するコンテナにコピーします。ハイブリッドジョブが完了すると、アルゴリズム中に定義されたすべての出力が、指定された Amazon S3 の場所にコピーされます。
注記
アルゴリズムメトリクスはリアルタイムで報告されますので、この出力手順に従わないでください。
Amazon Braket では、コンテナの入力と出力とのやりとりを簡素化するために、いくつかの環境変数とヘルパー関数も指定します。詳細については、Amazon Braket SDK の braket.jobs パッケージ
入力
入力データ: 入力データは、 input_data引数でディクショナリとして設定された入力データファイルを指定することで、ハイブリッドアルゴリズムに提供できます。ユーザーは SDK の AwsQuantumJob.create関数内で引input_data数を定義します。これにより、環境変数 によって指定された場所にあるコンテナファイルシステムに入力データがコピーされます"AMZN_BRAKET_INPUT_DIR"。ハイブリッドアルゴリズムでの入力データの使用方法のいくつかの例については、Amazon Braket Hybrid Jobs を使用した QAOA」と「Amazon Braket Hybrid Jobs Jupyter ノートブック」の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" で指定されたディレクトリに保存できます。代わりに、SDK ヘルパー関数 save_job_checkpoint を使用することもできます。
アルゴリズムメトリクス: アルゴリズムメトリクスは、ハイブリッドジョブの実行中に Amazon CloudWatch に出力され、AmazonBraket コンソールにリアルタイムで表示されるアルゴリズムスクリプトの一部として定義できます。アルゴリズムメトリクスの使用方法の例については、Amazon Braket Hybrid Jobs を使用して QAOA アルゴリズムを実行する」を参照してください。
ジョブ出力の保存の詳細については、ハイブリッドジョブドキュメントの「結果を保存する」を参照してください。
環境変数
Amazon Braket は、コンテナの入力と出力の操作を簡素化するために、いくつかの環境変数を指定しています。次のコードは、Braket が使用する環境変数を一覧表示します。
-
AMZN_BRAKET_INPUT_DIR– 入力データディレクトリ opt/braket/input/data。 -
AMZN_BRAKET_JOB_RESULTS_DIR– ジョブ結果を書き込む出力ディレクトリ opt/braket/model。 -
AMZN_BRAKET_JOB_NAME- ジョブの名前。 -
AMZN_BRAKET_CHECKPOINT_DIR– チェックポイントディレクトリ。 -
AMZN_BRAKET_HP_FILE– ハイパーパラメータを含むファイル。 -
AMZN_BRAKET_DEVICE_ARN– デバイス ARN (AWS リソース名)。 -
AMZN_BRAKET_OUT_S3_BUCKET–CreateJobリクエストの で指定されている出力 Amazon S3 バケットOutputDataConfig。 -
AMZN_BRAKET_SCRIPT_ENTRY_POINT–CreateJobリクエストの で指定されたエントリポイントScriptModeConfig。 -
AMZN_BRAKET_SCRIPT_COMPRESSION_TYPE–CreateJobリクエストの で指定された圧縮タイプScriptModeConfig。 -
AMZN_BRAKET_SCRIPT_S3_URI–CreateJobリクエストの で指定されたユーザーのスクリプトの Amazon S3 の場所ScriptModeConfig。 -
AMZN_BRAKET_TASK_RESULTS_S3_URI– SDK がジョブの量子タスク結果をデフォルトで保存する Amazon S3 の場所。 -
AMZN_BRAKET_JOB_RESULTS_S3_PATH–CreateJobリクエストの で指定されている、ジョブ結果が保存される Amazon S3 の場所OutputDataConfig。 -
AMZN_BRAKET_JOB_TOKEN– ジョブコンテナで作成された量子タスクの のCreateQuantumTaskjobTokenパラメータに渡される文字列。
ヘルパー関数
Amazon Braket には、コンテナの入出力とのやりとりを簡素化するためのいくつかのヘルパー関数が指定されています。これらのヘルパー関数は、ハイブリッドジョブの実行に使用されるアルゴリズムスクリプト内から呼び出されます。次の例は、その使用方法を示しています。
from braket.jobs import get_checkpoint_dir, get_hyperparameters, get_input_data_dir, get_job_device_arn, get_job_name, get_results_dir, save_job_result, save_job_checkpoint, load_job_checkpoint 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(result_data='data') # Save hybrid job results save_job_checkpoint(checkpoint_data={'key': 'value'}) # Save a checkpoint load_job_checkpoint() # Load a previously saved checkpoint