

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# Amazon Braket Hybrid Jobs の使用方法
<a name="braket-jobs"></a>

Amazon Braket Hybrid Jobs は、従来の AWS リソースと量子処理ユニット (QPUs) の両方を必要とするハイブリッド量子古典アルゴリズムを実行する方法を提供します。Hybrid Jobs は、リクエストされた古典的リソースを起動し、アルゴリズムを実行し、完了後にインスタンスを解放するように設計されているため、*使用量*に対してのみ料金が発生します。

Hybrid Jobs は、古典コンピューティングリソースと量子コンピューティングリソースの両方を使用する、長時間実行される反復アルゴリズムに最適です。Hybrid Jobs を使用する場合、実行するアルゴリズムを送信すると、アルゴリズムは、Braket により、スケーラブルでコンテナ化された環境で実行されます。アルゴリズムが完了したら、結果を取得できます。

さらに、ハイブリッドジョブから作成された量子タスクは、ターゲットとなる QPU デバイスへのキューイングにおいて優先順位が高くなるという利点があります。この優先順位付けにより、送信した量子コンピューティングが処理され、キューで待機している他のタスクよりも前に実行されます。これは、1 つの量子タスクの結果が以前の量子タスクの結果に依存する反復ハイブリッドアルゴリズムの場合に特に利点があります。このようなアルゴリズムの例としては、[量子近似最適化アルゴリズム (QAOA)](https://github.com/amazon-braket/amazon-braket-examples/blob/main/examples/hybrid_quantum_algorithms/QAOA/QAOA_braket.ipynb)、[変分量子固有値ソルバー](https://github.com/amazon-braket/amazon-braket-examples/blob/main/examples/hybrid_quantum_algorithms/VQE_Chemistry/VQE_chemistry_braket.ipynb)、[量子機械学習](https://github.com/amazon-braket/amazon-braket-examples/blob/main/examples/hybrid_jobs/1_Quantum_machine_learning_in_Amazon_Braket_Hybrid_Jobs/Quantum_machine_learning_in_Amazon_Braket_Hybrid_Jobs.ipynb)などがあります。また、アルゴリズムの進行状況をほぼリアルタイムでモニタリングできるため、コスト、予算、および、トレーニング損失やトレーニング期待値などのカスタムメトリクスを追跡できます。

Braket のハイブリッドジョブには、以下を使用してアクセスできます。
+ [Amazon Braket Python SDK](https://github.com/aws/amazon-braket-sdk-python)。
+ [Amazon Braket コンソール](https://console.aws.amazon.com/braket/home)。
+ Amazon Braket API。

**Topics**
+ [Amazon Braket Hybrid Jobs を使用すべき場合](#braket-jobs-use)
+ [Amazon Braket Hybrid Jobs でハイブリッドジョブを実行する](#braket-jobs-works)
+ [ハイブリッドジョブの主要なコンセプト](braket-jobs-concepts.md)
+ [前提条件](braket-jobs-prerequisites.md)
+ [ハイブリッドジョブの作成](braket-jobs-first.md)
+ [ハイブリッドジョブのキャンセル](braket-jobs-cancel.md)
+ [ハイブリッドジョブのカスタマイズ](braket-jobs-customize.md)
+ [PennyLane と Amazon Braket の併用](hybrid.md)
+ [CUDA-Q と Amazon Braket の併用方法](braket-using-cuda-q.md)

## Amazon Braket Hybrid Jobs を使用すべき場合
<a name="braket-jobs-use"></a>

 Amazon Braket Hybrid Jobs を使用すると、古典的なコンピューティングリソースと量子コンピューティングデバイスを組み合わせて、今日の量子系のパフォーマンスを最適化する、変分量子固有ソルバー (VQE) や量子近似最適化アルゴリズム (QAOA) などのハイブリッド量子古典アルゴリズムを実行できます。Amazon Braket Hybrid Jobs には、主に次の 3 つの利点があります。

1.  **パフォーマンス**: Amazon Braket Hybrid Jobs は、お客様の環境からハイブリッドアルゴリズムを実行するよりも優れたパフォーマンスを提供します。ハイブリッドジョブは、実行中に、選択したターゲット QPU に優先的にアクセスできます。ハイブリッドジョブ内のタスクは、デバイスでキューに入っている他のタスクよりも先に実行されます。これにより、ハイブリッドアルゴリズムの実行時間が短くなり、予測しやすくなります。また、Amazon Braket Hybrid Jobs は、パラメトリックコンパイルもサポートしています。自由パラメータを使用して回路を送信できるため、Braket は回路を 1 回コンパイルするだけです。同じ回路に対する後続のパラメータ更新を再コンパイルする必要がないため、実行時間がはるかに短縮されます。

1.  **利便性**: Amazon Braket Hybrid Jobs は、コンピューティング環境のセットアップと管理を簡素化し、ハイブリッドアルゴリズムの実行中も実行し続けることができます。アルゴリズムスクリプトを提供し、実行する量子デバイス (量子処理装置またはシミュレーター) を選択するだけでよいのです。Amazon Braket は、ターゲットデバイスが利用可能になるまで待機し、古典リソースを起動し、構築済みのコンテナ環境でワークロードを実行し、Amazon Simple Storage Service (Amazon S3) に結果を返し、コンピューティングリソースを解放します。

1.  **メトリクス**: Amazon Braket Hybrid Jobs は、実行中のアルゴリズムに関するオンザフライのインサイトを提供し、カスタマイズ可能なアルゴリズムメトリクスをほぼリアルタイムで Amazon CloudWatch と Amazon Braket コンソールに配信することで、アルゴリズムの進行状況を追跡できます。

## Amazon Braket Hybrid Jobs でハイブリッドジョブを実行する
<a name="braket-jobs-works"></a>

Amazon Braket Hybrid Jobs でハイブリッドジョブを実行するには、まずアルゴリズムを定義する必要があります。[Amazon Braket Python SDK](https://github.com/aws/amazon-braket-sdk-python) または [PennyLane](https://pennylane.ai) を使用して、*アルゴリズムスクリプト*と、オプションで他の依存関係ファイルを作成することで定義できます。他の (オープンソースまたはプロプライエタリ) ライブラリを使用する場合は、それらのライブラリが含まれている Docker を使用することで、独自のカスタムコンテナイメージを定義できます。詳細については、「[自分のコンテナを持参 (BYOC)](braket-jobs-byoc.md)」を参照してください。

いずれの場合も、次に Amazon Braket API を使用してジョブを作成します。ここで、アルゴリズムスクリプトまたはコンテナを指定し、ハイブリッドジョブが使用するターゲット量子デバイスを選択し、さまざまなオプション設定から選択します。これらのオプション設定で提供されているデフォルト値は、ほとんどのユースケースで機能します。ターゲットデバイスにハイブリッドジョブを実行させる場合、QPU、オンデマンドシミュレーター (SV1、DM1、TN1 など)、または古典的なハイブリッドジョブインスタンス自体のいずれかを選択できます。オンデマンドシミュレーターまたは QPU を選択する場合は、ハイブリッドジョブコンテナはリモートデバイスに API コールを行います。埋め込みシミュレーターを選択する場合は、シミュレーターがアルゴリズムスクリプトと同じコンテナに埋め込まれます。PennyLane の[稲妻シミュレーター](https://github.com/PennyLaneAI/pennylane-lightning)には、デフォルトの構築済みハイブリッドジョブコンテナが埋め込まれています。埋め込み PennyLane シミュレーターまたはカスタムシミュレーターを使用してコードを実行する場合は、インスタンスタイプ、および使用するインスタンスの数を指定できます。各選択肢にかかるコストについては、[Amazon Braket の料金ページ](https://aws.amazon.com/braket/pricing/)を参照してください。

![ユーザーがハイブリッドタスク、QPU タスク、オンデマンドタスク、埋め込みタスクのために、Amazon Braket コンポーネント、API、ジョブインスタンス、シミュレーターに対して行う操作を示すフローチャート図。結果は Amazon Simple Storage Service バケットに保存され、Amazon Braket コンソールで Amazon CloudWatch を使用して分析されます。](http://docs.aws.amazon.com/ja_jp/braket/latest/developerguide/images/braket-hybrid-job-run.png)


ターゲットデバイスがオンデマンドシミュレーターまたは埋め込みシミュレーターの場合、Amazon Braket はハイブリッドジョブの実行をすぐに開始します。ハイブリッドジョブインスタンスがスピンアップされて (API コールでインスタンスタイプをカスタマイズできます) アルゴリズムが実行され、結果が Amazon S3 に書き込まれてリソースが解放されます。このリソースの解放により、使用した分に対してのみお支払いいただくだけで済むようになります。

量子処理ユニット (QPU) あたりの同時ハイブリッドジョブの合計数は制限されています。現在、一度に QPU で実行できるハイブリッドジョブは 1 つのみです。許可される制限を超えないよう、実行できるハイブリッドジョブの数を制御するために、キューが使用されます。ターゲットデバイスが QPU の場合、ハイブリッドジョブは選択した QPU の*ジョブキュー*に最初に入ります。Amazon Braket は、必要なハイブリッドジョブインスタンスを起動し、ハイブリッドジョブをデバイスで実行します。アルゴリズムの期間中、ハイブリッドジョブには優先アクセスがあります。つまり、ハイブリッドジョブの量子タスクが数分に 1 回 QPU に送信されている場合、ジョブの量子タスクはデバイスでキューに入れられた他の Braket 量子タスクよりも先に実行されます。ハイブリッドジョブが完了すると、リソースが解放されるため、使用した分に対してのみ料金が発生します。

**注記**  
デバイスはリージョン別であり、ハイブリッドジョブはプライマリデバイス AWS リージョン と同じ で実行されます。

シミュレーターおよび QPU の両方のターゲットシナリオで、アルゴリズムの一部としてハミルトニアンのエネルギーなどのカスタムアルゴリズムメトリクスを定義するオプションがあります。これらのメトリクスは Amazon CloudWatch に自動的にレポートされ、そこからほぼリアルタイムに Amazon Braket コンソールに表示されます。

**注記**  
GPU ベースのインスタンスを使用する場合は、Braket の埋め込みシミュレーターとともに使用できるいずれかの GPU ベースシミュレーター (例えば `lightning.gpu` など) を使用してください。いずれかの CPU ベース埋め込みシミュレーター (例えば `lightning.qubit` や `braket:default-simulator` など) を選択した場合、GPU が使用されないため、不要なコストが発生する可能性があります。