[レポート] QTC001 Amazon Braket でのハイブリッド量子古典最適化ワークロード #reinvent

2022.12.11

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

AWS事業本部 梶原@福岡オフィスです。 ラスベガスで開催されているre:Invent2022に参加してきました。 今回はシアターセッションに参加してきたのでレポートしたいと思います。

※※※
本セッションレポートは、現地での聞き取りまた、Google翻訳, DeepL翻訳等を使用しつつレポートしております。
内容には十分注意して作成しておりますが、誤訳または誤って理解している部分がある可能性があることをご容赦いただければと思います。
※※※

セッション概要

タイトル

Hybrid quantum-classical optimization workloads on Amazon Braket

概要

Quantum computers hold the promise to outperform even the most powerful classical computers on a range of computational problems. The near-term focus of quantum computing applications are hybrid algorithms where the noisy quantum computers are used as co-processors within a larger optimization loop. In this session, Amazon Braket Hybrid Jobs is used to run the quantum approximate optimization algorithm (QAOA). The QAOA has different input settings, similar to machine learning inputs, that are commonly referred to as hyperparameters. The demo in this session shows how to set up the problem, prepare input data, and run QAOA using Braket Hybrid Jobs.

量子コンピュータは、様々な計算問題において、最も強力な古典的コンピュータを凌駕する性能を発揮することが期待されています。量子コンピュータのアプリケーションの近い将来の焦点は、ノイズの多い量子コンピュータをより大きな最適化ループの中のコプロセッサとして使用するハイブリッドアルゴリズムです。本セッションでは、Amazon Braket Hybrid Jobsを使用して、量子近似最適化アルゴリズム(QAOA)を実行します。QAOAには、機械学習の入力と同様に、一般にハイパーパラメータと呼ばれる異なる入力設定があります。このセッションのデモでは、問題の設定、入力データの準備、そしてBraket Hybrid Jobsを使ったQAOAの実行方法を紹介します。

スピーカー

(Eric Kessler, Sr. Manager Applied Science, AWS) Katharine Hyatt, Applied Scientist, AWS

公式のセッション紹介サイトではEric Kessler氏となっていましたが、 Katharine Hyatt氏が話されていました

セッション内容

Hybrid classical-quantum workloads in Amazon Braket

  • Amazon Braketのハイブリッドジョブをもちいて、シミュレータとQPUを使って、最適化問題を解決する方法についてお話しします。
  • Amazon Bracketとはなにか?
  • ハイブリッドジョブとはなにか?

  • Amazon Bracketは、実際の量子デバイスやその最新シミュレータ上で量子回路やタスク、ワークフローを構築し、テスト実行、分析することができるAWSのマネージドサービスです。
  • ジョブはDocker Imageで構成されている
  • ジョブはあなたのラップトップまたはインスタンス上でも実行することができる

  • 実行を監視するためにCloudWatchを使用することができる

  • 結果をS3に保存することも可能
  • ECRを使用してジョブをまるごと、Docker コンテナとして管理することもできる
  • ハイブリッドジョブを実行している間、量子コンピュータデバイスに優先的にアクセスできる

The Quantum Approximate Optimaization Algorithm and the max clique problem

  • 量子シミュレータ上で実行する変分アルゴリズムを紹介します。
  • ハイブリッドジョブの設定方法、ジョブの起動方法、そして最後に結果を見る方法について説明します。
  • アルゴリズムは 量子近似最適化アルゴリズムと呼ばれます
  • この最適化アルゴリズムを使って、二項最適化問題を調べます。
  • 最近の量子コンピュータは、量子ビットの数が少なく、また、量子ビットにノイズが多いことが多い、だからといって、今あるデバイスで面白いことができないわけではない
  • GPUを使った古典的な機械学習と非常によく似たことを、量子デバイスをコプロセッサとして使って最適化できるようになればいいと考えている
  • 古典的なコンピュータでは難しい問題を量子デバイスに送り、結果を得て、GPUを使った拡散モデルのようなものをトレーニングするのと同じように、トレーニングパラメータを更新する

  • QAOAは、制約のない二項最適化問題の解を決定するための技術
  • 今日の問題は、マックス・プランクの問題で、最短経路探索の問題
  • 量子デバイスをコプロセッサとして使用します。
  • 実際のアルゴリズムは、コスト層とミキサー層の両方を持つ、複数の層を持つ回路を適用することで機能します。

PennyLane and Amazon Braket

  • 今回のデモでは小さなグラフを作成して最短経路を求める問題を取り扱います
  • Pennylaneについて
  • PennylaneはクロスプラットフォームのPythonライブラリで、量子コミューターの差分プログラミングを行うことができます。
  • この種のハイブリッド量子古典ワークフローをセットアップするための非常に強力な方法と言えます。
  • ニューラルネットワークの回路や要素をひとつひとつ自分で構築するような細かい作業をする必要はありません。
  • QAOA問題の解決策を構築するのは、ここにあるシンプルなコードで行なえます。
  • Pennylaneには任意のグラフの最大クリーク問題を解くのに必要な回路のサブルーチンがすでに組み込まれています。
  • 先ほど説明したコストとミキサーのハミルトニアンを簡単に生成することができます。

Specify a devive for the Hyblid Job to use

  • デバイスと言うのは、ワークフローでGPUの役割を果たす量子コプロセッサのことです。
  • AWSが提供するオンデマンドシミュレータを使用します。
  • 複数のタスクを同時に実行することができます。

  • このデモでは、シミュレータを使いますが、1行のコードの変更で、既存の量子デバイスで実行するように簡単に変更できます。

Submit a job

  • 古典的な機械学習と同じように、ハイパーパラメータを設定します

  • このアルゴリズムと学習手順とPenny Laneを実行するので、それに対応するDockerコンテナを選択する必要があります。
  • ハイブリッドジョブはDockerコンテナを使用します。
  • Braketは誰でも使えるDockerコンテナをすでにいくつかビルドしてくれています。

  • 量子ジョブを作成する際には、引数を与えて、「このデバイスを使いたい」と伝えます。P— -
  • PythonコードのソースモジュールやPythonモジュールをDockerコンテナにロードして、実際にワークロードを実行させる

  • ここでは、学習パラメータを用いた最も可能性の高い結果のヒストグラムを作成し、最終的にそれらをグラフに適用することができます。

  • 最大クリークに含まれる頂点は赤で描かれています。

  • この非常にシンプルな問題に対して この種の問題を素早く解決することができました。
  • しかし、もっと難しい問題や、解が明らかでないグラフなどにも、これを一般化できることはとてもエキサイティングです。
  • これからみなさんが新しい問題を作って解けるようになること、そしてハイブリッドジョブでどんな実験ができるようになるのか、とても楽しみです。

感想

量子コンピューティングを用いた、従来のGPUを用いた最適化問題をQPUに置き換える方法などの解説やデモを30分ほどで学べる興味深いセッションでした。

量子コンピューティングっぽい部分(いわゆるブラケット演算)などはなく、最適化問題を量子コンピューティングをもちいて行う敷居などがめっちゃ低くなったんだな。という印象でした。

参考情報

Braket Tutorials GitHub https://github.com/aws/amazon-braket-examples

Quantum machine learning in Amazon Braket Hybrid Jobs
https://github.com/aws/amazon-braket-examples/blob/main/examples/hybrid_jobs/2_Using_PennyLane_with_Braket_Jobs/Using_PennyLane_with_Braket_Jobs.ipynb

Computing adjoint gradients with Amazon Braket SV1
https://pennylane.ai/blog/2022/12/computing-adjoint-gradients-with-amazon-braket-sv1/