blueqat news
量子コンピュータ関連銘柄 更新: 10/12 13:30(日本時間)
%は前日比・グラフは直近10営業日の推移 — 株価とニュースの突き合わせ / 業界の関係図
コラム

Cirq量子ソフトウェアフレームワークのレビュー

要約

Googleが開発した量子ソフトウェアプラットフォーム「Cirq」について、既存のIBM、Rigetti、Microsoft等の量子ソフトウェアと比較分析したレビュー論文です。Cirqの特徴として、量子回路の最適化機能や変分量子アルゴリズムへの強力なサポート、近未来の量子コンピュータ向けの設計が挙げられています。

Ryan LaRose

Department of Computational Mathematics, Science, and Engineering, Michigan State University

Department of Physics and Astronomy, Michigan State University

要旨

2018年7月、Quantum Computing Reportは4つの主要なゲートモデル量子ソフトウェアプラットフォームについて詳細な分析を公表した。それらは、RigettiによるForest、IBMによるQISKit、ETH ZurichによるProjectQ、そしてMicrosoftによるQuantum Developer Kitである。その直後、Googleは独自の量子ソフトウェアプラットフォームであるCirqのリリースを発表した。本論文では、この新しくリリースされたプラットフォームについて、以前にレビューされた量子ソフトウェアプラットフォームと比較しながら概要と比較分析を提供する。我々の分析は、要件とインストール、サンプルプログラムを通じた言語構文、量子シミュレータ、および量子コンピュータ機能を対象として、同様に進められる。さらに、量子回路の操作・最適化、デバイス指向回路と量子コンパイル、変分量子アルゴリズムと近未来量子コンピューティングへの強力なサポートといった、プラットフォームのより高度な機能についても取り上げる。

量子コンピューティングは理論的段階から実用的段階へと移行しつつある。歴史的に、研究者たちは抽象的で理想化された量子コンピュータへのブラックボックスアクセスを通じた高速化の可能性について問いかけてきた。最近では、小規模で不完全な量子コンピュータが製造され、クラウド上で利用可能となっている。研究者たちがこれらのデバイスを使用して原子核物理学[Du2018]、量子化学[Pe2014]、凝縮系物理学[La2018]、最適化[Fa2014]、数論[An2018]、グラフ理論[Wa2018]、さらには量子コンピューティング自体[Kh2018]における問題を解決するにつれ、膨大な文献が出現しつつある。これらの問題は小規模で従来のコンピュータで容易に扱えるものであるが、大規模量子コンピュータの見通しはこの状況を急速に変える可能性がある。現在の量子コンピュータにおいてさえ、特定の人為的問題は間もなく「量子超越性」[Ne2017, Ma2018]を実証する可能性があり、これは計算史における刺激的なマイルストーンである。

この分野における理論から実用への進展は、紙とペンによるブラックボックスアクセスとは大きく異なる量子コンピュータへのアクセスを必要とする。産業界と学術界の多くの機関がこれを認識し、この目的のためのツールの構築を開始しており、実用的な量子コンピューティングへの移行における空白を埋めるために多数のスタートアップ企業が登場している。以下の図は、この急速に進化する状況の部分的なスナップショットを示している。

量子コンピューティング企業とその量子ソフトウェアスタックにおける位置を示す概略図。「フルスタックプロバイダー」はスタックのすべての領域に焦点を当てているのに対し、「ターゲットプロバイダー」は特定の領域に焦点を当てている。アルゴリズム・アプリケーションを行う企業は頻繁にソフトウェアも行うため、右側ではこれら2つのカテゴリーを統合している。(ハードウェアとコンパイル・制御についても同様。)

ほとんどの「フルスタック」量子コンピューティング企業では、量子コンピュータへのアクセスはクラウド経由で提供され、研究者と量子コンピュータとの間の相互作用は、APIアクセスを持つソフトウェアプラットフォームによって仲介される。外部の観察者にとって、この相互作用は多くの考察を要するものではないように見えるかもしれない。つまり、ユーザーに量子ビットに対する量子ゲートの実装能力を与えるだけで良い。しかし、実際のまたはシミュレートされた量子コンピュータと通信するためのソフトウェアインターフェースを使用する際には、多くの実用的な考慮事項が生じる。これらには以下が含まれる。

これらの考慮事項はいずれも実用的観点から重要である。例えば、多数の量子ビットを使用するアルゴリズムは、より高性能なシミュレータを持つプラットフォームで実装する方が良いかもしれない。多数のゲートを持つアルゴリズムは、より高い忠実度の量子ビットを持つプラットフォームに適しているかもしれない。多数の非標準ゲートを持つアルゴリズムは、最適なコンパイラを持つプラットフォームに適しているかもしれない。例、チュートリアル、ドキュメントといったその他の考慮事項も同様に重要であり、これらは新規ユーザーの獲得や経験豊富なユーザーの疑問に答える助けとなる。

これらの理由から、量子ソフトウェアプラットフォームを、一見そう見えるかもしれない単純なインターフェース以上のものとして評価することは、妥当かつ重要である。この目的のため、Quantum Computing ReportはRigettiによるForest、IBMによるQISKit、ETH ZurichによるProjectQ、MicrosoftによるQuantum Developer Kitを比較する記事[LaR2018]を公表した。(その後、量子ソフトウェアに関する他の記事も書かれている。例えば[Fi2018]。)各プラットフォームは異なる強みと異なる重点を持つことがわかり、それが環境に最適な問題のセットを決定した。本記事の目的は、同様の方法でCirqを紹介し分析することである。

