量子コンピュータをより使いやすく。新サービス「Amazon Braket Hybrid Jobs」が何をやっているのかなるべく噛み砕いてみる。 #reinvent

2021.11.30

せーのでございます。いよいよはじまりましたre:Invent 2021
発表されたてのサービスの中から、名前は聞いたことがあるけどいまいちよくわからないという方も多い量子コンピュータの新サービス「Amazon Braket Hybrid Jobs」を速報でご紹介します。

Amazon Braketのかゆいところに手が届くサービスなのだが

Amazon Braket Hybrid Jobsは2年前に発表され、去年GAとなったフルマネージドの量子コンピュータサービス「Amazon Braket」の拡張サービスとなります。

一言で言ってしまうと「QPUを効率よく動かすためのハイブリッドアルゴリズムを自動で管理してくれるサービス」です。これまでのAmazon Braket及び量子コンピュータでの開発の困っている部分を解決し、より本来の課題解決に集中できるようにするサービスになります。

とは言っても、Amazon Braketがよくわからない、というか、量子コンピュータ自体ふわっとだから、そもそも何が困っているのかわからない、という方。多いのではないでしょうか。

ということで、このAmazon Braket Hybrid Jobsがなぜ必要になるのか、をなるべく噛み砕いて書いてみようと思います。

量子コンピュータは量子を使ったコンピュータ

まずは基礎の基礎をさらっとおさらいします。量子コンピュータとはいままで電気のON/OFFで計算していたコンピュータに量子という概念を用いることで、計算が格段に早くなったコンピュータのことです。

例えば8bitのコンピュータはON/OFFの2パターンの8乗の組み合わせ、つまり256パターンを表現できるわけですがその中から正しい1つのパターンを導き出すには総当り、256回の計算が必要となります。それを量子というON(1)とOFF(0)の両方の状態をもてる特殊な物理状態の素子を利用することによって、現状のコンピュータと同じ8個の量子(8cubit)を使って1回の計算で済ませてしまうコンピュータを量子コンピュータと言います。
つまり今までのコンピュータに比べて2のN乗速く済む、ということですね。

しかし現在量子コンピュータを使おうとすると個別に契約が必要になったり、そもそもハードウェアリソースを確保するのが大変で、とてもハードルが高いです。
それをAWSのマネージドサービスの仕組みに載せて手軽に使えるようにしたのが「Amazon Braket」となります。詳しくはこちらをどうぞ。

https://dev.classmethod.jp/tags/amazon-braket/

量子コンピュータには大きく2種類ある

通常のコンピュータに載っている計算チップにCPUやGPUがありますが、量子コンピュータで使う計算チップはQPUと呼びます。
CPUやGPUは電圧のON/OFFによって表現されますが、入力としての電圧に多少ゆらぎがあったとしても出力される電圧は一定になるように設計されています。なので入力したとおりに動かない、ということはほぼありません。

一方量子コンピュータに使われるQPUは入力、出力ともにアナログな状態で行われるため、特に長い時間計算を続けているとノイズが混ざり、結果がエラーになることがあります

このエラーを訂正する機能のある量子コンピュータと訂正しない量子コンピュータで大きく2種類に分かれ、エラー訂正ありのものをFTQC(Fault Tolerant Quantum Computer)、エラー訂正なしのものをNISQ(Noisy Intermediate Scale Quantum Computer)といいます。Amazon BraketはNISQの量子コンピュータが使えます

量子コンピュータには量子アルゴリズムが必要

量子コンピュータは量子によって複数回の計算を一気に処理します。しかしその処理した結果のうちどれが正しい答えなのか、そのままではわかりません。

そこで必要になるのが出てきた答えのうちどの答えが正しいのか判別するアルゴリズムとなります。これを「量子アルゴリズム」といいます。

量子アルゴリズムには大きく分けてFTQCに対応したlong-termアルゴリズムと、NISQに対応したNISQアルゴリズムがあります。Amazon BraketはNISQを扱うので、NISQアルゴリズムが重要となってきます。

QPUのエラーを機械学習の仕組みで調整するハイブリッドアルゴリズム

NISQアルゴリズムで重要なことはNISQによる量子のエラーの影響をいかに抑えるか、ということになります。

そのため現在主流となっているアプローチは、コアとなる計算部分のみ量子を使い、その回路を調整するパラメータを機械学習の要領で自動的に学習させる、というものです。

機械学習部分は通常のコンピュータにて行うため、これを「ハイブリッドアルゴリズム」と言います。

ハイブリッドアルゴリズムを実装する代表的なオープンソースとして「PennyLane」というものがあり、開発者はまずこのPennyLaneをインストール、セットアップし、機械学習のハイパーパラメータの設定同様、QPUと通常のCPUとのやり取りを管理する必要があります。

またAmazon Braket自体がマネージドサービスなので、他のユーザとQPUを共有して使うことがあります。それによってアルゴリズムの進行が無効となったり、最悪壊れてしまったりすることもあります。

そんなあなたにAmazon Braket Hybrid Jobs

さあ、ようやく本題です。

Amazon Braket Hybrid JobsはそんなNISQ用のハイブリッドアルゴリズムに使うインフラやソフトウェアの管理、状態の監視などをAWSにまるっと任せて、ユーザは量子コンピュータの研究部分に集中できるようになる、というサービスになります。Amazon Sagemakerが機械学習に使うインフラやコード管理を担うのとアプローチは似てますね。

仕組みとしてはアルゴリズムをジョブとして登録し、実行するとEC2が立ち上がり、選択したソフトウェアがセットアップされて、書いたアルゴリズムがデプロイされ、QPUとのやり取りを自動で開始、その内容がCloudwatchにロギングされてBraketダッシュボードにリアルタイムで表示されます。

アルゴリズム自体はコンテナとしてロードされ、先程紹介したPennyLaneの他にもTensorFlow、Pytorchなどの機械学習フレームワークやもちろんAmazon Braket SDKも使用できます。結果はS3にダウンロードされます。ここら辺の動きもSagemakerと似ていますね。

料金

そんなAmazon Braket Hybrid Jobs、料金は使用したリソース、つまりジョブを動かすインスタンスとBraket、Cloudwatch、S3の料金のみとなります。

既にAmazon Braketが使えるリージョンでは全てこのAmazon Braket Hybrid Jobsが使えます。サンプル例がこちらに載っているので、まずは動かしてみてはいかがでしょうか。

まとめ

前置きが長くなりすぎて、本題にたどり着かないかと思いましたが、これでなんとなく量子コンピュータとAmazon Braket、そして今回新たにローンチされたAmazon Braket Hybrid Jobsの概要がわかった感じになってくれると幸いです。
細かいことは徐々にするとして、まずはこの機会に一度触ってみるのがいいかと思います。

AWS re:Invent 2021 は現在絶賛開催中です!

参加がまだの方は、この機会に是非こちらのリンクからレジストレーションして豊富なコンテンツを楽しみましょう!

AWS re:Invent | Amazon Web Services