本文へ移動

REAL!ZEしてますか?開発部のMr.REAL!ZER NAOYAです。

突然ですが、皆さんは「量子コンピュータ」と聞くと、どんなイメージを持ちますか?

「ものすごく速い未来の計算機」「なんだか難しそう」etc... そんな声が聞こえてきそうです・・・

私自身も、物理学を学んでいた学生時代から量子場への興味はありましたが、エンジニアとして働く中でどこか遠い世界の話のように感じていました。

しかし、AWSが提供する「Amazon Braket」を使えば、今まさにその未来の計算機で動くアルゴリズムを自分のPC上でシミュレートし、その可能性を探求できることをご存知でしょうか?

今回は、社内のエンジニア会での活動をきっかけに、AWSの量子アルゴリズムをローカル環境で動かすことに挑戦した過程と、そこから見えてきた「探求の始めやすさ」についてご紹介します。

Amazon Braket

AWSクラウドコンピューティングサービスが提供する量子コンピューティングサービスに「Amazon Braket」というものがあります。

「量子コンピューティングこわい・・・」といった声が聞こえてきそうですが、そんな身構えないでください。(安心安全)

私たちはAWSが提供するインタフェースに則って、Webコンソール画面上からポチポチしたりホストターミナルからちょっとしたコマンドを入力するだけです。

量子コンピューティングのためのサーバーリソースは、すべてAWSサービスが提供してくれます。

(出典)Amazon Braket 量子タスクフロー
https://docs.aws.amazon.com/ja_jp/braket/latest/developerguide/braket-how-it-works.html

実際にはAWSが量子コンピュータを作っているわけではなく、量子コンピュータリソースをもつ企業さんとの仲介をしてくれています。

私たちは、その仲介役となるAmazon Braket のインタフェースを利用して量子コンピューティングしていくわけですね。

実際にWebコンソール画面のダッシュボードはこんな感じです。

ユーザーは Amazon Braket notebook から「量子タスク」を実行して計算結果を取得します。

実態は Jupyter ノードブックという Python 実行環境ですね、Webコンソール画面から Python が実行でき気軽に手元で試すことができます。

では早速、Jupyter ノートブックを作成して Python 実行環境を手に入れましょう!

ノートブックタブからインスタンスを作成していきます。

実行環境の準備に少し時間がかかるのですが、しばらく待つと・・・

Python 実行環境がサクッと手に入りました(888)

量子コンピュータを動かす準備は、これだけでほぼ終了です・・・

では、これから実際に動かしていきましょう(let's real!ze with)

量子アルゴリズムライブラリ

AWS Braket で量子コンピュータに処理をさせるには、Python 言語で処理を記述していきます。

といっても、どんな処理を書いていったらいいか、なんてはじめはわからないですよね。

Jupyter notebook には、「量子アルゴリズムライブラリ」というアルゴリズムサンプルがすでに準備されています。

試しに「Bell's Inequality(ベルの不等式)」を開いてみましょう。

ちょっとした動作検証ぐらいなら大差ないですが、まあまあリッチな金額だと思っていただけると。

「百聞は一見に如かず、手軽に実際に触ってみたい!」そんなユーザーの声が聞こえてきました・・・

あります、「amazon-braket-algorithm-library」です。

なんか難しい単語の響きに聞こえがちですが、ただの「処理」が記述されているだけです(なにも恐れる必要はありません)

実際にリポジトリを clone して中身をのぞいてみましょう。

git clone https://github.com/amazon-braket/amazon-braket-algorithm-library.git

これからローカル環境で Jupyter notebook を構築していくのですが、Python と Visual Studio Code 拡張機能が必要になるので自分の実行するPCにインストールしておきましょう。

https://www.python.org

https://marketplace.visualstudio.com/items?itemName=ms-python.python

python のインストールが完了したら仮想環境を作成して、起動スクリプトを実行しましょう。

python -m venv .venv

このとき、設定 python.venv.folders に仮想環境のフォルダ名 .venv を追加しておくと自動で起動スクリプトを読み込んでくれます。

Installing the Amazon Braket Algorithm Library に従ってローカル実行環境に必要な python ライブラリを仮想環境にインストールしていきます。

pip install .

次は notebooks/textbook に移動して python ライブラリをインストールします。

pip install -r requirements.txt

これで必要なライブラリは揃いました。

では、ローカル実行環境を起動していきましょう。

jupyter notebook

ローカル実行環境が立ち上がりました。

http://localhost:8888/tree

AWS Braket notebook コンソール上にあったアルゴリズムライブラリが確認できます。

同じように「Bell's Inequality(ベルの不等式)」のノートブックを開いてみましょう。

すでに実行スクリプトが記述されていて、処理内容もテキストのように丁寧に書かれていますね。

Run on local simulator セクションに移動して python スクリプトを実行してみましょう。

http://localhost:8888/notebooks/Bells_Inequality.ipynb#Run-on-a-local-simulator

量子アルゴリズムの論理回路図がテキスト形式で出力されました。

今回はここまでになりますが、Python 量子アルゴリズムをローカル環境で学習できる環境を手に入れることができました。

成長の機会を創る

今回は AWS Braket を利用して自分の学びたい好奇心をむき出しにしてみました。

量子コンピューティングの解像度を上がっていく自分を想像したときにワクワク止まらないですね。

量子コンピューティングだけではなく、聞いたこともないような「言葉」ってなぜか「難しそう」と感じてしまいがちです。

「百聞は一見に如かず」

恐れずに、飛び込んでみましょう、成長の機会は無作為に訪れるものでなくすでに目の前にあります。

それを認知できる準備と純粋に楽しむ姿勢が背中を押してくれるはずです。

何をやっていいかわからない、何かやったらいいじゃないか、自分の内なる声を聴いて創造しちゃいましょう。

REAL!ZE WITH です。

参考

この記事を書いた人

開発部 NAOYA

誰よりもリソウを描き、リアルに変えていく。
クロノス の Mr.REAL!ZER です。

おすすめ