この目的のため、記事の残りの部分は以下のように構成される。本記事の形式について簡単にコメントした後、Cirqにおけるインストール、ドキュメント、言語構文、量子コンピュータ・シミュレータサポートを取り上げる。次に、回路操作と最適化、特定の量子コンピュータのための回路といったより高度な機能に移る。最後に、Cirqの近未来の能力を実証するために変分量子アルゴリズムを含むサンプルプログラムで結論する。全体を通じて、以前に取り上げたソフトウェアプラットフォームに言及し、我々の以前の分析における比較分析を維持する。

本記事はJupyter Notebookとして書かれ、HTMLファイルとしてエクスポートされた。HTMLファイルはQuantum Computing Reportのウェブサイトでホストされており、Jupyter NotebookはGitHubでホストされている。HTML版では、すべてのコードとすべての出力が記事内で表示可能だが、コードは実行できない。記事を読みながらコードをインタラクティブに実行するには、Jupyter Notebook版を参照されたい。コードを実行するには、Cirqの動作するインストールが必要である(以下のインストールを参照)。Notebook版のCirqコードは、Cirqの将来のバージョン・リリースに合わせて最新の状態に保たれる。本記事は量子コンピューティングに関する基本的な知識を前提としており、現在では多くの優れたリソースが存在する。

Cirqの構成要素。コンピュータにインストールされると、Cirqは量子回路を扱うためのライブラリと高性能なローカル量子回路シミュレータを提供する。2018年12月時点では、ハードウェアデバイスまたは「Quantum Engine」・「Quantum Cloud Services」への接続は一般ユーザーには利用できないが、将来的にはこれが変更されることが予想される。

コマンドラインで実行する。Notebookを離れることなく、以下のセルを実行すると、ユーザーのコンピュータにCirq v0.4.0をインストールしようと試みる。あるいは、Cirqのソースコードはhttps://github.com/quantumlib/Cirqから入手できる。複数のプラットフォームにおける完全なインストール手順については、https://cirq.readthedocs.io/en/latest/install.htmlのドキュメントを参照されたい。Cirqを使用せずに単に記事を読みたい読者は、このステップを無視して構わない。

Cirqのドキュメントには、3つの主要なオペレーティングシステムすべてのインストール手順、変分量子固有値ソルバーの詳細なチュートリアル、およびCirqライブラリの3つの主要コンポーネント(回路、ゲート、シミュレーション)の詳細が含まれている。さらに、Schedules and Devicesのセクションでは、Cirqが特定の量子ハードウェアとどのように使用できるかが詳述されており、近未来量子コンピューティングへの重点を反映している。ドキュメントにはまた、ライブラリ全体の詳細なAPIリファレンスと、ソースコードへの貢献を希望する人々のための開発ガイドラインも含まれている。

以前の量子ソフトウェアプラットフォームの取り上げと同様に、言語構文を実証するためのサンプルプログラムを含める。以下では、「量子ランダムビット生成器」アルゴリズムを実装する。これは量子力学の法則によりランダムな0または1の出力を生成する。Cirqの機能を使用するために、まずライブラリをインポートする(および記事全体を通じて使用する追加のライブラリをインポートする)。

以下では、回路を作成し、アルゴリズムの操作(Hadamardと測定)でそれを初期化する。

Cirqは量子ビットをLineQubitまたはGridQubitとして定義することに注意されたい。これらはNISQコンピュータにおける一般的な構成であるためである。前者は1つの整数でインデックスされ(上記4行目で行ったように)、後者は2つ(x, y座標)でインデックスされる。量子ビットは通常、アルゴリズムでの簡単なインデックス付けのためにリスト(または一般にイテラブル)で定義される。上記の6行目で回路を初期化し、9-10行目でアルゴリズムの命令を追加する。(Cirqでアルゴリズムに命令を追加する方法は複数ある。本記事の大部分では、簡単のため上記の方法を使用する。代替方法についてはセクションIII.Aを参照。)

Cirqライブラリは量子回路のテキストダイアグラム表現を提供しており、回路を出力することで可視化できる。

Cirqは現在、一般ユーザー向けにGoogleの量子コンピュータへのクラウドアクセスを提供していない。実際、Cirqのengineクラスのドキュメントによれば次のように述べられている。

それにもかかわらず、Googleが量子コンピュータを所有しており、近い将来にクラウド経由で利用可能にすることが表明されており[Ho2018]、Cirqをインターフェースとして使用することが知られている。実際、Cirqはすでにこれらのデバイスに関する詳細を提供している。例えば、22量子ビットのFoxtailコンピュータのアーキテクチャは、Cirqで以下のように出力できる。

FoxtailとBristleconeプロセッサは、2量子ビットユニタリとしてControlled-Zゲートを実装している(他のアーキテクチャ、例えばIBMで一般的なCNOTゲートとは異なる)。ただし、ネイティブゲートセットにどの特定の単一量子ビットゲートが含まれているかは著者には不明である。(この記述は、任意のゲートをFoxtail・Bristleconeにコンパイルする実験に基づいている。以下のセクションIII.Dを参照。)参考までに、Controlled-Zゲートは以下の行列表現を持つ。

Cirqが回路をOpenQASMコードに変換する組み込み機能を提供していることに注意すべきである。

この機能により、Cirqで生成されたアルゴリズムをIBMの量子コンピュータで実行することが非常に簡単になる。(例えば、IBM Q Experienceウェブサイトに移動し、オンラインQASMエディタを使用することによって。以下の図を参照。)

CirqでQASMコードを生成してIBM Q ExperienceオンラインQASMエディタを使用したスクリーンショット。エディタに入力されたコードは取得されたコードと同じである

続きはメールでも受け取れます

新着記事のまとめを、毎日・週1回・月1回から選んでお届けします。 対談と教えて先生の続きも読めるようになります。登録も閲覧も無料です。

ログインしてメール配信を設定